Camelia, the Perl 6 bug

IRC log for #parrot, 2010-09-08

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 Patterner left #parrot
00:00 kid51_at_dinner is now known as kid51
00:01 ttbot Parrot trunk/ r48838 MSWin32-x86-multi-thread make error http://tt.taptinder.org/file/cmdout/386243.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/ )
00:03 chromatic Now that Parrot_fixed_8_encoding_ptr is gone, what should src/library.c +385 do?
00:05 ttbot Parrot trunk/ r48839 MSWin32-x86-multi-thread make error http://tt.taptinder.org/file/cmdout/386249.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/ )
00:06 NotFound chromatic: IMO all that convoluted windows specific functions should be replaced, using parrot string functions instead of playing with the raw string buffer
00:07 chromatic Agreed.
00:07 chromatic For now, hackety hack.
00:08 Andy left #parrot
00:10 dalek parrot: r48839 | chromatic++ | trunk/src/nci/extra_thunks.c:
00:10 dalek parrot: [NCI] Removed spurious debugging output of r48831.
00:10 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48839/
00:10 dalek parrot: r48840 | whiteknight++ | branches/ns_func_cleanup:
00:10 dalek parrot: branch merged to trunk back on r47678. tcurtis++ for the reminder
00:10 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48840/
00:10 dalek parrot: r48841 | chromatic++ | trunk/src/library.c:
00:10 dalek parrot: [src] Fixed cnv_to_win32_filesep().
00:10 dalek parrot: The charset_massacre branch merge removed some symbols, and the merge testing
00:10 dalek parrot: didn't catch this one reference in the source.  We should address the issue,
00:10 dalek parrot: but PARROT_ASSERT() isn't the right way to verify that this na�ve approach is
00:10 dalek parrot: correct.
00:10 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48841/
00:11 NotFound r48839 still doesn't build in amd64 with --optimize
00:11 Psyche^ joined #parrot
00:11 Psyche^ is now known as Patterner
00:12 NotFound src/extra_nci_thunks.c:2857 contains spurious characters
00:12 chromatic Not here.
00:13 NotFound typedef void *(* func_t)(*^A^@º^A+char *, int, voi0);
00:14 chromatic Sounds like what pmichaud saw with my GC patch.
00:15 ash_ left #parrot
00:16 chromatic http://groups.google.com/group/parrot-dev/browse​_thread/thread/e00844ead8555575/87c32442d1dbe5a4
00:20 Patterner left #parrot
00:21 luben I see the same bugs @ r@48805
00:22 luben example: ./parrot t/library/mime_base64.t
00:25 cotto_work looks fine here
00:27 luben here, there are some test that fail
00:27 dalek parrot: r48842 | nwellnhof++ | trunk (16 files):
00:27 dalek parrot: [str] Remove unused stringrep enum
00:27 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48842/
00:28 luben they passed successfully before portint string_join to StringBuilder
00:28 luben (verified just now)
00:29 luben cotto_work, it happens on optimized builds on amd64
00:31 chromatic Not my GC patch then.
00:32 nwellnhof luben: r48823 is probably the problem. i switched stringbuilder back to use str_clone
00:33 luben no, I do not think so
00:34 nwellnhof i just thought, because the str_clone thing caused issues on amd64
00:34 cotto_work nwellnhof++ for nuking that enum.
00:35 kid51 r 48841: build failure on Darwin/PPC:
00:35 luben My understanding is that there is a bug in StringBuilder, when we ported parrot_str_join to use StringBuilder, some bugs surfaced
00:35 luben we worked arround some of them but the bug is still there
00:35 nopaste "kid51" at 192.168.1.3 pasted "Darwin/PPC: 'make' fails; r48841" (474 lines) at http://nopaste.snit.ch/23256
00:38 kid51 src/string/encoding/ucs4.c: In function 'ucs4_hash':  nested functions are not on MacOSX syntax error before '*' token  'pos' undeclared (first use in this function)
00:38 nwellnhof luben: i hoped that r48808 would cure the StringBuilder issues
00:39 nwellnhof kid51: do you have a line number?
00:39 kid51 See the nopaste
00:40 luben I hoped also - parrot builds but fails some tests
00:40 kid51 lines 436+
00:40 ttbot Parrot trunk/ r48842 MSWin32-x86-multi-thread make error http://tt.taptinder.org/file/cmdout/386313.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/ )
00:41 kid51 taptinder reporting same error
00:41 cotto_work I see some similar-looking corruption with an optimized build.
00:42 NotFound Looks like a missing #if PARROT_HAS_ICU
00:42 nwellnhof the ucs4.c issue is ICU related. i have a fix coming up...
00:43 ascent left #parrot
00:45 kid51 nwellnhof: Datum:  The Darwin/PPC on which I saw failure is ICU-less.
00:46 nwellnhof yes, ICU-less builds are the problem
00:47 contingencyplan left #parrot
00:48 contingencyplan joined #parrot
00:48 ascent joined #parrot
00:49 NotFound chromatic: completely unrelated with the current problems: can you take a quick look at http://github.com/jnthn/blizkost/pull/14 ?
00:52 chromatic Looking.
00:53 chromatic Seems sane.
00:53 dngor_ is now known as dngor
00:54 NotFound I've not do XS code for long time. Is that arg passing order corerct?
00:56 chromatic Yes.
00:56 chromatic ST(0) is thus the first argument on the stack
00:56 chromatic and therefore the first argument passed to the XSUB, ST(1) is the
00:56 chromatic second argument, and so on.
00:56 Psyche^ joined #parrot
00:56 Psyche^ is now known as Patterner
00:57 * dukeleto covers the eyes of children, lest they learn about the horrors of XS
00:57 NotFound I was wondering why some of my blizkost tests gave strange results... %-)
00:58 chromatic I fixed that bug in Pugs, years ago.
00:59 * kid51 used the line, "The horror, the horror", in his talk about ExtUtils::ParseXS at YAPC this year.
01:00 NotFound Good to know. With that fixed, using perl5 Gtk2 from parrot looks very doable.
01:00 dukeleto NotFound: that sounds nice
01:00 kid51 Woot
01:00 NotFound From winxed, of course.
01:01 ttbot Parrot trunk/ r48843 MSWin32-x86-multi-thread make error http://tt.taptinder.org/file/cmdout/386387.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/ )
01:01 dalek parrot: r48843 | nwellnhof++ | trunk/src/string/encoding/ucs4.c:
01:01 dalek parrot: [str] Fix to ucs4_hash to build without ICU
01:01 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48843/
01:01 dalek parrot: r48844 | luben++ | branches/hash_inlined_func:
01:01 dalek parrot: Inline hash functions in hash.c - removes runtime indirection
01:01 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48844/
01:02 dngor_ joined #parrot
01:03 dngor left #parrot
01:03 nwellnhof ucs2 and ucs4 rely on ICU only because of a typedef. i'm gonna fix that tomorrow.
01:04 nwellnhof can anyone confirm that r48843 fixes non-ICU build problems?
01:06 NotFound nwellnhof: if ttbot doesn't cry in a while, is fixed
01:08 * kid51 rebuilds on Darwin/PPC
01:09 kid51 left #parrot
01:09 kid51 joined #parrot
01:10 dngor_ is now known as dngor
01:11 Patterner left #parrot
01:12 * kid51 discovers the joys of the plain-text version of irclog.perlgeek.de; moritz++
01:15 dukeleto purl, msg cotto_work i think porting tools/dev/mk_manifest_and_skip.pl is the most difficult thing left to do for the migration
01:15 purl Message for cotto_work stored.
01:16 Psyche^ joined #parrot
01:16 Psyche^ is now known as Patterner
01:18 dalek parrot: r48845 | dukeleto++ | trunk/tools/build/parrot_config_c.pl:
01:19 dalek parrot: [tools] Refactor tools/build/parrot_config_c.pl . No functional changes
01:19 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48845/
01:19 dalek parrot: r48846 | luben++ | branches/hash_inlined_func (9 files):
01:19 dalek parrot: Merge branch 'fixes2-inlined' into hash_inlined_func
01:19 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48846/
01:19 kid51 At r48843, Parrot now builds successfully on Darwin/PPC. nwellnhof++
01:19 kid51 will now run make test, but that will take a while
01:20 particle left #parrot
01:21 ttbot Parrot trunk/ r48845 MSWin32-x86-multi-thread make error http://tt.taptinder.org/file/cmdout/386445.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/ )
01:22 luben I have created a svn branch with my work from last 3-4 days (hash_inlined_func). it is up-todate with trunc
01:22 kid51 taptinder now reporting different error on win32
01:22 particle joined #parrot
01:22 chromatic Wow.
01:22 chromatic Let me guess: missing header?
01:23 kid51 src/nci/extra_thunks.c
01:23 kid51 lots of 'undefined reference to ...'
01:23 plobsing_ what's with the _imp_ prefixes?
01:23 chromatic VS symbol mangling, probably.
01:24 dalek tracwiki: v20 | dukeleto++ | GitMigration
01:24 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Gi​tMigration?version=20&action=diff
01:25 plobsing_ I know the problem: PARROT_IN_EXTENSION is defined!
01:25 plobsing_ which means it expects to link against an already compiled libparrot
01:26 luben the branch compiles and passes make_test (Configue --optimize, gcc-4.5, linux-amd64). It's open for test, review and comment
01:29 chromatic Oh, right.
01:31 Patterner left #parrot
01:31 Psyche^ joined #parrot
01:31 Psyche^ is now known as Patterner
01:32 plobsing_ to make nci thunks for core, parrot_nci_thunk_gen takes a --core option. or you could just run tools/dev/mk_nci_thunks.pl
01:32 kid51 luben:  Is this branch being tracked by a Trac ticket?
01:32 luben no
01:32 luben how I do that?
01:33 kid51 Assuming you have an account at trac.parrot.org, you click on the New Ticket button and take it from there.
01:33 luben ok, I'll try
01:34 kid51 Value of ticket:  Enables you to describe purpose of branch.  Enables you to post a diff of branch from trunk.  Enables people to post test result summaries.
01:35 kid51 Once you create a TT, you can also post to parrot-dev requesting that people provide feedback in that TT.
01:36 dalek parrot: r48847 | plobsing++ | trunk/src/nci (2 files):
01:36 dalek parrot: run tools/dev/mk_nci_thunks.pl
01:36 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48847/
01:36 dalek parrot: r48848 | jkeenan++ | trunk/lib/Parrot/Manifest.pm:
01:36 dalek parrot: Correct semantic error in POD.
01:36 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48848/
01:36 kid51 r 48843: make test PASS on Darwin/PPC
01:39 nwellnhof kid51: good to hear, thanks for testing
01:39 particle left #parrot
01:40 dalek TT #1775 created by luben++: Inline hash key_hash and compare functions
01:40 dalek TT #1775: http://trac.parrot.org/parrot/ticket/1775
01:47 whiteknight left #parrot
01:50 nopaste "kid51" at 192.168.1.3 pasted "hash_inclined_func branch failures in t/pmc/hash.t" (182 lines) at http://nopaste.snit.ch/23258
01:51 kid51 paste 23258 is on Linux/i386 at r48846
01:52 PacoLinux left #parrot
01:57 nwellnhof left #parrot
01:58 Patterner left #parrot
02:01 chromatic luben, the key_hash_STRING() changes on the branch look counterproductive.
02:03 chromatic I backed it out and have better performance.
02:03 luben you are right
02:04 chromatic Want me to commit?
02:04 luben you have to change also in hash_get_bucket and hash_put
02:04 PacoLinux joined #parrot
02:05 luben it is manually inlined there
02:05 kid51 left #parrot
02:05 chromatic hash_get_bucket looks fine to me.
02:06 chromatic Same as parrot_hash_put
02:07 luben oh, I see. I was thinking we are talking about key_hash_STRING
02:08 luben for key_hash_STRING, you are absolutely right, its leftover from the try to use custom hash function in place of Parrot_str_to_hashval
02:13 patspam left #parrot
02:15 contingencyplan left #parrot
02:18 cotto ~~
02:21 Psyche^ joined #parrot
02:21 Psyche^ is now known as Patterner
02:23 ttbot Parrot trunk/ r48848 MSWin32-x86-multi-thread make error http://tt.taptinder.org/file/cmdout/386527.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/ )
02:26 dalek parrot: r48849 | chromatic++ | branches/hash_inlined_func/src/hash.c:
02:26 dalek parrot: [hash] Simplified key_hash_STRING().
02:26 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48849/
02:28 luben chromatic, you could commit it.
02:28 chromatic Done!
02:29 ash_ joined #parrot
02:32 cotto where do nwellnhof and luben live?
02:33 plobsing_ when you phrase it like that, one might think twice about giving you that info ;-)
02:33 Psyche^ joined #parrot
02:34 Patterner left #parrot
02:34 Psyche^ is now known as Patterner
02:34 luben I am in Bulgaria, Sofia
02:34 cotto I associate them with chromatic's recruiting and am curious if they're also in pdx
02:34 cotto guess not then
02:34 chromatic I recruit people for whom I am tired of applying their patches myself.
02:35 janus left #parrot
02:36 dafrito left #parrot
02:37 pmichaud I'm seeing test errors in t/compilers/pct in trunk... is anyone else seeing them?
02:37 ash_ left #parrot
02:43 dalek parrot: r48850 | chromatic++ | branches/hash_inlined_func/src/hash.c:
02:43 dalek parrot: [hash] Sprinkled around some nice consts.
02:43 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48850/
02:47 Patterner left #parrot
02:48 janus joined #parrot
02:50 mariano__ joined #parrot
02:51 pmichaud looks like the failures come when --optimize is given
02:51 pmichaud should I bisect, or ... ?
02:51 mariano__ is now known as bluescreen10
02:51 nopaste "bluescreen10" at 192.168.1.3 pasted "Getting get_string() not implemented in class 'XXXX' when using "get_class self"" (17 lines) at http://nopaste.snit.ch/23260
02:52 Psyche^ joined #parrot
02:52 Psyche^ is now known as Patterner
02:58 luben pmichaud, it's known failure on amd64 - most probably bug in stringbuilder somewhere
02:58 bluescreen10 seems like I'm dong something wrong at http://nopaste.snit.ch/23260 but I can't figure out what
03:01 bluescreen10 BTW, I'm using parrot 2.4.0
03:02 ash_ joined #parrot
03:03 pmichaud bluescreen10: your :load subroutine gets executed twice.
03:04 pmichaud luben: is the bug likely to be fixed anytime soon?
03:04 bluescreen10 well I even removing the load doesn't solve it
03:04 bluescreen10 getting the same thing
03:05 luben everybody is looking for it. it appeared after porting string_join to use internaly stringBuilder
03:06 cotto Why not use the clone pir op?
03:06 cotto though it does seem odd that the method would fail
03:07 Patterner left #parrot
03:07 bluescreen10 originally wanted to clone the class so i used get_class to get the class and then clone it
03:07 bluescreen10 cotto: should that work or I'm missing the boat ?
03:08 chromatic The Object PMC probably needs a default get_string.
03:09 bluescreen10 mmm.. even outside the subroutine fails.
03:10 bluescreen10 chromatic: why in the first place get_class calls get_string()? shouldn't that return a ref to class's PMC?
03:10 chromatic It's metacircular.
03:10 chromatic A Class PMC is an instance of Object.
03:11 chromatic Though that doesn't answer your question, I now realize.
03:11 bluescreen10 is it because get_class can be overloaded ?
03:12 bluescreen10 i mean you can do get_class $S0, but in this case is a $P
03:12 cotto Would it make sense for Parrot_oo_get_class to use VTABLE_name instead of VTABLE_get_string?
03:13 Psyche^ joined #parrot
03:13 chromatic Seems like we're missing a case in the switch for enum_class_Object.
03:13 Psyche^ is now known as Patterner
03:13 pmichaud get_class isn't supposed to work on instance
03:14 pmichaud if you want the class, use typeof
03:14 cotto ...
03:14 pmichaud $P0 = typeof self
03:14 pmichaud get_class locates a class based on an RSA, Key, or String.
03:14 pmichaud (or namespace)
03:15 bluescreen10 that makes sense pmichaud, thanks!
03:16 cotto Sounds like it needs to fail in other cases then.
03:16 pmichaud well, it assumes that if it's not one of those, then it's a string of some sort.
03:16 pmichaud or something that stringifies
03:17 pmichaud which is why it does get_string
03:17 chromatic That smells fragile.
03:17 bluescreen10 ..hmmm..
03:17 pmichaud (I'm not saying that's correct behavior.. it's just traditional, unfortunately.)
03:17 pmichaud for the longest time classes were known by their string names more than their class object identity.  We still have a lot of code like that in Parrot, I fear.
03:18 pmichaud (and code that depends on that interpretation, I suspect)
03:18 * cotto adds a failing default case and sits back for some fireworks
03:19 bluescreen10 hehe
03:19 plobsing_ bluescreen10: are you sure you don't want to use typeof_p_p in stead?
03:19 pmichaud cotto: be careful with that -- especially subclasses of String or NameSpace
03:19 chromatic +1 to deprecate the old behavior.
03:20 pmichaud (Rakudo definitely has subclasses of String for its strings)
03:20 bluescreen10 plobsing, I'm sure I now want to use that
03:20 cotto Yeah.  We definitely rely on that behavior.  PGE doesn't build without it.
03:22 cotto doesn't work, even with a check for the "string" role
03:24 chromatic Crazy.
03:24 cotto there's no role for namespace-like thingies, is there?
03:25 cotto It seems to build if I explicitly check for enum_class_NameSpace
03:26 pmichaud PGE and PCT and the like tend to use namespaces to identify classes
03:26 pmichaud (if only because that's been declared "the official way to do it")
03:26 nopaste "cotto" at 192.168.1.3 pasted "tighten up Parrot_oo_get_class" (18 lines) at http://nopaste.snit.ch/23261
03:27 cotto let's see how the test suite feels about that
03:27 pmichaud oh yes
03:28 pmichaud iirc, the namespace check there is handling the case of something like   $P0 = get_namespace ['Integer'];  $P1 = get_class $P0
03:28 pmichaud i.e., the namespaces for the built-in PMC types
03:29 cotto bluescreen10, thanks for reporting that oddity
03:29 bluescreen10 i wish i had more insights into parrot's guts to come up with something more useful
03:29 cotto make test passes
03:34 cotto suggestions for a better exception message?
03:39 bluescreen10 I rather make documentation a little bit clear
03:41 cotto ok.  In addition to a docs update, is  "can't use get_class on a class or instance" a reasonable message?
03:42 pmichaud that doesn't sound right
03:42 ash_ left #parrot
03:42 ash_ joined #parrot
03:42 pmichaud I think the previous message you had (where it identifies the type) is better
03:43 pmichaud can't use get_class on a '%Ss'
03:43 pmichaud you could do "on an instance of '%Ss'"
03:51 cotto I'm tempted to make it say "can't use get_class on an instance; you probably want typeof"
03:52 pmichaud yes, except that Strings, RSAs, and NameSpaces *are* instances.  :-)
03:53 cotto but you're not using them to get the String class
03:53 cotto unless it's a String with the value "String"
03:55 pmichaud okay.  The only other thing is that Parrot_oo_get_class gets called from a lot of places other than just the opcode.
03:55 cotto Yeah.  It's messy.
03:56 cotto What if it returned NULL in those cases and let the op throw a nicer message?
03:57 pmichaud I think returning NULL is in-bound.
03:57 pmichaud i.e.,   get_class 'NoSuchClass'  should return NULL
03:58 pmichaud I think we even use that a few places -- for example, to avoid creating a class that already exists.
03:58 pmichaud (for libraries that are somehow loaded more than once)
03:59 luben I am chasing amd64 optimized builds bug
03:59 pmichaud luben: good.  Rakudo fails some of its spectests with current Parrot trunk.
04:00 luben it seems related with GC and StringBuilder
04:00 luben at which point the GC mark is run?
04:02 Patterner left #parrot
04:03 luben pmichaud, parrot also fails test with otimized builds on amd64
04:03 pmichaud luben: yes.
04:05 luben does GC run is triggered somehow on vtable dispatch?
04:05 luben it seems strange
04:05 pmichaud GC runs tend to be triggered on allocation requests, iiuc
04:06 pmichaud so if a vtable does something that needs to allocate memory, then it can cause gc to be triggered.
04:06 pmichaud but GC is definitely not my area of expertise.
04:07 bluescreen10 left #parrot
04:08 Psyche^ joined #parrot
04:08 Psyche^ is now known as Patterner
04:09 luben if I block GC arround invocation of Parrot_pmc_new_init(interp, enum_class_StringBuilder,ar) everything is fine, but if I block GC inside the init, it does not help... this is strange
04:10 chromatic The array should be getting marked.
04:11 chromatic Hm, should SB have a custom mark?
04:12 plobsing_ left #parrot
04:13 bluescreen left #parrot
04:20 bacek_at_work chromatic, no. It uses system memory.
04:21 Patterner left #parrot
04:24 jsut joined #parrot
04:25 dukeleto 'ello
04:27 Psyche^ joined #parrot
04:27 Psyche^ is now known as Patterner
04:29 jsut_ left #parrot
04:33 luben bacek, does the PMCs on on the stack get marked?
04:33 bacek_at_work luben, yes.
04:34 Patterner left #parrot
04:34 cotto as long as they're not after the end of a struct, e.g. when a larger struct gets cast to a smaller one
04:36 bacek_at_work PMCs are fixed size.
04:36 bacek_at_work PMC attributes are not, but it's irrelevant.
04:41 cotto Sorry. I meant "as long as the pointer to the pmc"..., and that's not a concern for most code
04:43 Psyche^ joined #parrot
04:43 Psyche^ is now known as Patterner
04:44 nopaste "chromatic" at 192.168.1.3 pasted "Let's try this for AMD64 and StringBuilder" (17 lines) at http://nopaste.snit.ch/23262
04:45 tcurtis joined #parrot
04:46 luben it seems that StringBuilder.get_string is somehow broken
04:46 luben chromatic, I have tried this and does not work
04:46 chromatic You think get_string() is the culprit?
04:47 luben look here: http://luben.spnet.net/gitweb/?p=parrot/.git​;a=blob;f=src/string/api.c;h=b962008850b0ab1​89f528a27409af409b0a251e1;hb=refs/heads/temp
04:47 luben ugly code to find where the things break
04:48 luben it works like that, but if I remove block/unblock arround get_string it breaks
04:50 M_o_C joined #parrot
04:51 chromatic Is the buffer moving out from under the StringBuffer?
04:51 chromatic Shouldn't be, with the external flag set.
04:56 Patterner left #parrot
04:57 Psyche^ joined #parrot
04:57 Psyche^ is now known as Patterner
05:04 particle joined #parrot
05:05 ash_ left #parrot
05:06 Patterner left #parrot
05:12 nopaste "chromatic" at 192.168.1.3 pasted "Avoid Parrot_str_clone() in SB" (17 lines) at http://nopaste.snit.ch/23263
05:12 chromatic Any better?
05:21 dafrito joined #parrot
05:21 luben I'll try
05:23 luben no, the same
05:25 dukeleto I've added #phasers to the Parrot Calendar on parrot.org, so people (like me) can set reminders. Hope that doesn't ruffle any feathers
05:25 chromatic Hm.  How about deleting the PObj_is_string_FLAG on line 73 of stringbuilder.pmc?
05:26 luben_work_ joined #parrot
05:26 luben_work left #parrot
05:29 luben chromatic, it does not change anything. Wierd - even with blocked GC runs, some other test fail. This test never call string_join
05:30 nopaste "luben" at 192.168.1.3 pasted "amd64 fail" (4 lines) at http://nopaste.snit.ch/23264
05:30 chromatic I'm out of ideas for the night.
05:30 Psyche^ joined #parrot
05:31 Psyche^ is now known as Patterner
05:31 luben may be it is not a bug in string builder or string_join... me also
05:33 chromatic Not sure what else it might be.
05:33 dafrito left #parrot
05:34 nopaste "chromatic" at 192.168.1.3 pasted "luben: avoid GC for fixed size pool exhaustion" (53 lines) at http://nopaste.snit.ch/23265
05:34 chromatic Does that fail for you too?
05:34 bacek_at_work SB.get_string is horribly wrong...
05:35 particle left #parrot
05:35 bacek_at_work It should use Parrot_str_new_init
05:36 bacek_at_work Something Parrot_str_new_init(INTERP, buffer->_bufstart, buffer->_buflen, buffer->encoding, 0);
05:36 chromatic We tried that a bit ago.
05:38 Patterner left #parrot
05:39 luben chromatic, GC-patch fixes it
05:39 luben but t/compilers/pct/complete_workflow.t still fails
05:40 chromatic Hm, I wonder why that didn't work for Patrick.
05:40 luben I'l try to bisect when that happened
05:47 bacek_at_work Do we have ticket for it? I can look at it tonight @home on amd64
05:53 luben bacek_at_work,  no ticket as I know, It hapens on optimized amd64 builds. Sometimes only with -O3, sometimes with -O2 (depending on the gcc version 4.4/4.5 here)
05:53 bacek_at_work luben, ok. Thanks for info.
05:56 nopaste "bacek" at 192.168.1.3 pasted "luben, can you try this patch?" (13 lines) at http://nopaste.snit.ch/23266
05:57 nopaste "bacek" at 192.168.1.3 pasted "luben, can you try this patch (full version)?" (13 lines) at http://nopaste.snit.ch/23267
05:57 bacek_at_work second one
05:58 luben bacek_at_work, we have tried this without effect.
05:58 Psyche^ joined #parrot
05:58 Psyche^ is now known as Patterner
05:59 bacek_at_work hmm... Strange.
05:59 purl But true.
05:59 bacek_at_work purl, annoying girl
05:59 purl bacek_at_work: what?
06:00 luben bacek_at_work, one of the test that exhibit this strange behaviout is t/library/mime_base64.t
06:01 luben another failing test is t/compilers/pct/complete_workflow.t, but I thing it's not related
06:09 uniejo joined #parrot
06:23 Psyche^ joined #parrot
06:23 Patterner left #parrot
06:23 Psyche^ is now known as Patterner
06:30 Patterner left #parrot
06:34 Psyche^ joined #parrot
06:34 Psyche^ is now known as Patterner
06:34 chromatic left #parrot
06:34 theory left #parrot
06:43 Patterner left #parrot
06:51 fperrad joined #parrot
07:00 sorear seen Whiteknight
07:00 purl Whiteknight was last seen on #parrot 7 hours, 2 minutes and 15 seconds ago, saying: you guys are on fire today
07:00 aloha Whiteknight was last seen in #parrot 7 hours 2 mins ago saying "you guys are on fire today".
07:04 M_o_C left #parrot
07:14 dalek parrot: r48851 | cotto++ | trunk/src (2 files):
07:14 dalek parrot: make Parrot_oo_get_class fail less surprisingly and improve docs
07:14 dalek parrot: thanks to bluescreen10++ for finding and reporting this underdocumented behavior
07:14 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48851/
07:32 ttbot Parrot trunk/ r48851 MSWin32-x86-multi-thread make error http://tt.taptinder.org/file/cmdout/386810.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/ )
07:35 dalek lua: fe73b9c | fperrad++ | dynext/pmc/luastring.pmc:
07:35 dalek lua: fix build after http://trac.parrot.org/parrot/changeset/48842
07:35 dalek lua: review: http://github.com/fperrad/lua/commit/fe​73b9c63d0d1661b4aebeaca7c24b4469aa098a
07:37 tadzik joined #parrot
07:38 jsut_ joined #parrot
07:43 jsut left #parrot
07:47 tadzik left #parrot
08:11 tadzik joined #parrot
08:19 tadzik left #parrot
08:39 dalek parrot: r48852 | luben++ | branches/hash_inlined_func/src/hash.c:
08:39 dalek parrot: use some functions and macros defined in the new encoding refactor
08:39 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48852/
08:39 dalek parrot: r48853 | luben++ | trunk/src/string/encoding/shared.c:
08:39 dalek parrot: Speed up equality check of same encoding multibyte strings
08:39 dalek parrot: Now when charset and encoding are one structure, we
08:39 dalek parrot: can memcmp between strings of same enconding
08:39 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48853/
08:47 sorear that patch assumes that two strings in the same encoding are equal iff they have the same bytes
08:47 sorear this appears to be currently true; do we plan to keep it that way?
08:47 ttbot Parrot trunk/ r48853 MSWin32-x86-multi-thread make error http://tt.taptinder.org/file/cmdout/386870.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/ )
08:48 moritz seems to collide with darbelo's NFG work, no?
08:49 sorear darbelo has vanished
08:56 tcurtis left #parrot
09:01 bacek aloha, humans
09:04 cotto perl6: <0 1>.pick(1).say
09:04 p6eval pugs, rakudo 19a8b7: OUTPUT«0␤»
09:05 cotto perl6: <0 1>.pick(1).say
09:05 p6eval pugs, rakudo 19a8b7: OUTPUT«0␤»
09:05 cotto perl6: <0 1>.pick(1).say
09:05 p6eval pugs, rakudo 19a8b7: OUTPUT«0␤»
09:05 cotto perl6: <0 1>.pick(1).say
09:05 p6eval pugs: OUTPUT«1␤»
09:05 p6eval ..rakudo 19a8b7: OUTPUT«0␤»
09:05 cotto perl6: <0 1>.pick(1).say
09:05 p6eval pugs: OUTPUT«1␤»
09:05 p6eval ..rakudo 19a8b7: OUTPUT«0␤»
09:05 cotto perl6: <0 1>.pick(1).say
09:05 p6eval pugs, rakudo 19a8b7: OUTPUT«1␤»
09:06 cotto I guess that's random.
09:06 cotto hio bacek
09:06 bacek aloha, cotto
09:09 cotto who owns ttbot?
09:09 cotto ttbot?
09:09 purl hmmm... ttbot is TapTinder build bot owned by mj41 and reporting http://tt.taptinder.org/bui​ldstatus/pr-Parrot/rp-trunk build errors. See also TapTinder.
09:10 cotto mj41, ping
09:11 cotto I guess it's not critical to have ttbot updated exactly when we move to git, but it'd be a shame to lose it for long.
09:12 cotto seen mj41
09:12 purl mj41 was last seen on #parrot 42 days, 15 hours, 42 minutes and 9 seconds ago, saying: Lost connection to server irc.perl.org.  [Jul 27 17:30:16 2010]
09:12 aloha mj41 was last seen in #parrot 1 days 18 hours ago joining the channel.
09:12 cotto aloha, seen mj41
09:12 aloha cotto: mj41 was last seen in #parrot 1 days 18 hours ago joining the channel.
09:12 cotto purl, seen mj41
09:12 purl mj41 was last seen on #parrot 42 days, 15 hours, 42 minutes and 36 seconds ago, saying: Lost connection to server irc.perl.org.  [Jul 27 17:30:16 2010]
09:13 cotto purl, msg mj41 We're planning on moving Parrot to git.  What would it take to update ttbot to use a github repo instead of svn?
09:13 purl Message for mj41 stored.
09:14 smash mornin' everyone
09:15 cotto morning, smash
09:17 cotto bacek, have you seen the recent changes to the GitMigration wiki page?
09:17 bacek cotto, nope
09:18 cotto please take a look and add anything you think should be there
09:18 cotto dukeleto and I have been fleshing it out recently
09:39 bacek tools/dev/mk_native_pbc? I don't think it has svn dependency
09:45 cotto It automatically commits generated pbc, so it's a trivial dependency
09:50 bacek ah
09:50 bacek I wasn't aware about this "functionality" :)
09:50 bacek And we generate native PBCs during build now
09:50 bacek Hang on.
09:50 purl Hang on. is this actually "session is still there but user has been deleted" ?
09:51 bacek It's just echoing commands for commit new pbc. But don't commit them
09:56 bacek ok.
09:56 bacek recent regressions in t/compilers has nothing to do with StringBuilder.
09:57 bacek It's some horrible GC/PCC failure.
09:57 bacek -PCC
09:57 bacek Just GC.
10:17 dalek rakudo: b736c88 | patrickas++ | src/ (2 files):
10:17 dalek rakudo: add ...^ operator
10:17 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​736c8855472c8a4f02ed3745cd016d9854f9011
10:17 dalek rakudo: 0a93184 | patrickas++ | src/core/operators.pm:
10:17 dalek rakudo: Cleanup as per pmichaud++'s comment
10:17 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​a93184111c55b78a234c0018f04c99ad17510ad
10:17 dalek rakudo: 4615073 | moritz++ | src/core/operators.pm:
10:17 dalek rakudo: Refactored series operator
10:17 dalek rakudo:
10:17 dalek rakudo: Conflicts:
10:17 dalek rakudo:
10:17 dalek rakudo: src/core/operators.pm
10:17 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​61507317be3d49dcc57409c3df066c77d48a943
10:17 dalek rakudo: f763b7e | patrickas++ | src/core/operators.pm:
10:17 dalek rakudo: Minor refactor for series
10:17 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​763b7e7550a5ffc75dc26738e3a73a6849b62d6
10:17 dalek rakudo: c2a00c0 | patrickas++ | src/core/operators.pm:
10:17 dalek rakudo: Made infinite-series lazier
10:17 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​2a00c0a80bfd39168e3d611a5a9138cfc83e227
10:17 dalek rakudo: 11e8510 | patrickas++ | src/core/operators.pm:
10:17 dalek rakudo: More refactor of the series op with help from colomon++
10:17 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​1e8510b0f582bcec4c0874a3bc05fa1da2c03f2
10:17 dalek rakudo: 938cb3e | patrickas++ | src/core/operators.pm:
10:17 dalek rakudo: is-on-the-wrong-side only returns true when the rhs is on the wrong side of ALL the lhs
10:17 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​38cb3ef5883b4a863d755409943eeda99f0df52
10:17 dalek rakudo: 049af59 | patrickas++ | src/core/operators.pm:
10:17 dalek rakudo: Support for infix ops as last item of lhs in series
10:17 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​49af59240d18536ea9523e611674a5029e49ef8
10:17 dalek rakudo: e102240 | patrickas++ | src/core/operators.pm:
10:17 dalek rakudo: Fix regression from previous commit
10:17 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​102240ee473c07b6b325c25486dbf1a2e0ee290
10:17 dalek rakudo: da97ee9 | patrickas++ | src/core/operators.pm:
10:17 dalek rakudo: All the series tests pass again
10:17 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​a97ee95a6a704eb73455042c28c77d9eba4ba7e
10:17 dalek rakudo: ea77ccd | moritz++ | src/ (2 files):
10:17 dalek rakudo: Merge remote branch 'origin/series-refactor'
10:17 dalek rakudo:
10:17 dalek rakudo: See http://github.com/rakudo/rakudo/pull/3 for a discussion
10:17 dalek rakudo: of what features that brings us.
10:18 dalek rakudo:
10:18 dalek rakudo: Note that this implements still the "old" series specs, but works much more
10:18 dalek rakudo: robust than before, and hopefully makes it also easier to adopt to the new
10:18 dalek rakudo: spec (since it supports closures on the RHS).
10:18 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​a77ccd249e99ddae4e2adb7f3cd60b7b2331a83
10:33 Infinoid Hmm.  Was that botspam expected?
10:33 moritz spam? all valuable commits :-)
10:33 Infinoid Oh, good
10:33 * Infinoid feared another false history bug
10:34 moritz it was a branch merge - one can argue whether that should show all commits from that branch
10:34 moritz 'git log' does, and so does dalek
10:34 Infinoid My counterargument would be that it's hard for dalek to tell the difference
10:34 Infinoid It just looks for hashes it hasn't seen before...
10:34 moritz well, I've said "one can argue", not taken a position
10:35 moritz the current behavior works well for me
10:35 Infinoid Ok :)
10:59 ruoso left #parrot
11:38 hudnix left #parrot
11:39 dalek tracwiki: v21 | cotto++ | GitMigration
11:39 dalek tracwiki: get cracking on git-aware tools
11:39 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Gi​tMigration?version=21&amp;action=diff
11:56 Coke luben - you're in Sofia? I used to work with a remote dev team there. They owe me beer if I ever show up. ;)
12:05 Coke msg dukeleto: when you added it, did you do it from the UTC timezone so it tracks DST with no worries?
12:05 purl Message for dukeleto stored.
12:05 aloha OK. I'll deliver the message.
12:06 Coke mk_native_pbc shouldn't automatically commit anything.
12:07 Coke msg luben - you're in Sofia? I used to work with a remote dev team there. They owe me beer if I ever show up. ;)
12:07 purl Message for luben stored.
12:07 aloha OK. I'll deliver the message.
12:07 pmichaud Perhaps luben could collect the beer for you?  ;-)
12:08 luben_work_ coke, glad to hear
12:09 Coke pmichaud: NO MY BEER!
12:10 cotto 85/.45
12:10 purl 188.888888888889
12:10 aloha 188.888888888889
12:10 Coke Добро утро
12:11 * Coke ponders digging up his bulgarian book again to practice on luben.
12:11 luben_work_ Добро и на теб
12:12 pmichaud parrot trunk no longer  builds on my system :(
12:12 pmichaud afk for 20
12:13 luben_work_ Coke, and if you show in sofia, I'll buy you another beer :)
12:13 cotto Coke, it doesn't.  It just spits out the command in case the user wants to copy-paste it.
12:13 dalek tracwiki: v22 | cotto++ | GitMigration
12:13 dalek tracwiki: note which scripts have been converted so far
12:13 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Gi​tMigration?version=22&amp;action=diff
12:14 Coke cotto: so have it not spit out the command, done.
12:14 Coke luben_work_: oooh, благодаря.
12:14 cotto I don't have enough brainpower to evaluate that statement.  I'm going to bed.
12:16 cotto Infinoid, i'd be nice if dalek tracked the not-from-svn branches in the parrot github repo, i.e. the ones like leto/git_docs and cotto/git_aware_tools
12:17 * Coke finds a nice oatmeal comic that really speaks to him about the presence of the utilikilt folks at yapc.
12:17 Coke Infinoid: but if that doesn't happen until post-switch, that'd probably be ok.
12:18 dalek parrot: r48854 | NotFound++ | trunk/t/pmc/hashiterator.t:
12:18 dalek parrot: add a few tests to hashiterator.t and fix its description and comments
12:18 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48854/
12:18 Themeruta joined #parrot
12:19 Themeruta is now known as NotFound_b
12:25 JimmyZ joined #parrot
12:32 ttbot Parrot trunk/ r48854 MSWin32-x86-multi-thread make error http://tt.taptinder.org/file/cmdout/386967.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/ )
12:38 Coke I'm able to build trunk.
12:38 Coke pbc_merge.obj : error LNK2001: unresolved external symbol _Parrot_default_encoding_ptr
12:38 Coke (from TT)
12:39 ruoso joined #parrot
12:40 pmichaud Coke: I think that amd64 systems have difficulty.
12:41 pmichaud But the trunk build has deteriorated.  Last night I could build but not pass tests.  This morning I cannot build.  :(
12:42 Coke pmichaud: what's the error?
12:42 purl the error is KABOOM!
12:43 pmichaud just a sec, rebuilding again
12:43 Coke (if it looks like the taptinder error that just hit, presumably someone will be working on it.)
12:47 pmichaud huh, it built this time on my other machine.
12:47 pmichaud Let me try the original again.
12:48 moritz pmichaud: I had no trouble building today
12:48 moritz and rakudo passes most tests
12:48 moritz (all except two spectest files)
12:50 NotFound_b left #parrot
12:52 pmichaud http://gist.github.com/570088  # error I get when trying to build Parrot using  "--gen-parrot" from Rakudo.
12:53 pmichaud basically, I set build/PARROT_REVISION to 48854 and then did the standard "perl Configure.pl --gen-parrot"
12:54 NotFound pmichaud: is the same kind of error we are having since yesterday. Funny characters in generated code.
12:54 pmichaud NotFound: right, okay.  I'm just reporting broken builds.
12:54 * moritz tries again after git clean -xdf
12:55 Coke and that's in dynoplibs, which is gen'd each time.
12:55 Coke I bet it's nwell* recent stringbuilder changes.
12:55 Coke pmichaud: you have ICU?
12:55 pmichaud Coke: yes.
12:55 Coke (enabled)
12:56 Coke hurm. my line 536 is empty.
12:56 Coke can you nopaste that bit of bit_ops.c ?
12:57 moritz pmichaud: is 'svn status' clean?
12:57 pmichaud moritz: fresh checkout.
12:57 moritz huh
12:58 pmichaud http://gist.github.com/570097 # lines 527-539 of bit_ops.c
12:58 Coke looks like extraneous garbage from the end of a C string.
12:59 NotFound Coke: or maybe wrong encoding
12:59 Coke (not that that looks like anything in particular.)
12:59 pmichaud I'll do one more fresh checkout, just in case.
13:01 luben_work_ the problem on amd64 is bad interaction between StringBuilder (that got excercised after porting string_join on ot) and our GC - there are ways to workarround it, but it's not a fix.
13:01 luben_work_ bacek, promised to take a look on it today
13:05 NotFound pmichaud: Can you try this: replace line 3112 of string/api.c with CONST_STRING(interp, "")
13:07 pmichaud my line 3112 says
13:07 pmichaud j_length = Parrot_str_byte_length(interp, j);
13:07 pmichaud ...that's the one you want me to replace?
13:07 NotFound No... i'll better nopaste a patch
13:07 particle joined #parrot
13:09 pmichaud http://gist.github.com/570109  # (fwiw) steps used to obtain build failure on my system
13:09 nopaste "NotFound" at 192.168.1.3 pasted "patch for str_join" (13 lines) at http://nopaste.snit.ch/23268
13:10 NotFound My fault, I had some debug comments added
13:10 * Coke thinks that 48853 looks odd.
13:11 Coke ah, looks better in context.
13:12 NotFound pmichaud: nopasted the fix
13:12 pmichaud NotFound: applied, rebuilding
13:12 NotFound With that change amd64 --optimize builds here
13:14 pmichaud http://gist.github.com/570114 # new build failure after patch
13:15 NotFound For me build, but fails several tests
13:15 Coke that loosk like the same error.
13:16 pmichaud it's an error in the same place, but the strings are different this time
13:20 particle everybody sing happy birthday to chromatic when he shows up today!
13:24 luben_work_ NotFound, stringBuilder's buffer get sweeped under it. there are 2 workarounds: 1. block GC for string_join, 2. do not run GC compact fixed pool on pool exhaustion.
13:24 NotFound Why StringBuilder doesn't have a custom mark?
13:24 TiMBuS left #parrot
13:24 shockwave left #parrot
13:24 TiMBuS joined #parrot
13:25 luben_work_ NotFound, buffer is attribute and is set to be marked automatically
13:25 pmichaud Huh, this is weird.  If I try to build Parrot from a git checkout, it builds okay.  If I try to do it from an svn checkout, I get the build error.
13:25 NotFound luben_work_: automatically? By whom?
13:26 moritz pmichaud: I also use a git checkout. Which might explain why it builds for me. Let's switch to git :-)
13:27 NotFound Oh, I see. That shit isn't a string at all. No wonder it fails in bizarre ways.
13:27 luben_work_ because it is in the pool for pmc attributes
13:29 NotFound Proposal: kill Parrot_str_clone. Is a source of bugging misuses
13:32 pmichaud reconfirmed on my system.  An svn checkout fails to build.  A git checkout succeeds.
13:32 pmichaud (I agree that makes almost no sense.)
13:33 moritz the only difference should be (1) expansion of modelines and (2) revison information
13:35 whiteknight joined #parrot
13:35 JimmyZ left #parrot
13:35 nwellnhof joined #parrot
13:38 NotFound Another attempt of fix: in line 73 of stringbuilder.pmc add: | PObj_constant_FLAG to the buffer->flags setting
13:40 NotFound No, doesn't solve almost nothing
13:41 pmichaud Now re-reconfirmed on my other system.  svn checkout fails to build.  git checkout succeeds.
13:41 NotFound Great
13:42 pmichaud so, I'll diff the sources and see what's.... different.  :-)
13:42 Coke msg chromatic let me know if you want me to bludgeon particle for you.
13:42 purl Message for chromatic stored.
13:42 aloha OK. I'll deliver the message.
13:43 pmichaud msg Coke please bludgeon particle anyway
13:43 purl Message for coke stored.
13:43 aloha OK. I'll deliver the message.
13:43 nwellnhof I think we should try to mark the StringBuilder buffer. It shouldn't be necessary, but I suspect that buffer seomhow gets collected.
13:43 Coke what could be different between the two... line endings?
13:44 Coke ok. if we're not ready to switch to aloha, he needs to shut up.
13:44 NotFound Coke: line endings is multiline macros can do funny things. Ususally they give warnings, but...
13:47 pmichaud a configuration might be looking for a file that exists in an svn checkout but not in git (or vice versa)
13:48 pmichaud (I agree this is stretching... but I'm totally surprised that I can consistently build git checkouts but not svn ones)
13:49 Coke pmichaud: does rakudo have a plan for dealing with parrot's cutover to git for --gen-parrot?
13:50 pmichaud Coke: I'll likely re-do gen-parrot.
13:50 Coke Let's throw it out to #perl6 and see if anyone steps up. ;)
13:50 pmichaud well, it has to be done for nqp-rx also.  :)
13:51 NotFound pmichaud: <conspiration>Maybe someone is doing it on purpose to speedup the switch to git?</conspiration>
13:51 nopaste "nwellnhof" at 192.168.1.3 pasted "stringbuilder-mark.diff" (19 lines) at http://nopaste.snit.ch/23269
13:51 pmichaud NotFound: maybe.  Wish I had thought of it sooner?  ;-)
13:51 moritz dukeleto++ submitted a patch for --gen-parrot and git (in the fork queue)
13:51 moritz it doesn't do the version comparison yet
13:51 nwellnhof can anyone with the stringbuilder problems try the patch above?
13:52 pmichaud how does Parrot get its 'revision' configuration entry, ooc?
13:54 luben_work_ nwellnhof, compiling
13:55 pmichaud what is tools/dev/nm.pl, oocu?
13:55 pmichaud *ooc?
13:55 hudnix joined #parrot
13:55 NotFound nwellnhof: fails for me
13:55 luben_work_ and for my
13:56 nwellnhof ok, it was just a guess
13:56 nwellnhof luben: you said the problems go away if you block the GC inside StringBuilder's get_string?
13:57 luben_work_ no, if I block GC in parrot_string_join, arround usage of StringBuilder
13:58 nwellnhof ah, ok
13:58 moritz didn't bacek do that in r48767 already?
14:02 uniejo left #parrot
14:06 contingencyplan joined #parrot
14:08 NotFound http://tapir2.ro.vutbr.cz/cover/cover-results​/48848/c_cover/src-pmc-stringbuilder-pmc.html --> A critical part of StringBuilder is not covered by tests
14:09 moritz you mean lines 197-201?
14:10 NotFound Yeah
14:12 Coke NotFound: is it me, or is that case already handled at 216?
14:12 Coke also, why is 197 doing a free before doing anything with the old buffer?
14:12 patspam joined #parrot
14:13 pmichaud is buffer->strstart still valid after doing the mem_gc_free ?
14:13 Coke (ah, no, it's stored at #192.)
14:13 pmichaud (lines 199 and 197)
14:13 particle left #parrot
14:13 pmichaud oh, nm
14:13 pmichaud it's a double assign
14:14 Coke seems like that whole section can be ripped out anyway due to #216-222
14:14 pmichaud oh, but we then do a memcopy?
14:14 pmichaud okay, I get it.
14:15 whiteknight good morning, #parrot
14:16 shockwave joined #parrot
14:16 shockwave Howdy.
14:17 pmichaud when we do mem_gc_alloc_n_typed (line 200) or mem_gc_realloc_n_typed (line 220), is it possible we're losing the string allocated by the encoding conversion earlier (line 186)?
14:17 pmichaud i.e., perhaps those allocs are causing a gc run?
14:17 shockwave I just ran some tests to see if a property assigned to a PMC is transferred to the other upon doing $P0 = $P1. And it appears to be the case. Is there anything anyone knows that I should keep in mind when doing this?
14:17 nwellnhof i think the ->to_encoding is the problem
14:18 luben_work_ moritz, it was patch arround old string_join implementation. bacek said that using stringbuilder not require GC blocking
14:18 pmichaud shockwave: your question is wrong.
14:18 moritz ah
14:18 nwellnhof i made some changes to the to_encoding functions that aren't compatible with the way StringBuilder uses them.
14:19 shockwave pmichaud: Can you qualify your statement?
14:19 pmichaud $P0 = $P1 doesn't transfer anything.
14:19 luben_work_ nwellnhof, this bug dates before your branch merge
14:19 pmichaud it just causes register $P0 to point to the PMC at $P1.
14:20 nwellnhof luben: but back then we had the bug in str_clone
14:20 Andy joined #parrot
14:20 pmichaud (and so yes, both $P0 and $P1 will appear to have the same properties, because they are in fact the same PMC)
14:20 shockwave pmichaud: oh, I see. I don't know why I always think of = as assignment.
14:23 moritz because that's what non-assembler languages use :-)
14:23 shockwave @moritz: hehe, as soon as I wrote that last statement I told myself that same thing.
14:32 Andy left #parrot
14:32 dalek parrot: r48855 | nwellnhof++ | trunk/src/string/encoding (5 files):
14:32 dalek parrot: [str] Switch back to str_clone in to_encoding functions
14:32 dalek parrot: The StringBuilder code expects to get a new buffer.
14:32 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48855/
14:33 pmichaud nwellnhof: I have a different patch for StringBuffer I'm about to work on
14:34 pmichaud (testing r48855 though)
14:35 nwellnhof r48855 probably doesn't help, but it's safer that way
14:35 pmichaud yes, I'm curious to see if 48855 helps
14:36 pmichaud okay, I still get build failure for svn checkout of 48855
14:39 ttbot Parrot trunk/ r48855 MSWin32-x86-multi-thread make error http://tt.taptinder.org/file/cmdout/387058.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/ )
14:40 luben_work_ it does not help for me neither
14:41 Andy joined #parrot
14:42 nwellnhof luben: i'm still curious if the call to to_encoding is the problem. can you maybe try to block the GC during the whole encoding stuff in push_string?
14:43 pmichaud I'm trying that now.
14:43 pmichaud My first attempt didn't seem to help.
14:44 pmichaud ...and neither did my second attempt.  I'm guessing it's not gc in push_string that is the issue.
14:45 particle joined #parrot
14:45 pmichaud http://gist.github.com/570226 # fwiw, the patch I tried
14:45 pmichaud I think the patch w/o the gc block/unblock might be worthwhile, anyway.
14:46 pmichaud avoids the extra memcopy code.
14:46 pmichaud although I don't know if any other code relies on the buffer attribute being invariant.
14:48 nwellnhof the extra memcopy is needed because the stringbuilder buffer is external.
14:48 pmichaud okay, makes sense.
14:48 pmichaud this is my first time to look at the stringbuilder pmc
14:51 pmichaud and just to confirm, adding block_GC_mark and unblock_GC_mark to push_string (with no other changes) doesn't resolve the problem for me either.
14:52 ash_ joined #parrot
14:52 contingencyplan left #parrot
14:53 silug left #parrot
14:53 luben_work_ pmichaud, if you add block_GC_mark & unblock_GC_mark in src/string/api.c, arround Parrot_str_join it will help you
14:54 pmichaud luben_work_: I'm looking for a permanent (commitable) fix, not just something to get me by.
14:54 NotFound What the hell is latin1 encoding?
14:55 pmichaud luben_work_: for what I'm doing (Rakudo) -- uncommitted changes to trunk aren't at all useful.
14:55 luben_work_ pmichaud, yes, I understand.
14:56 pmichaud or, phrased another way -- currently we can't update PARROT_REVISION in Rakudo until this bug is resolved.
14:57 NotFound Parrot_str_join uses vtable calls that can throw. If you block the gc and something throws, you get the gc blocked
14:57 moritz "what could possible go wrong"
14:58 NotFound moritz: just the build
15:09 whiteknight What's the problem in Parrot_str_join that requires the GC to be blocked?
15:14 nwellnhof whiteknight: build failures on amd64 with --optimize
15:15 nwellnhof r48857 might help with the StringBuilder issue
15:15 pmichaud I'm still quite amazed at the git vs. svn difference
15:16 pmichaud checkouts with 'svn export' fail also.
15:16 pmichaud so it's not the presence/absence of .svn directories
15:17 theory joined #parrot
15:17 pmichaud nwellnhof: testing r48857 now
15:19 pmichaud nwellnhof: still fails (at the same place)
15:20 pmichaud I wish there was some way to get an svn export without keyword expansion :-|
15:20 moritz for making a diff?
15:21 moritz iirc the keyword expansion is client side, so you'd "just" have to patch your localy svn installation
15:21 pmichaud to see if keyword expansion is part of why the build fails
15:21 moritz as a stopgap measure you can just re-substitute them with a regex
15:21 pmichaud yeah, I'm thinking of doing that
15:22 moritz perl -i -pe ftw
15:23 dalek parrot: r48856 | nwellnhof++ | trunk/src/string/api.c:
15:23 dalek parrot: [str] Don't allocate empty string storage
15:23 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48856/
15:23 dalek parrot: r48857 | nwellnhof++ | trunk/src/pmc/stringbuilder.pmc:
15:23 dalek parrot: [pmc] Never allocate empty strings in StringBuilder
15:23 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48857/
15:24 ttbot Parrot trunk/ r48856 MSWin32-x86-multi-thread make error http://tt.taptinder.org/file/cmdout/387124.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/ )
15:25 whiteknight nwellnhof: what compiler on amd64? GCC I assume?
15:26 nwellnhof nwellnhof: i don't know. i'm on 32bit and can't reproduce it.
15:26 whiteknight ah, gotcha
15:26 whiteknight I can't reproduce it then until I get home tonight
15:26 ash_ i have 64-bit OS X, and access to a 64-bit linux machine if you need me to test something
15:27 pmichaud I can probably make an account on this box, too.
15:27 pmichaud just a sec
15:28 ash_ oh, that reminds me, last time i tried it, doing --m=32 on OS X has no effect, and it might be nice/useful if we could specify to build a universal binary on OS X
15:37 ttbot Parrot trunk/ r48857 MSWin32-x86-multi-thread make error http://tt.taptinder.org/file/cmdout/387150.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/ )
15:37 pmichaud oh, another data point:  I seem to get the build failure only when passing a --prefix= option to Configure.pl .
15:39 ash_ on OS X 64 bit, the latest trunk with --optimize built fine, running tests
15:39 pmichaud ash_: what kind of checkout did you do?
15:39 ash_ svn co https://svn.parrot.org/parrot/trunk/
15:40 silug joined #parrot
15:40 ash_ built with apple gcc 4.2
15:40 pmichaud did you try building with --prefix= passed to Configure.pl ?
15:40 ash_ no, but i can
15:41 ash_ i got 3 errors in pge, and 1 error in a library mime_base64
15:41 chromatic joined #parrot
15:41 luben_work_ nwellnhof, still the same @ r48857
15:42 ash_ i am adding a --prefix and --optimize to see if that changes anything
15:42 luben_work_ whiteknight, bugs manifest on linux amd64 with gcc-4.4 -O2 and gcc-4.5 -O3
15:42 nwellnhof ash_: can you post the output of the mime_base64 test
15:42 luben_work_ ash, t/library/mime_base64.t
15:43 ash_ nwellnhof: ummm sure... i just started re-compiling though, ill let this finish first
15:43 whiteknight how does the build fail? crash? segfault? Is there a backtrace somewhere I can take a peek at?
15:43 nwellnhof mime_base64 seems to be unicode related
15:44 ash_ doing: parrot t/library/mime_base64.t instantly segfaults
15:44 NotFound whiteknight: garbage inserted in generated files
15:44 ash_ well, not instantly, it prints 1..550
15:44 ash_ then segfaults
15:44 luben_work_ pmichaud, the only obvious reason for git/svn difference is in SVN ID that is inserted in svn checkout
15:44 whiteknight great
15:44 pmichaud luben_work_: yes, I know.
15:45 pmichaud whiteknight: I'm generating a fresh build failure now
15:45 ash_ it dies in: Parrot_str_rep_compatible
15:45 ash_ i can give you a gdb stacktrace if you want
15:45 whiteknight pmichaud: awesome. Let me know when you have it and I'll take a looksie
15:45 nopaste "luben" at 192.168.1.3 pasted "amd64 fail, gcc-4.5 -O3" (6 lines) at http://nopaste.snit.ch/23271
15:45 nwellnhof ash: a backtrace would be nice
15:46 pmichaud whiteknight: it's very bizarre here.  It only fails the build if I grab parrot from an svn checkout, and use both the --prefix= and --optimize flags on Configure (more)
15:46 pmichaud if I use a git checkout, no failure.
15:46 whiteknight urg. This just sounds wonderful
15:46 pmichaud However, it's extremely repeatable, and I've confirmed it on two separate machines.
15:46 ash_ nwellnhof: http://gist.github.com/570315
15:47 nwellnhof hmm, no line numbers
15:47 ash_ nwellnhof: i did --optimize, i can leave that out if you want to give you some
15:47 ash_ or is there another option that adds line numbers with --optimize?
15:47 luben_work_ ash_, but then you will not get the crash
15:48 nwellnhof i think it's -g but that should be enabled with optimized builds, too
15:48 rblackwe left #parrot
15:49 pmichaud http://gist.github.com/570319 # latest build failure, for whiteknight++
15:49 nwellnhof but it can only be a NULL string or a NULL encoding in string_rep_compatible
15:50 whiteknight urg. that's horrible
15:50 Coke nwellnhof: why force initial_string_capacity there instead of just checking for 0?
15:50 Coke --optimize --ccflags="-g"
15:50 whiteknight pmichaud: you say it happens when you use --prefix=? Does it ever happen without that?
15:51 pmichaud whiteknight: I haven't tried it w/o --prefix very often.  I almost always configure with --prefix, because Rakudo and NQP need installed parrots.
15:52 pmichaud I don't know if it's failed w/o prefix present.  In all likelihood it's just the present of prefix is tickling the GC in some way that makes the problem manifest during the build.
15:52 pmichaud *presence
15:52 whiteknight pmichaud: if it requires --prefix, I think we can narrow it down to a problem in the library path search logic. like a string not being properly anchored there
15:52 nwellnhof Coke: the size given to init_int is only a guess. we might need more than that. so i think it's ok to allocate at least initial_string_capacity.
15:52 whiteknight if we don't need --prefix, then we need to look elsewhere
15:52 pmichaud whiteknight: well, that's what causes the build failure.  Other people get past the build, but then see test failures.
15:53 whiteknight ah, I see.
15:53 Coke nwellnhof: if it was only a guess, why bother even supporting it?
15:53 pmichaud (that have the same underlying cause -- i.e., generated files that are corrupt)
15:53 Coke why not just use our builtin guess?
15:53 NotFound It fails for me with --optimize without --prefix
15:53 pmichaud NotFound: the build fails, or tests fail?
15:54 ash_ nwellnhof: i still get the error without --optimize
15:54 nwellnhof Coke: what builtin guess?
15:54 NotFound pmichaud: the build
15:54 purl the build is called $self->BUILD($param)
15:54 moritz fwiw, rakudo on latest parrot has lots of spectest failures (aborted tests)
15:54 pmichaud NotFound: interesting.
15:54 ash_ nwellnhof: http://gist.github.com/570324
15:54 pmichaud nwellnhof: would it help to have access to a 64-bit machine?  I can give you a guest account here.
15:54 moritz ./perl6 t/spec/S32-list/reduce.rakudo  aborts with
15:54 moritz can't get class from an instance of class 'P6role' in 'Test::isa_ok' at line 142:Test.pm in main program body at line 61:t/spec/S32-list/reduce.rakudo
15:55 ash_ is a stack trace with numbers (basically i just did perl Configure.pl && make && parrot t/library/mime_base64.t
15:55 moritz (with a previous parrot version and no rakudo change, this test was fine)
15:56 nwellnhof ash: it might be something unrelated, but it's still interesting
15:57 Coke nwellnhof: the initial_capacity constant that you just used.
15:57 nwellnhof pmichaud: maybe later
15:57 pmichaud nwellnhof: okay, let me know.  I have one set up now if you need it.
15:57 pmichaud I have to take a break for a bit -- bbl
15:59 nwellnhof Coke: yes we could do that. but we would only save some bytes that might be allocated later anyway.
15:59 NotFound make corevm ; make coretest pass except for the integer and bigint known problem. Conclusion, as always: we don't have enough test for core features
16:01 NotFound Maybe we should add corelibs and corelibstest targets
16:05 chromatic src/pmc/stringbuilder.pmc lines 195 through 197 look wrong.
16:06 ash_ left #parrot
16:06 chromatic I know it's misleading, but even so it looks wrong.
16:10 nwellnhof it looks a bit strange, but if we do it this way we don't have to reallocate the buffer twice.
16:12 Coke nwellnhof: /might/ being the operative word there. why bother taking the user's guess if we're ignoring it. ;)
16:13 nwellnhof Coke: if you care about the memory, it would be better to decrease INITIAL_STRING_CAPACITY.
16:14 Coke nwellnhof: nevermind.
16:14 patspam1 joined #parrot
16:14 Coke I'll just fix it myself.
16:14 chromatic buffer->strlen   = Parrot_str_length(interp, new_buffer);
16:14 chromatic Seems like that might help.
16:15 patspam left #parrot
16:21 theory left #parrot
16:22 dukeleto msg Coke yes, i added #phasers in UTC
16:22 purl Message for coke stored.
16:22 aloha OK. I'll deliver the message.
16:32 NotFound r48830 build and pass test with --optimize and --prefix
16:33 nopaste "chromatic" at 192.168.1.3 pasted "AMD64: update StringBuffer's strlen" (23 lines) at http://nopaste.snit.ch/23272
16:33 dukeleto 'ello
16:40 whiteknight hello duke
16:51 mikehh_ joined #parrot
16:53 dukeleto whiteknight: how goes it in your neck of the woods?
16:54 whiteknight dukeleto: quite well. Have a small window now where the kid isn't sick and isn't teething, so I'm trying to write as much software as I possibly can
16:54 mikehh left #parrot
16:54 whiteknight dukeleto: you?
16:54 purl i guess you is a test factoid
16:54 luben_work_ chromatic, no difference with the pasted patch here
16:57 Coke .
16:57 Coke any reason we can't switch over to aloha fully now?
16:57 Coke \/win 11
17:00 tcurtis joined #parrot
17:02 cotto_work ~~
17:07 luben_work_ left #parrot
17:13 rblackwe joined #parrot
17:17 dukeleto whiteknight: trying to figure out what to spend time on. I am interested by too many things.
17:17 shockwave @dukeleto: Threads.
17:17 purl rumour has it threads is ithreads, Thread is 5.005 threads (older)
17:19 shockwave Does anyone know how far Chandon has gotten with that?
17:20 shockwave And, is any of it on trunk?
17:21 cotto_work It's not in trunk.  My understanding is that green threads work but that we need to make some design decisions before real threads can work.
17:21 Coke that is a faq, I think.
17:22 NotFound if (fmt->encoding != Parrot_utf8_encoding_ptr && fmt->encoding != Parrot_asc
17:22 NotFound fmt = Parrot_utf8_encoding_ptr->to_encoding(INTERP, fmt);
17:22 NotFound Adding this in codestring fixes the build for me.
17:23 NotFound Uh... no... sometimes build, sometimes no.
17:23 ruoso left #parrot
17:24 shockwave cotto_work: Do you happen to know if the green threads are in trunk?
17:24 cotto_work Chandon's aren't.
17:25 shockwave cotto_work: ok, thanks.
17:27 dukeleto cotto_work: what are you working on today?
17:28 cotto_work I'll probably look at what it'll take to update mk_manifest_and_skip, work permitting (which is likely)
17:29 cotto_work I hope you say my branch on github
17:30 dukeleto cotto_work: i saw it, but haven't looked at it closely, yet
17:32 dukeleto cotto_work: gonna take a look now
17:33 cotto_work mk_manifest_and_skip isn't going to be quite as easy as I'd hoped
17:40 chromatic NotFound, that encoding switch does look suspicious.
17:41 theory joined #parrot
17:43 NotFound chromatic: I suspect that the problem is that the encoding of concatenations or joins has changed
17:44 NotFound Can't someone get rid of remaining CodeString usages?
18:04 dukeleto NotFound: it isn't used widely, but PGE and nqp-rx use it
18:04 NotFound And data_json
18:04 purl data_json is the newer stuff, i think JSON is being deprecated
18:04 NotFound Jey components are using a deprecated thing.
18:05 NotFound s/Jey/Key
18:07 dukeleto cotto_work: in your git_aware_tools branch, mk_native_pbc will need something like "git add" before a commit
18:09 cotto_work So it will.  Can you fix that?
18:10 dukeleto cotto_work: do we know exactly what the filenames will be, or are they dynamic?
18:10 dukeleto cotto_work: i am pretty sure they are dynamic
18:10 cotto_work There's a fixed number of files that'll be changed.
18:11 dukeleto cotto_work: yes, but the filenames change depending on what platform you run mk_native_pbc on, right?
18:11 dalek parrot: r48858 | nwellnhof++ | trunk/src/string/api.c:
18:11 dalek parrot: [str] Don't convert to UTF-16 in str_replace
18:11 dalek parrot: It requires ICU
18:11 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48858/
18:11 dukeleto cotto_work: we could just always add all possible files, and only the files that have actually changed will be effected
18:11 cotto_work sure
18:12 dukeleto cotto_work: t/native_pbc/*_*.pbc
18:12 dukeleto cotto_work: will fix. you want me to commit to your branch?
18:12 cotto_work please do
18:13 cotto_work I only put my name there because it seems to be a convention.
18:13 dukeleto cotto_work: yep, i just always ask before commiting to other peeps branches :) Common courtesy, in the age of DVCS's
18:14 cotto_work *.pbc might be a better idea. There are some files without underscores in their names.
18:14 cotto_work e.g. number.pbc
18:15 dukeleto cotto_work: the comments in mk_native_pbc specify *_*.pbc. hmmm
18:15 darbelo joined #parrot
18:15 dukeleto cotto_work: also, mk_native_pbc does a svn commit, which actually pushes the changes to the server
18:15 cotto_work git ls-tree looks like a good starting point for mk_manifest...
18:16 dukeleto cotto_work: i think the new mk_native_pbc should only do a git commit, and then the person running should have to do the git push manually. Seems safer
18:16 cotto_work +1
18:16 purl 1
18:16 dukeleto cotto_work: we will probably need to update the release guide about that
18:16 darbelo dukeleto: Really? I thought it just suggested the user do so.
18:16 dukeleto darbelo: you are correct. it echo's the commands
18:17 darbelo Having scripts ato commit strikes me as a dangerous thing to do, specially with svn.
18:17 darbelo *auto
18:18 cotto_work We like to live on the wild side.
18:18 cotto_work Sometimes I put a forkbomb into the test suite, just because.
18:19 dukeleto keeps life interesting.
18:20 dalek nqp-rx: c83336f | pmichaud++ | src/cheats/hll-grammar.pir:
18:20 dalek nqp-rx: Add :sub<...> precedence for operator precedence parser (<EXPR>).
18:20 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/c​83336fc2bad4d10fde0952a2482e9672e03b3fd
18:20 dukeleto cotto_work: i fixed mk_native_pbc and pushed. enjoy.
18:20 cotto_work I'd plan subversion roulette, but that's basically the same as trying to merge a branch.
18:21 dukeleto cotto_work: jhelwig may be of some help porting mk_manifest_* to git
18:21 dukeleto cotto_work: he was the one trying to get it to work with git-svn
18:22 dukeleto cotto_work: i will attempt to recruit him, since I will probably see him at PDX.pm tonight
18:22 jhelwig dukeleto: I won't be at PDX.pm tonight, but I'll be at the hackathon tomorrow.
18:22 dukeleto jhelwig: ok. you can still help us, though :)
18:22 jhelwig Yeah.
18:22 dukeleto jhelwig: cotto_work and I are porting various parrot tools to git from svn
18:23 jhelwig Excellent.
18:23 dukeleto jhelwig: your old friend mk_manifest_and_skip.pl could use some work ...
18:24 dukeleto jhelwig: http://github.com/parrot/parrot <-- feel free to fork
18:25 dukeleto jhelwig: i am also hacking on git docs at http://github.com/parrot/parrot/tree/leto/git_docs
18:25 purl okay, dukeleto.
18:25 jhelwig You going to be at the hackathon tomorrow?
18:25 dukeleto jhelwig: probably
18:25 pmichaud I can likely get nqp to stop using CodeString.
18:25 jhelwig Remind me then.
18:25 pmichaud I'll work on that now.
18:28 dukeleto pmichaud++ # we are trying to put CodeString out to pasture
18:28 dukeleto jhelwig: ok, i will remind myself to remind you ;)
18:31 whiteknight left #parrot
18:31 * dukeleto is so delighted that all the perl6 repos are on github now. Makes me really want to work hard to get parrot moved to github
18:32 cotto_work Ideally, I'd like us to make the switch yesterday.
18:34 ruoso joined #parrot
18:37 ttbot Parrot trunk/ r48858 MSWin32-x86-multi-thread make error http://tt.taptinder.org/file/cmdout/387244.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/ )
18:44 hercynium joined #parrot
18:52 theory left #parrot
18:58 davidfetter joined #parrot
19:01 chromatic Wow, a 1.8% performance improvement.
19:01 dalek parrot: r48859 | chromatic++ | trunk/compilers/imcc (2 files):
19:02 dalek parrot: [IMCC] Removed vestigial JIT flag from IMCC.
19:02 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48859/
19:02 dalek parrot: r48860 | chromatic++ | trunk/src/parrot_debugger.c:
19:02 dalek parrot: [src] Fixed typos and tidied documentation.
19:02 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48860/
19:02 dalek parrot: r48861 | chromatic++ | trunk/src/namespace.c:
19:02 dalek parrot: [ns] Optimized NameSpace type check.
19:02 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48861/
19:02 dalek parrot: r48862 | NotFound++ | trunk/ChangeLog:
19:02 dalek parrot: change in ChangeLog the comment about Id getting mangled when it's commited that gets mangled when it's commited
19:02 purl dalek: that doesn't look right
19:02 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48862/
19:03 NotFound my ($svnid) =
19:03 NotFound '$Id: gen_charset_tables.pl 48833 2010-09-07 22:58:38Z nwellnhof $' =~
19:03 NotFound This is intentional?
19:03 NotFound tools/dev/gen_charset_tables.pl
19:05 theory joined #parrot
19:05 cotto_work probably not
19:07 Patterner joined #parrot
19:08 contingencyplan joined #parrot
19:10 fperrad left #parrot
19:12 dalek TT #1252 closed by darbelo++: src/dynpmc/gdbmhash.pmc:  Handle case where libgdbm.so cannot be loaded on ...
19:12 dalek TT #1252: http://trac.parrot.org/parrot/ticket/1252
19:19 dalek parrot: r48863 | chromatic++ | trunk/src/hash.c:
19:19 dalek parrot: [hash] Optimized parrot_hash_mark().
19:19 dalek parrot: This improves Rakudo performance by some 1.4%, and should have similar nice
19:19 dalek parrot: effects for any GC-heavy code.
19:19 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48863/
19:22 dalek rakudo: 780732f | moritz++ | src/core/IO.pm:
19:22 dalek rakudo: make dir() default to the current directory
19:22 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​80732f21f92760c67bf4d78a9ff00f68a1567d1
19:29 dukeleto NotFound: do you want me to apply your pull request to blizkost? I was going to test it, but I am seeing nt/exit.t fail in master
19:29 NotFound dukeleto: ofcoz!
19:30 NotFound chromatic said is good, so it is ;)
19:31 sorear dukeleto: well run the other tests
19:31 sorear nt/exit.t would be a TODO if I knew how to TODO segfaults
19:32 sorear one failing test isn't an excuse to skip the entire testsuite
19:33 dukeleto sorear: i ran the tests that run with "make tesT"
19:33 dukeleto "make test" rather
19:34 dukeleto NotFound: applied
19:35 dukeleto sorear: so nt/exit.t is supposed to be TODOed ?
19:35 dukeleto sorear: i see a segfault in parrot-nqp from the test, but my build is optimized so I don't have a useful backtrace
19:35 dalek parrot: r48864 | pmichaud++ | trunk (2 files):
19:35 dalek parrot: [pct]:  Migrate 'lineof' method (from deprecated CodeString PMC) into PCT::HLLCompiler.
19:35 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48864/
19:35 dalek parrot: r48865 | pmichaud++ | trunk/compilers/pct/src (2 files):
19:36 dalek parrot: [pct]:  Switch PAST::Compiler and POST::Compiler to use lineof method from PCT::HLLCompiler.
19:36 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48865/
19:36 dalek parrot: r48866 | pmichaud++ | trunk (3 files):
19:36 dalek parrot: [pct]:  Refactor cache parameter of .lineof method to be named param.
19:36 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48866/
19:36 dukeleto looks like CodeString is hanging on by a .... string.
19:37 cotto_work It's on the ropes.
19:38 cotto_work Why's it being deprecated?  The ticket isn't especially clear on that point.
19:38 dalek blizkost: 7f0ac55 | Julian++ | src/pmc/bkmarshal.c:
19:38 dalek blizkost: fix order of args in trampoline
19:38 dalek blizkost: review: http://github.com/jnthn/blizkost/commit/​7f0ac55a6217ac3c1af924d39a9d08bcbfb85d09
19:39 cotto_work Coke: ping
19:40 pmichaud its capabilities have been subsumed by other PMCs
19:41 cotto_work Coke: unping
19:41 * dukeleto rm's leto/parrot.git on github, 'cause people seem to be getting confused
19:41 NotFound dukeleto: installed from plumage, also fails the nt/exit.t test here
19:43 pmichaud the stringbuilding/formatting is now handled by StringBuilder
19:43 sorear dukeleto: I understand nt/exit.t; it's simply a matter of global destruction being broken
19:43 pmichaud and the line-counting capability is moving to PCT/HLLCompiler
19:43 sorear dukeleto: fixing it, correctly, it not trivial
19:44 pmichaud this is being done because CodeString doesn't play well with immutable strings
19:44 dukeleto NotFound: ok, you want to open an issue? do you have a useful backtrace?
19:45 sorear of course it fails nt/exit.t.  When I added that test, it fails everywhere with the same backtrace
19:45 pmichaud okay, I'm stuck.
19:45 dukeleto cotto_work: this looks really useful to generate various reports about our git repo: http://github.com/visionmedia/git-extras
19:46 pmichaud I can't update nqp-rx to use the new 'lineof' method because it depends on r48866.
19:46 dalek TT #1776 created by moritz++: r48847 breaks Rakudo
19:46 dalek TT #1776: http://trac.parrot.org/parrot/ticket/1776
19:46 dukeleto sorear: you say "of course" but these things you talk about, very few other people understand. if you would explain the situation a bit more, that would really be helpful
19:46 NotFound dukeleto: nt/exit.t .................. Can't undef active subroutine during global destruction.
19:46 pmichaud and I can't use r48866 because it won't build and run on 64-bit machines.
19:46 pmichaud (when checked out via svn, which nqp-rx does)
19:48 sorear dukeleto: Parrot has no concept of ordering in global destruction
19:48 sorear dukeleto: blizkost SV proxies need to drop Perl-side references when destroyed
19:48 sorear dukeleto: that means 1. blizkost needs to still be loaded 2. the Perl interpreter needs to still exist
19:48 NotFound dukeleto: I suppose the problem is that it tries to destroy the sub that is calling exit.
19:51 dukeleto sorear: how do we get ordered global destruction in parrot?
19:52 sorear we can't.
19:52 cotto_work Note that it's currently on the roadmap for 3.6
19:52 sorear somebody with political clout needs to invent a way and force it in
19:53 cotto_work My impression was that it's a technical issue.
19:53 pmichaud I suspect it involves more technical clout than political clout.
19:53 cotto_work Barring side-effects, it'll be a welcome feature.
19:56 chromatic It's 100% technical.
19:57 dukeleto is there any TT currently to track ordered global destruction in parrot? sounds like we need one.
19:58 cotto_work http://trac.parrot.org/parrot/ticket/607
19:58 cotto_work not much there atm
19:58 luben good evening
19:58 purl Ah, evening. The tumultuous mind tarries and contemplates, reveling in the silence afforded by the diurnal proletariat. Good evening, indeed.
19:59 cotto_work Hi luben.
19:59 TimToady phone
20:00 cotto_work Have you ever had the urge to implement ordered destruction?
20:03 dukeleto cotto_work: i have various urges that involve destruction. order is usually not involved.
20:06 * dukeleto ponders that it would be nice to have a test that fails without global destruction, but can imagine that it is hard to test. But not impossible.
20:10 dalek parrot: r48867 | pmichaud++ | trunk/ext/nqp-rx/src/stage0 (4 files):
20:10 dalek parrot: [nqp] Update bootstrap to eliminate use of CodeString PMC.
20:10 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48867/
20:10 * dukeleto updates TT607 with more info
20:11 * dukeleto ponders that nt/exit.t already shows that global destruction doesn't work, calls it good enough
20:11 theory left #parrot
20:11 dalek nqp-rx: ce60da8 | pmichaud++ | src/cheats/hll-compiler.pir:
20:11 dalek nqp-rx: Temporarily backport PCT::HLLCompiler's 'lineof' method
20:11 dalek nqp-rx: from Parrot r48866 into HLL::Compiler, so that nqp-rx can
20:11 dalek nqp-rx: continue to build from an older Parrot until parrot's trunk
20:11 dalek nqp-rx: is working again.  When we're able to bump PARROT_REVISION,
20:11 dalek nqp-rx: this code can go away to fall back to Parrot's version of
20:11 dalek nqp-rx: 'lineof' (DRY).
20:11 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/c​e60da8d258a8243f3bbf2c266a1970e99a30211
20:11 dalek nqp-rx: bb5d370 | pmichaud++ | src/ (3 files):
20:11 dalek nqp-rx: Switch 'lineof' method calls to use the version of HLL::Compiler instead of CodeString.
20:11 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/b​b5d370de5b43105a774623351eb58e54b465a53
20:11 patspam1 left #parrot
20:11 dalek nqp-rx: d2d100f | pmichaud++ | src/Regex/Cursor.pir:
20:11 dalek nqp-rx: Eliminate CodeString coercion.
20:11 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/d​2d100fa8480eb8a8e5854dae82ce82b8fe00b57
20:11 dalek nqp-rx: 5c1686c | pmichaud++ | src/stage0/ (4 files):
20:11 dalek nqp-rx: Update bootstrap to include lineof changes.
20:11 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/5​c1686c0b12eec062bfbda9c85e07d37f9cd78c9
20:12 patspam joined #parrot
20:12 sorear seen darbelo
20:12 purl darbelo was last seen on #parrot 1 hours, 55 minutes and 9 seconds ago, saying: Having scripts ato commit strikes me as a dangerous thing to do, specially with svn.
20:12 aloha darbelo was last seen in #parrot 1 hours 54 mins ago saying "*auto".
20:13 cotto_work What's hard about ordered destruction?
20:15 chromatic Who sets the order?
20:15 chromatic Where do you set it?
20:15 chromatic What if there's a conflit?
20:15 chromatic How do you start?
20:15 sorear darbelo: ping
20:18 dukeleto chromatic: seems like a datastructure needs to keep track of things from the beginning
20:19 cotto_work Is this something another language has solved?
20:19 * dukeleto notes in passing that if someone wants a CS paper that is behing a paywall, I can help them out.
20:21 dukeleto cotto_work: yes, other languages with garbage collectors have to solve this problem. Who solves it in the best way? No clue.
20:22 dukeleto chromatic: what do you mean "conflict" ? Do you mean circular refs?
20:24 patspam left #parrot
20:27 chromatic Certain types of PMCs depend on other types.
20:27 chromatic For example, any NCI/Sub/Pointer PMC which refers to a symbol loaded from a shared library must be destroyed before the ParrotLibrary which represents that shared library can be destroyed.
20:28 chromatic That's a static dependency we know.
20:28 chromatic There *may* be dynamic dependencies between specific PMCs which imply an order, and we don't know that right now.
20:28 hercynium left #parrot
20:28 dukeleto chromatic: we might be able to leverage the parrot-instrument runcore to figure out what those dynamic deps are
20:29 chromatic I'm not sure that will help; those dependencies might be specific to a program.
20:30 dukeleto chromatic: i see, they change depending on which codepaths are chosen.
20:31 chromatic Right.
20:31 GeJ Bonjour everyone.
20:31 dukeleto chromatic: is there a language that you know of that we should learn from, regarding ordered global destruction ?
20:32 chromatic There may be a Smalltalk/Strongtalk paper about it somewhere.
20:32 chromatic I'm sure the JVM has considered it.
20:32 chromatic You get it for free with reference counting, until you have to break cycles.
20:33 dukeleto chromatic: it seems like each parrot interp needs to build it's own table of dynamic deps iteratively, as execution happens
20:33 chromatic Only if any such deps exist.
20:40 chromatic However, we also need a mechanism to track PMCs (or types of PMCs) which *always* need destruction/finalization even if Parrot doesn't perform global destruction on an interp.
20:40 dukeleto Git summary of parrot.git : http://gist.github.com/570791 # leo++
20:40 davidfetter left #parrot
20:41 dukeleto Coke: you are catching up to leo++, only about 800 commits to go ;)
20:41 Coke dukeleto: does that count dead branches?
20:42 dukeleto Coke: not sure, what do you mean "dead" branch ?
20:43 Coke a branch that was rm'd at HEAD at some point.
20:43 cotto_work or more than I've made since I've been around
20:43 Coke (and therefore not in svn ls ^/branches just this second.)
20:44 dukeleto Coke: that summary only counts what it is parrot.git
20:44 Coke so, no. hokay.
20:44 Coke I suspect that would skew those #'s quite a bit.
20:44 Coke still, nifty!
20:45 ash_ joined #parrot
20:46 whiteknight joined #parrot
20:47 darbelo sorear: pong
20:47 dukeleto Coke: the output is from "git summary" from git-extras. it has lots of other cool toys
20:50 atrodo dukeleto> Wow, not the break down I was expecting
20:50 hercynium joined #parrot
20:52 cotto_work There's a lot of history there.  It'd look less surprising if you took it over the last 24 months (or less).
20:53 chromatic Three years.
20:53 purl hmmm... three years is a long time to fail.
20:53 Coke 3 years? that includes cvs.
20:53 Coke more like 9.
20:54 Coke (unless parrot.git doesn't include r1)
20:56 Andy are we all using ack 1.93_01?
20:56 darbelo I have a 1.92 here.
20:57 dukeleto parrot.git's first commit is from 2001
20:58 sorear darbelo: you were working on eliminating strstart/bufstart, yes?
20:58 darbelo In a way, yes.
20:58 sorear darbelo: and you had it faster for everything except nqp-rx?
20:58 dukeleto parrot.git includes CVS and svn commits
20:59 cotto_work Andy: is your site down?
20:59 cotto_work betterthangrep.com
20:59 Andy not that I know
20:59 darbelo sorear: Yes. NQP uses substr to skip over strings, which mandates shared buffers in order to not become pathologically expensive.
21:00 sorear darbelo: ah, you do know
21:00 Andy bah
21:00 Andy rebooting
21:00 purl i think rebooting is always the first solution
21:01 sorear darbelo: I was going to recommend removing src/PAST/Compiler-Regex.pir 137-153 and dealing with ripple effects and rebenchmarking
21:01 darbelo The streq_at branch was an attempt to move nqp away from substr abuse.
21:01 darbelo But I got sidetracked with school stuff before I could dig in.
21:02 mikehh_ is now known as mikehh
21:02 darbelo I'm not sure I'll be able to do too much soon either since it looks like I'll be getting a job soon.
21:02 mikehh opbots, names
21:02 darbelo ETOOMANYSOONS.
21:02 cotto_work Yay for employed Parrot hackers!
21:02 cotto_work What job?
21:02 purl job is that which one does in order to live or something to make you batshit insane
21:03 cotto_work forget job'
21:03 purl cotto_work, I didn't have anything matching job'
21:03 cotto_work forget job
21:03 purl cotto_work: I forgot job
21:03 darbelo iPhone stuff, of all things.
21:03 darbelo Well, and iPad stuff as well I guess.
21:04 dukeleto darbelo: developing with cocoa or something else?
21:04 cotto_work So you get to wait in anticipation while Apple decides to approve your fate?
21:04 darbelo cotto_work: Yep.
21:04 darbelo dukeleto: iOS development is done with whatever Apple decide you develop with.
21:05 darbelo Upside is, I'll be getting a mac to test parrot on :)
21:05 cotto_work http://joeberkovitz.com/blog/2010/04/0​8/apple-takes-stance-on-consciousness/
21:05 davidfetter joined #parrot
21:11 dalek TT #1777 created by doughera++: Optimized builds on gcc/amd64 broken since r48308
21:11 dalek TT #1777: http://trac.parrot.org/parrot/ticket/1777
21:11 darbelo dukeleto: Oh, if you are looking for ordered detruction testcases TT #956 contains one.
21:13 Andy What would it take to get the purl source and make a new one?
21:13 darbelo We kind of have a 'new one'.
21:13 darbelo aloha: say hi!
21:14 darbelo aloha: aloha?
21:14 purl aloha is, like, nothing but a humid enema-bucketful of malodorous dog balls
21:14 aloha darbelo: I have no idea.
21:15 chromatic r48308 was a complex commit.
21:15 dukeleto darbelo: you are familiar with Cydia, right?
21:15 Coke ETOOMANYSOONGS
21:15 chromatic Wordsize problem?
21:16 dukeleto darbelo: you should take a look at PhoneGap too, if you haven't heard of it. It allows writing cross-platform apps in JS
21:17 dalek parrot: r48868 | nwellnhof++ | trunk/src (2 files):
21:17 dalek parrot: [src] Unbreak Windows build
21:17 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48868/
21:21 darbelo dukeleto: Yeah, I'm vaguely familiar with that.  Still not a solution :)
21:27 Coke left #parrot
21:28 dalek TT #306 closed by nwellnhof++: embedding parrot fails, many symbols not exported properly [win32]
21:28 dalek TT #306: http://trac.parrot.org/parrot/ticket/306
21:32 cotto_work insult botsnack
21:32 purl thanks cotto_work :)
21:32 aloha botsnack is nothing but an antique gob of milk-livered cat bladders.
21:32 purl :)
21:34 darbelo insult purl
21:34 aloha purl is nothing but a toad-spotted thimbleful of horn-beat pond scum.
21:35 darbelo aloha++
21:35 aloha darbelo: Thanks!
21:35 dukeleto parrot.git summary since RELEASE_1_0_0 : http://gist.github.com/570881
21:35 * dukeleto gives NotFound++ a cookie
21:37 NotFound dukeleto: Thanks!
21:39 Coke joined #parrot
21:39 NotFound But I think that if you count the size of the commits the order may change a lot.
21:40 tcurtis left #parrot
21:40 theory joined #parrot
21:41 NotFound whiteknight: you can test HLL maps quickly with winxed, it has a feature for it since a a few weeks ago.
21:42 sorear I wonder if he reads his blog comments.
21:43 NotFound One time I signaled a typo in a comment and he answered quickly.
21:46 darbelo dukeleto: Looks like you need to make that summary case-insensitive. see Whiteknight vs whiteknight and infinoid vs Infinoid in your gist.
21:46 chromatic left #parrot
21:47 jnthn ooc, does Parrot have any abstraction layer in place for operations like atomic compare and swap?
21:48 jnthn I guess it's not so important until there's real threads.
21:48 whiteknight Whiteknight vs whiteknight? I would pay to see that fight
21:48 jnthn Though I expect once there is, they'll be what Rakudo's meta-model-y guts will want.
21:51 NotFound whiteknight: if you want to give a try: namespace Foo [HLL] { ....
21:52 ruoso left #parrot
21:55 whiteknight I think I may actually hate Parrot's Test::More implementation
21:56 cotto_work If you understand it, you're ahead of the curve.
21:56 whiteknight I don't really understand it, and every time I try I'm surprised by new things that make me angry
21:56 whiteknight and today I think I finally passed the threshold of abject hatred
21:58 ash_ left #parrot
21:59 whiteknight I use the setstdout opcode to change the default output handle to a StringHandle. Test::Builder::Output helpfully ignores this and outputs to STDOUT anyway
22:00 whiteknight probably exposes a bug that the ParrotInterpreter.stdhandle() method doesn't play nicely with that dynop library
22:03 ttbot Parrot trunk/ r48867 MSWin32-x86-multi-thread make error http://tt.taptinder.org/file/cmdout/387514.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/ )
22:04 dukeleto darbelo: you are write. it is basically just the output of git-shortlog. it needs to be munged, still
22:04 * dukeleto ponders using levenshtein distances to detect similar commit names
22:04 dukeleto whiteknight: i can try to help fix parrot's Test::More, if that helps at all
22:05 dukeleto darbelo: also, I do know the difference between write and right. Just that my fingers don't.
22:05 whiteknight dukeleto: the biggest frustration is taking almost an hour out of my day to figure out what the problem was
22:06 whiteknight now that we're past that, the damage is done
22:06 dukeleto whiteknight: i feel your pain. sometimes i feel like some yak holes go all the way to China
22:07 dukeleto whiteknight: maybe we should fix Test::Builder::Output
22:07 cotto_work If you squint, this entire migration to git is one giant exercise in yak shaving.
22:07 dukeleto whiteknight: that sounds like a bug
22:07 dukeleto cotto_work: I don't have to squint :)
22:07 whiteknight dukeleto: I don't think it's Test::Builder::Output so much. I need to boil down a failing test case first
22:07 dukeleto cotto_work: i've migrated svn to git a few times, and parrot's is definitely the most involved, because we were so tightly coupled to svn
22:08 dukeleto cotto_work: not that we won't be tightly coupled to git. we just have a lot of dev scripts and docs
22:08 cotto_work btw, what's the purpose of MANIFEST, apart from passing the manifest tests?
22:08 dukeleto cotto_work: to make our lives hell
22:08 dalek parrot-linear-algebra: 9286277 | Whiteknight++ | t/pir-subclass/nummatrix2d.t:
22:08 dalek parrot-linear-algebra: add a stub test for verifying subclass behavior. Test fails because of weirdness elsewhere in the dependency tree.
22:08 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/928627726cb08c447e7510f65abff18f0e65c27b
22:09 dukeleto cotto_work: i have had lengthly conversations with jhelwig about why MANIFEST exists
22:09 cotto_work Is there a reason?
22:09 dalek tracwiki: v4 | nwellnhof++ | Platforms/Windows
22:09 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Plat​forms/Windows?version=4&amp;action=diff
22:10 dukeleto MANIFEST has a reason. But building it manually is *insanity*
22:10 whiteknight cotto_work: just to make me angry, I assume
22:10 jhelwig cotto_work: From my fuzzy memories, it's to help people who forget to $vcs rm/add things when they remove old files, or add new files.
22:11 dukeleto all CPAN modules have a MANIFEST and parrot used to be distributed on CPAN, as well
22:12 Limbic_Region joined #parrot
22:12 cotto_work If that's all, let's drop it.  Adding/removing files doesn't happen that often and we have enough testers to complain when someone forgets.
22:13 dukeleto cotto_work: I am not sure if some of the ports/* stuff needs it. I don't think so, but I am not sure.
22:13 jhelwig IMO, if you're not distributing via CPAN, it's probably got a _very_ high cost/benefit ratio.
22:14 dukeleto cotto_work: you want to email parrot-dev about it? see if anyone has a "OMG you will feel pain if you do that" comment
22:15 cotto_work doing so now
22:17 ash_ joined #parrot
22:18 Coke MANIFEST is theoretically used to insure you got a good tarball.
22:19 cotto_work checksums are nice for that too
22:19 dalek TT #1778 created by nwellnhof++: Charset opcodes are deprecated
22:19 dalek TT #1778: http://trac.parrot.org/parrot/ticket/1778
22:19 Coke yes, but how do you check that from inside the tarball?
22:19 Coke (that is, with "perl Configure.pl && make test")
22:20 cotto_work you assume that the release manager followed procedure and tested the tarball before taking its checksum
22:21 Coke I don't follow. you assume the tarball made it to you unharmed?
22:21 cotto_work You can verify that by taking its sha1sum
22:21 Coke yes, but what do you COMPARE it against?
22:22 cotto_work the checksum mentioned in the release announcement
22:22 Coke the sha1sum the maintainer took. which isn't IN the tarball.
22:22 Coke right. you then have to have 2 bits. Which is fine, and dandy, but something else.
22:22 jhelwig Coke: Just because you have all of the files mentioned in the MANIFEST, how do you know they aren't corrupted?
22:22 Coke jhelwig: you don't. =-)
22:23 jhelwig Which is why the SHA1 of the tarball is much more useful.
22:23 Coke I'm not saying it's good, I'm merely trying to construct an argument for why we might still need it.
22:23 Coke *why one might argue... (not me.)
22:24 dalek parrot: r48869 | luben++ | branches/hash_inlined_func/src/hash.c:
22:25 ash_ left #parrot
22:25 Coke so if you can kill MANIFEST, then you don't need MANIFEST.SKIP, but only MANIFEST.GENERATED
22:25 dalek parrot: fix ambigous code in hash key comparison
22:25 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48869/
22:25 dalek parrot: r48870 | luben++ | branches/hash_inlined_func (30 files):
22:25 dalek parrot: Bring up to date with master
22:25 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48870/
22:25 dalek parrot: r48871 | luben++ | branches/hash_inlined_func/src/hash.c:
22:25 dalek parrot: resolve confilict in parrot_mark_hash functions
22:25 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48871/
22:25 dalek parrot: r48872 | nwellnhof++ | trunk/DEPRECATED.pod:
22:25 dalek parrot: Add deprecation notice for charset opcodes
22:25 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48872/
22:29 cotto_work seen kid51
22:29 purl kid51 was last seen on #parrot 20 hours, 37 minutes and 46 seconds ago, saying: paste 23258 is on Linux/i386 at r48846
22:29 aloha kid51 was last seen in #parrot 20 hours 37 mins ago saying "paste 23258 is on Linux/i386 at r48846".
22:31 cotto_work sent
22:39 dukeleto aloha, msg tcurtis can your gsoc_past_optimization branch be deleted? did your code leave the nest, or are you still working on that branch?
22:39 aloha dukeleto: OK. I'll deliver the message.
22:40 cotto_work His code definitely left the nest.
22:40 cotto_work It's on github now.
22:40 sorear Is Parrot still being pushed to CPAN?
22:40 sorear because if so, we need MANIFEST
22:40 cotto_work istr something about him wanting to get it back into core though
22:40 sorear the (non-Parrot-specific) CPAN toolchain expects to find that file with its current contents
22:41 cotto_work sorear: nope
22:41 dukeleto sorear: no, it isn't being pushed to CPAN
22:41 dukeleto cotto_work: yes, i thought it left the nest
22:42 moritz cpan has parrot-0.0.8.1
22:42 cotto_work It shouldn't.  We made an effort a while ago to get all releases off cpan.
22:42 dukeleto moritz: that must be why people think we never release code ;)
22:42 dukeleto moritz: yes, allison tried to delete a bunch of old Parrot stuff on CPAN, methinks
22:43 dukeleto aloha, msg darbelo it would be nice to get a final blog post out of you about gsoc
22:43 aloha dukeleto: OK. I'll deliver the message.
22:43 cotto_work We release code?  Who knew.
22:44 dalek tracwiki: v10 | nwellnhof++ | ParrotDeprecationsFor2.9
22:44 dalek tracwiki: http://trac.parrot.org/parrot/wiki/ParrotDe​precationsFor2.9?version=10&amp;action=diff
22:44 dalek tracwiki: v13 | nwellnhof++ | ParrotDeprecations
22:44 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Parro​tDeprecations?version=13&amp;action=diff
22:45 dukeleto aloha, msg darbelo what is the status of gsoc_nfg ? does it require deprecations to get merged?
22:45 aloha dukeleto: OK. I'll deliver the message.
22:45 aloha dukeleto: Okay.
22:46 dukeleto alohabug
22:46 dukeleto bacek: ^^^
22:48 * darbelo rematerializes
22:51 darbelo dukeleto: gsoc_nfg is basically done, functionality-wise. But the implementation path I took adds a (very rarely used) pointer to the string header, which is questionable at best.
22:52 dukeleto darbelo: so you are saying that we need to benchmark that change?
22:53 darbelo Not really, I already know it's one pointer more expensive *per string header* even if you don't use NFG.
22:53 dukeleto darbelo: so memory use is the issue
22:54 darbelo That and possibly unnnecessary allocations. Also, NFG strings are effectively COW-less.
22:55 darbelo I wanted to do away with the overhead by doing some refactoring on strings, mainly disabling shared buffers. That's the unshared_buffers branch.
22:55 sorear NQP needs some changes to make that work though
22:56 darbelo Yeah. That degenerated into gc-tuning and compact_pool tweaking, until I noticed that NQP-generated parsers were going pathological.
22:57 darbelo I managed to make a sizable dent on rakudo's build memory usage, but runtime went out the window when I tried it.
22:58 darbelo Both, pmichaud and chromatic had ideas about what we could do to improve that, and that went into the streq_at branch. But I ran out of tuits before I could jump in.
22:58 sorear darbelo: what if I were to give you a NQP branch that doesn't go O(N^2) with unshared buffers?
22:59 darbelo I think that was pmichaud's side of the streq_at stuff. Though I am not sure if it payed off.
23:00 sorear streq_at is something completely different
23:00 sorear it didn't pay off because you missed 2/3 of the problem
23:01 sorear streq_at is only a constant factor improvement
23:01 darbelo Definitely possible. I am not familiar enough with NQP to say for sure.
23:03 darbelo I know streq_at is part of the solution, since it avoids a string header (and a buffer, and a copy, without shared buffers).
23:04 Andy left #parrot
23:04 darbelo But it could be dwarfed by other unfavorably placed substr calls.
23:04 dukeleto did ash's gsoc work get merged? i don't see a branch for it.
23:05 darbelo I think ash worked on a git clone, not an svn branch.
23:05 dukeleto aloha, msg plobsing did ash's gsoc work get merged? i am working on a gsoc blog post, just want to summarize what was accomplished
23:05 aloha dukeleto: OK. I'll deliver the message.
23:06 dukeleto darbelo: happen to know if that was on github or gitorious or somewhere else?
23:07 darbelo github, I think.
23:08 darbelo http://github.com/ashgti/parrot seems to be it.
23:08 dukeleto darbelo: thanks!
23:10 dukeleto it is hard to tell what was accomplished in ashgt's parrot repo. does anybody know anything about it?
23:13 darbelo I'd guess his mentor would :)
23:14 darbelo But I think his gsoc ended up being a two-parter. Part one was a framebuilder and part two was some sort of llvm-uber-experiment.
23:19 dukeleto darbelo: it would be nice if the frame-builder could be committed
23:20 * dukeleto can't believe that livejournal does a flash add popup over page content. Livejournal no longer can be used as blog for GSoC
23:22 cotto_work orly?  I never saw such a monstrosity on jwz's blog, which is the only lj blog I read.
23:24 cotto_work maybe it's one of the times when noscript silently saves me a bit of annoyance
23:26 Paul_the_Greek joined #parrot
23:27 Paul_the_Greek G'day folks.
23:27 cotto_work hio Paul_the_Greek
23:27 Paul_the_Greek Just about to commit the exciting sprintf exponent digit change.
23:28 Paul_the_Greek Is there a way to run the coding standards tests on one file?
23:30 cotto_work You can run one test, but not on one file
23:30 cotto_work afaik
23:30 Paul_the_Greek I just ran codetest. It still complains if there is no documentation for static functions.
23:31 cotto_work I usually run codingstds while I do a final pre-commit review of the patch.
23:31 Paul_the_Greek I wonder if there is a ticket for that?
23:31 Paul_the_Greek We did agree that static functions don't want pod documentation, I think.
23:32 ash_ joined #parrot
23:33 chromatic joined #parrot
23:39 Limbic_Region left #parrot
23:39 ascent left #parrot
23:40 dukeleto cotto_work: i have noscript, but i still see the failed flash thingie, and it dimms the whole page. jwz probably has a paid account, or knows somebody :)
23:40 ascent joined #parrot
23:40 * dukeleto works on a gsoc blog post. Very proud of all my parrot students!
23:40 mikehh Paul_the_Greek: yeah we did, but someone needs to change the tests and until we do I think we need to include the documentation, so that at least we are sure it is there
23:41 Paul_the_Greek Okay, I'll add some for my new function.
23:41 mikehh Paul_the_Greek: and I still think most users of the docs are developers, not users so it does no harm
23:44 mikehh Paul_the_Greek: we could even include a local pod header
23:44 Paul_the_Greek Local pod header?
23:45 cotto_work It's a thing you copy/paste from a file that has one so that perldoc your/file.c looks nicer
23:45 mikehh well a pods header around the static function =items, just for the static functions
23:48 mikehh like =head2 Static Functions followed by =over 4, =cut then the -items - something like that if you want
23:49 Paul_the_Greek Right.
23:49 dalek parrot: r48873 | Paul C. Anagnostopoulos++ | trunk (2 files):
23:49 dalek parrot: sprintf() trims exponents to 2 digits if possible
23:49 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48873/
23:49 theory left #parrot
23:51 shockwave I'm getting an op-not-found error, on a line like so: if_null $P50000000 goto LABEL_2
23:51 shockwave :The opcode 'if_null_p' (if_null<1>) was not found.
23:52 shockwave This is the first time I've used this opcode, so I'm not sure of its syntax.
23:52 shockwave I'm assuming is just like the other if opcode.
23:52 shockwave Any ideas?
23:53 Paul_the_Greek No 'goto'.
23:53 Paul_the_Greek It's if_null reg, label
23:53 cotto_work I think the goto is desugared away.
23:53 Paul_the_Greek Though why would that give you op-not-found?
23:54 cotto_work I guess not then.
23:54 shockwave It was the goto. Thanks.
23:54 Paul_the_Greek Well, then that's inconsistent.
23:55 Paul_the_Greek 'goto' should be allowed.
23:56 Paul_the_Greek cotto_work: When I merge my sleeker_boolean branch, will it just silently ignore the fact that a bunch of files are out of date?
23:57 dukeleto Paul_the_Greek: are you asking about svn?
23:57 Paul_the_Greek Yes.
23:57 dukeleto Paul_the_Greek: when you try to merge, it will tell you that you are out of date and tell you do svn up
23:57 dukeleto Paul_the_Greek: or maybe it does it without asking. /me tries to forget about svn
23:58 Paul_the_Greek I tried that just to see what happens. It just says "At revision xxx," since I match my files in that branch.
23:58 chromatic left #parrot
23:58 theory joined #parrot
23:58 Paul_the_Greek I'll see what happens when I actually try to merge. Never done that. Frightening.
23:59 dukeleto Paul_the_Greek: :) Don't worry, if you set fire to the svn repo, we can just make the conversion to git sooner ;)
23:59 cotto_work not for long
23:59 Paul_the_Greek Happy to help!

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced