Camelia, the Perl 6 bug

IRC log for #parrot, 2009-06-09

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 jonathan OK, that would be my (muchly) favored option.
00:00 pmichaud being able to build against the build tree is very useful, especially when testing new features in Parrot
00:00 pmichaud i.e., I use it alos.
00:00 pmichaud *also
00:00 jonathan Right, I think it's valuable to have the choice.
00:00 pmichaud okay, will hopefully see you tomorrow
00:00 pmichaud (errands here)
00:01 darbelo cotto: I *think* I read somewhere that Singletons were allocated out of the constant PMC pool.
00:01 jonathan Sleep here.
00:01 jonathan night all
00:02 Coke Any chance someone could poke at TT #732?
00:03 cotto darbelo, I can confirm that.
00:04 Infinoid Coke: Won't that go away when we have GCable contexts?
00:04 Coke Infinoid: perhaps. in the mean time, the memory leaks are killing me.
00:05 dalek partcl: r447 | coke++ | trunk/docs/spectest- (2 files):
00:05 dalek partcl: Update spec test with a recent run.
00:05 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=447
00:05 darbelo Then you are probably right about them living on. AFAICT the gc ignores the constant PMC pool.
00:05 Infinoid I just know I've tried and failed to clean up context allocations in the past.  That code has dragons.
00:05 Coke Infinoid: I have an IMCC memory leak that needs love too. you want that one? =-)
00:06 Infinoid I need to pack right now, maybe next week? :)
00:06 Coke thanks for not just coming out and saying no. =-)
00:07 Coke chromatic: started the test now. Ping me in about 2 hours. :|
00:07 cotto darbelo, you're safe.  The constant PMC pool is only swept when Parrot exits.
00:07 cotto Whiteknight, unping
00:08 darbelo So long as users thaw the context before using any decnums we're safe, then.
00:09 cotto Whiteknigh++ for making it less painful to skim through the gc code
00:09 Coke Infinoid: we're not close to getting GC-able contexts, are we?
00:09 darbelo If not, then 'undefined behaviour will occur' and it won't be our problem either.
00:09 Infinoid There's a branch, I think, but parrot keeps flapping away from it
00:10 cotto darbelo, that sounds good.  I'd also recommend some sanity checks in the number PMCs' thaw VTABLE functions, in the interests of failing early.
00:11 Infinoid Coke: Guess there used to be a branch but it was removed.  https://trac.parrot.org/parrot/ticket/596
00:12 cotto Sanity will ensue if users thaw a decContext before they thaw any decNums that depend on that decContext.  Otherwise, Bad Things may happen.
00:13 kid51_at_dinner Infinoid:  I got no speedup in 'make coretest' between trunk and io_rewiring branch.
00:14 kid51_at_dinner trunk @ r39458: 5:22
00:14 kid51_at_dinner branch @ r39460:  5:24
00:15 darbelo Actually, I'd just pmc_new() the context on DecNum's thaw too. If the context was thawed earlier, we get the right one. If the context is thawed after, we allocate it and the DecNumContext thaw() modifies it. We're safe even if you thaw a DecNum with no context.
00:17 Infinoid kid51: That's odd.  coretest went from 7 minutes to 2 here
00:17 Infinoid Which platform?
00:17 purl I'm running on OS/2 on an Atari, can you help?
00:18 * Infinoid watches purl swapping
00:18 darbelo The only catch is: if you want to thaw both a DecNum and a DecNumContext, you have to thaw them both before performing any operations.
00:21 nopaste "infinoid" at 24.182.55.77 pasted "The '000,'-string output benchmark, courtesy of pmichaud" (20 lines) at http://nopaste.snit.ch/16836
00:22 Infinoid kid51: You should also see a ridiculous difference between trunk and branch, for that simple pir benchmark (like, 46 seconds -> 0.7 seconds)
00:24 eternaleye joined #parrot
00:27 kid51 Infinoid:  Linux/i386
00:28 kid51 Infinoid:  I'll try again.
00:28 snarkyboojum joined #parrot
00:29 Zak joined #parrot
00:29 bacek_ joined #parrot
00:30 Infinoid You should definitely see a difference on linux.  I'll re-test here too
00:32 Infinoid If you don't see a difference on linux, you've either got a superfast disk or you're running in a VM that doesn't propagate disk write/flush events
00:34 kid51 This time was faster:  5:06 -- but, of course, there could be a positive side-effect from additional ccache-ing
00:34 kid51 This is a Linode Linux VM.
00:35 kid51 What do you mean by "propagate disk write/flush events"
00:36 Infinoid The speedup was from removing an extra fsync() parrot was doing after every write().  In effect, it was doing the equivalent of the command line "sync" command, for the file, which meant parrot went to sleep waiting for a round-trip to/from disk before resuming execution, every time it wrote
00:36 Infinoid VMs typically don't expose filesystem flushes to the host OS, so you wouldn't see any difference in one
00:37 Infinoid (or at least, it sounds like Linode doesn't)
00:38 kid51 I don't understand much about VMs ... all I know is that for all of *my* purposes my Linode is a box out there in cyberspace somewhere ... even though I know it's a slice of a disk in Dallas or Nashville or somewhere.
00:39 Infinoid Looks like it's a xen instance, and it looks like xen handles fsync()'y things a lot more efficiently than real hardware does.
00:39 Coke since it's all fake anyway, makes sense. =-)
00:40 kid51 make benchmark_tests:  69 seconds in trunk; 67 seconds in io_rewiring branch
00:40 Infinoid Save http://nopaste.snit.ch/16836 as x.pir and try comparing that. :)
00:41 Infinoid That should hit all the other things that Whiteknight++ sped up
00:42 kid51 Should that be called:  ./parrot x.pir   ?
00:42 Infinoid yeah
00:42 Infinoid or time ./parrot x.pir
00:42 Infinoid (to see how long it took)
00:42 kid51 Was it supposed to have generated output?  I got nothing on STDOUT.
00:43 Infinoid It creates a file called test-pir.txt, to benchmark file I/O
00:43 Infinoid or file writes, at least
00:43 kid51 trunk:
00:44 kid51 [li11-226:parrot] 534 $ time ./parrot x.pir
00:44 kid51 real    0m24.128s
00:44 kid51 user    0m11.340s
00:44 kid51 sys     0m0.220s
00:44 Infinoid Your trunk time is quite a bit better than any real hardware I have access to.  Timings on my thinkpad are about twice that
00:44 kid51 Yeah, baby:
00:44 kid51 io_rewiring:
00:44 kid51 [li11-226:io_rewiring] 538 $ time ./parrot x.pir
00:44 kid51 real    0m1.992s
00:44 kid51 user    0m0.780s
00:44 kid51 sys     0m0.010s
00:44 Infinoid There we go.
00:45 Infinoid Funny how in both cases, wallclock time was twice the userspace cpu time
00:45 Infinoid I would have expected that from trunk but not branch
00:46 kid51 Where is the time that is neither user nor sys?
00:46 kid51 real -( user +sys )    ??
00:46 Infinoid yeah.
00:47 Infinoid that's waiting for disk, executing other processes, etc
00:48 kid51 There's considerable variance.  Here's another round -- one even more favorable to branch:
00:48 kid51 [li11-226:parrot] 542 $ time ./parrot x.pir
00:48 kid51 real    0m24.224s
00:48 kid51 user    0m11.730s
00:48 kid51 sys     0m0.250s
00:48 kid51 [li11-226:parrot] 543 $ cd -
00:48 kid51 [li11-226:io_rewiring] 544 $ time ./parrot x.pir
00:48 kid51 real    0m1.651s
00:48 kid51 user    0m0.810s
00:48 kid51 sys     0m0.010s
00:49 Infinoid how much RAM you got in that vm?
00:49 kid51 Tell me how to measure it.
00:49 Infinoid "free"
00:49 kid51 [li11-226:io_rewiring] 545 $ free
00:49 kid51 total       used       free     shared    buffers     cached
00:49 kid51 Mem:        295528     122700     172828          0       1608      22988
00:49 kid51 -/+ buffers/cache:      98104     197424
00:49 kid51 Swap:       263160      54588     208572
00:50 Infinoid hmm.  I suppose there's no telling how loaded the host OS is, but assuming all your memory is real and not being swapped, you should be able to hit disk cache for test-pir.txt, no problem
00:51 Infinoid if you're seeing variance, you probably aren't operating in cache.
00:51 Infinoid which means all bets are off :)
00:52 kid51 Well, I believe ccache is on ... because periodically it fills up the disk!
00:54 Infinoid ccache shouldn't affect runtime performance
00:55 Infinoid oh.  disk cache != ccache
01:03 Coke chromatic, Infinoid: I haven't finished yet, but it certainly /seems/ faster.
01:08 Coke (I may be comparing my 'feel' to 4.5 months ago, though.)
01:08 Whiteknight Coke: I start work on GCable contexts as soon as the cc_rewiring branch lands
01:09 Coke Whiteknight++
01:11 Whiteknight these io branch numbers keep looking better and better
01:13 Coke I wonder how much is attributable to just the fsync() fix.
01:15 chromatic A fair amount of wallclock time, but IO in loops in long-running programs will benefit from far fewer PMCs allocated.
01:15 Whiteknight I dont know. fsync is more expensive then PCCINVOKE, but the later was called more frequently
01:15 Infinoid It's all good.  Making the parrot flap faster
01:16 Coke chromatic, Infinoid, Whiteknight: tcl's spectest took 4045s in trunk, and 4177s in branch; but for some reason the branch passed 2 more tests. I wonder if someone on feather was killing my tests earlier.
01:16 Coke 2 more test /files/
01:16 Coke "2009-06-08 21:36",440,"r39452",57,3275,1791,866,618,4045
01:16 Coke +"2009-06-09 02:04",440,"r39460",59,3547,1933,992,622,4177
01:16 Coke 1st is last run on trunk; second is run on io_rewiring.
01:17 Coke "date","revision","parrot revision","files","test","​pass","fail","skip","time in seconds"
01:17 Whiteknight Coke: I almost can't believe those numbers. There's no way it takes more time in branch that I can find
01:17 Coke Whiteknight: is feather.perl6.nl a virtual machine?
01:17 Infinoid Coke: Yes.
01:17 Whiteknight i have no idea what feather is
01:17 Coke Whiteknight: there you go.
01:17 Coke feather?
01:17 purl feather is http://feather.perl6.nl/ or a perl6 community development server or run by juerd.
01:18 chromatic Looks like the branch passed 142 more tests.
01:18 Coke chromatic: 2 test files passed this time that failed in the run on trunk.
01:18 Whiteknight well, they're about to be passing in trunk too
01:18 Infinoid Whiteknight++
01:19 Coke chromatic: I've had people kill processes on my on feather in the past, and I already threw up the log file from the trunk run earlier.
01:19 chromatic Oh, test files.  I counted something else.
01:19 Coke so it's a little slower, but it did more, and if I had known it was a virtual machine, I'd not have bothered since we now know it's a waste there. =-)
01:19 Coke 59:57, 1933:1791.
01:20 Coke +lsearch.test:  Total   101     Passed  47      Skipped 0       Failed  54
01:20 Coke +lsearch.test:  Total   101     Passed  47      Skipped 0       Failed  54
01:20 Coke +scan.test:     Total   171     Passed  95      Skipped 4       Failed  72
01:20 * Infinoid sees patches of blue sky through the hail
01:21 Whiteknight hold on, I'm getting a t/pmc/undef.t failure in the branch now, a fresh checkout
01:23 Coke chromatic: any suggestions on dealing with all my memory PANICs ?
01:23 Coke (aside from opening tickets like #732)
01:23 chromatic That's the best option I can see.
01:23 Coke (and allocating less PMCs, which I'm trying to do.)
01:23 chromatic You know what makes them easy for me to debug; any help there helps everyone.
01:25 Coke oh; someone here might be able to help with this; right now "4/-3" with tclints gives -1; it should give -2; I presume I can fix this with a strategic vtable override...
01:26 chromatic Tcl has its own math?
01:27 Tene Tcl uses floor() instead of round()
01:28 Coke and integer division stays integer.
01:28 Coke 4/-3.0 NE 4/-3
01:29 Coke (uses floor) - ah. that gives me a clue as to where to put that.
01:30 Coke d-        VTABLE_set_integer_native(INTERP, dest, SELF.get_integer() / d);
01:30 Coke +        VTABLE_set_integer_native(INTERP, dest, floor(SELF.get_integer() / d));
01:31 Coke (i would have guessed that in src/pmc/tclint.pmc, but no love.)
01:31 Whiteknight Infinoid: ping
01:31 Infinoid Whiteknight: yo
01:31 Coke ah. need to do the division as float manually (was forcing it to int before then.)
01:31 Whiteknight infinoid: I'm getting a segfault test failure in the branch now suddenly. t/pmc/undef.t
01:32 Infinoid bt?
01:32 purl bt is pretty cool, as well. or Brian Transeau, one of the foremost electronica artists in the world or Just Another Evil Telco or http://www.btmusic.com or (: british telecom) or http://mp3z.darkuncle.net/electronica/trance/BT/ or "base-T" as in 100bT or BitTorrent or debt without the "de" or bluetooth or (see: pcbt)
01:32 Coke tene++
01:32 Infinoid bt is also backtrace
01:32 purl okay, Infinoid.
01:32 Whiteknight bt is weird
01:32 Whiteknight nopaste?
01:32 purl well, nopaste is at http://nopaste.snit.ch/ (ask TonyC for new channels) or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at http://www.extpaste.com/ or http://paste.scsys.co.uk (for #catalyst, #dbix-class, #moose  and others) or http://gist.github.com/
01:32 clunker3 http://pasta.test-smoke.org/ or http://paste.husk.org/ or http://nopaste.snit.ch:8001/ or http://rafb.net/paste or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/
01:32 Infinoid Whiteknight: It passes here (if that matters)
01:33 nopaste "Whiteknight" at 68.44.174.229 pasted "Segfault for Infinoid" (137 lines) at http://nopaste.snit.ch/16837
01:33 Whiteknight Infinoid: it passed for me until I did a fresh checkout
01:33 Infinoid Aaw, my favorite!  How did you know?  You shouldn't have.
01:34 Infinoid obj=0x21 is very obviously an invalid pointer
01:34 chromatic 0x21, oh yeah.  The little PMC that couldn't.
01:34 Whiteknight yeah, that jumped out at me too
01:34 Whiteknight no idea where it's getting set to that though
01:34 Whiteknight my only thought is that somewhere I borked up the last merger with trunk
01:34 Whiteknight because we definitely didn't do any work in the OO system
01:35 Infinoid Class is trying to mark its _class->parents
01:35 Whiteknight right, and for some reason it is not right
01:37 Infinoid I don't really know what to tell you, except to echo 0 to /proc/sys/kernel/randomize_va_space and try to set a watchpoint on it
01:38 Infinoid You might get lucky with valgrind, or you might not.
01:38 chromatic Did you 'make realclean'?  PBC has changed.
01:38 Infinoid This is a fresh checkout, I think
01:39 Whiteknight yeah, fresh checkout
01:40 Infinoid I'll try a fresh checkout here.  Did you pass any arguments to configure?
01:41 Whiteknight no arguments
01:41 * Infinoid really wants perl Configure.pl -j
01:41 chromatic That would be lovely.
01:42 dalek partcl: r448 | coke++ | trunk/ (2 files):
01:42 dalek partcl: Use floor for integer division, pass a TODO test.
01:42 dalek partcl: Tene++ for the mental jog.
01:42 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=448
01:42 kid51 Here's some more data, this time Darwin PPC:
01:42 kid51 trunk:
01:42 kid51 time ./parrot x.pir
01:42 kid51 real    2m24.749s
01:42 kid51 user    1m20.430s
01:42 kid51 sys     0m3.822s
01:42 kid51 io_rewiring:
01:42 kid51 $ time ./parrot x.pir
01:42 kid51 real    0m6.473s
01:42 kid51 user    0m4.049s
01:42 kid51 sys     0m0.192s
01:43 Infinoid Nice.  I'd love to see your coretest timings, too
01:43 Infinoid (I have no idea how much fsync bogs down darwin)
01:44 Infinoid Whiteknight: Aaw, no crash here in fresh checkout
01:45 Whiteknight so what the hell is wrong with my system?
01:45 Infinoid Your system aligns the planets just right
01:45 Infinoid Whiteknight: What do --gc-debug or --no-gc do?
01:47 Infinoid "./parrot t/pmc/undef.t", "./parrot --no-gc t/pmc/undef.t" and "./parrot --gc-debug t/pmc/undef.t" all pass fine here
01:48 Infinoid I can help you try to set a watchpoint to catch the corruption in action, but it's a time-consuming process
01:48 chromatic Are you both using 64-bits?
01:48 Infinoid yeah.
01:48 Whiteknight I am
01:48 Whiteknight I'm rebuilding
01:48 Infinoid By the way, sizeof(PMC) is 48 on x86-64 linux... that's always bugged me
01:49 chromatic It'd be nice to halve that.
01:49 Whiteknight sans UnionVal, we would get closer
01:50 Infinoid odd, sizeof(PMC) is 28 on x86-32.  I thought these were supposed to be powers of 2
01:52 mugwump how big is a vtable these days?
01:52 chromatic Big.
01:52 chromatic Some 80 pointers.
01:53 chromatic 85 maybe.
01:53 mugwump well, that's down from 144 when I first looked
01:53 Whiteknight I'm still getting the failure here. I think my system is cursed
01:53 mugwump that was gross overhead ... *rimshots*
01:53 bacek_ chromatic: 240+ pointers
01:53 chromatic Yeah, I just looked again.
01:54 Infinoid Whiteknight: Reproducable means debuggable
01:54 Coke does parrot provide the PID of the running instance?
01:55 Whiteknight Infinoid: I know, but I'm running out of time before I'm going to sleep
01:55 Infinoid Whiteknight: How long do you have?  If you have at least 10 minutes, we can at least try it
01:56 Infinoid If not, it'll probably crash tomorrow too :)
01:56 Whiteknight I have 5 minutes before I'm heading to bed
01:57 Infinoid Great, echo 0 to /proc/sys/kernel/randomize_va_space and get the crash in gdb
01:57 Infinoid Then set a breakpoint in Parrot_Class_init if pmc == (the value of your Class PMC pointer)
01:57 Infinoid Then re-run parrot and set a watchpoint on _class->parent
01:58 Infinoid With any luck, that won't have a huge lifetime
02:00 Infinoid If it takes too long, I'd just come back to it tomorrow... though I think this heisenbug has popped up a few times and eluded us so far
02:01 Whiteknight weird, it's telling me that Parrot_Class_init isn't defined
02:01 Whiteknight my whole system is retarded. this is a tomorrow-project
02:01 Infinoid it needs to run once to load libparrot.so's symbols
02:01 Infinoid No problem, sleep well
02:02 Whiteknight goodnight
02:04 chromatic A modern gdb should offer to apply the breakpoint on the appropriate library load.
02:05 dalek partcl: r449 | coke++ | trunk/runtime/builtin/pid.pir:
02:05 dalek partcl: Return a numeric stub value instead of an empty string.
02:05 Coke feedback: worth running a tcl spec test file that only passes one test?
02:06 dalek partcl: (socket.test in the spec test suite tries to do math on the result.)
02:06 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=449
02:06 dalek partcl: r450 | coke++ | wiki/SpecTestStatus.wiki:
02:06 dalek partcl: with [pid] stub fix, all tests skipped instead of failing.
02:06 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=450
02:06 kid51 make coretest on Darwin PPC:
02:06 kid51 trunk:
02:06 snarkyboojum joined #parrot
02:07 kid51 real    10m29.536s
02:07 kid51 user    4m39.691s
02:07 kid51 sys     2m51.736s
02:07 kid51 io_rewiring:
02:07 kid51 real    9m50.837s
02:07 kid51 user    4m32.295s
02:07 kid51 sys     2m48.847s
02:07 kid51 Not as much difference there as on x.pir
02:09 Infinoid That's on real hardware?
02:09 chromatic CPU bound, I assume.
02:11 Infinoid Still more difference than he was getting on xen
02:11 Infinoid I'll take what I can get :)
02:15 kid51 It's on a 5-y-o iBook
02:15 * kid51 must sleep
02:15 purl $kid51->sleep(8 * 3600);
02:20 dalek partcl: r451 | coke++ | wiki/SpecTestStatus.wiki:
02:20 dalek partcl: Skip the http tests; fixup init.
02:20 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=451
02:20 dalek partcl: r452 | coke++ | trunk/runtime/builtin/interp.pir:
02:20 dalek partcl: [interp create] shouldn't die; make it do nothing for now.
02:20 dalek partcl: This gets us at least 4 more spec tests
02:20 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=452
02:25 dalek partcl: r453 | coke++ | trunk/library/safe.tcl:
02:25 dalek partcl: add safe.tcl from the 8.5.6 tcl release.
02:25 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=453
02:29 dalek partcl: r454 | coke++ | wiki/SpecTestStatus.wiki:
02:29 dalek partcl: added a library file, new error
02:29 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=454
02:30 dalek partcl: r455 | coke++ | wiki/SpecTestStatus.wiki:
02:30 dalek partcl: fix wiki markup typo
02:30 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=455
02:35 janus joined #parrot
02:43 Coke unicode question:
02:43 purl unicode question: is 'Sx{f6}ll' the same as Söll?
02:43 Coke $S1 = unicode:"abcd\udead"
02:43 Coke should that be value?
02:44 Coke "valid"?
02:53 dalek partcl: r456 | coke++ | wiki/SpecTestStatus.wiki:
02:53 dalek partcl: note the source of the failure.
02:53 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=456
02:56 cotto joined #parrot
02:58 dalek partcl: r457 | coke++ | wiki/SpecTestStatus.wiki:
02:58 dalek partcl: we have unknown, fix wiki error,
02:58 dalek partcl: throw into the bucket of "i don't know what's wrong"
02:58 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=457
02:59 Coke :q
03:04 GeJ Good night Coke
03:08 Alias joined #parrot
03:09 Coke ww.
03:09 Alias ww?
03:09 purl ww is probably wrong window
03:10 cotto ww is also 2/3 of www
03:10 purl okay, cotto.
03:10 cotto no need to thank me
03:12 * Coke wonders if alias can answer his unicode question.
03:12 Alias I seriously doubt it :)
03:13 * Coke is trying to get tcl's udead to generate a valid string in parrot.
03:13 * Alias just turned up to keep an eye on any conversations on packaging formats and CPAN6
03:20 kesselhaus joined #parrot
03:20 donaldh joined #parrot
03:20 chromatic Coke, yes.
03:24 Coke chromatic: I can't seem to make a string there. composing a msg to parrot-dev, but if you can show me how to create a string in parrot with that codepoint...
03:24 tetragon joined #parrot
03:24 Alias chromatic: BTW, nice comeback in http://www.modernperlbooks.com/mt/2009/06/who-ge​ts-to-criticize-your-free-software-project.html
03:25 Coke $S1 = utf16:unicode:"abcd\udead" - Illegal escape sequence in uxxx escape - too short
03:25 Alias chromatic: Of course, some of the underlying ideas are still a bit nuts
03:25 Alias (Removing the dual-life modules that are needed to bootstrap CPAN)
03:25 Coke $S1 = utf8:unicode:"abcd\udead" - Malformed UTF-8 string (also the default of unicode:)
03:26 Alias chromatic: Also, the dependency graph you want already exists. Take a look at some of the code in CPANTS::Weight
03:26 Coke $S1 = ucs2:unicode:"abcd\udead" - unimpl ucs2
03:26 Alias (Although I've never needed an outright first class Graph.pm graph, but exporting to that wouldn't be hard)
03:30 chromatic With *that* codepoint?  Do you have ICU?
03:32 chromatic I never suggested removing bootstrap modules.  Someone claimed I did; it's a strawman.
03:32 Coke chromatic: ~/bird/bin/parrot_config revision slash has_icu
03:32 Coke 39460/1
03:32 purl 39460
03:33 chromatic You should have it then.
03:33 Coke icu 3.4.1
03:34 snarkyboojum joined #parrot
03:35 chromatic src/string/encoding/ucs2.c is mostly unimplemented.
03:36 Coke I shouldn't need ucs2 for this, though, neh?
03:36 Coke (I was just checking various encodings to see fi I had better luck.)
03:39 Andy joined #parrot
03:42 Eevee joined #parrot
03:46 Coke hey, c?
03:46 purl c is for cookie, and it's good enough for you.
03:48 Andy purl, c is also chromatic
03:48 purl okay, Andy.
03:54 Coke (I just mailed the list)
03:57 chromatic Thanks.
03:57 Coke of course, I just found that I'm not doing raw strings, but using chr.
03:58 chromatic Talk to the bear!
03:58 Coke (should still work)
04:00 Coke (20 partcl spec tests failing due to memory panic)
04:04 chromatic Hm, get_byte() almost certainly does the wrong thing in UCS-2.
04:05 chromatic At least the name is wrong.
04:47 chromatic Parrot_str_unescape() looks like it should call u_unescapeAt if we have ICU and are working with a UCS-2 STRING.
04:49 dalek partcl: r458 | coke++ | trunk/runtime/builtin/lset.pir:
04:49 dalek partcl: [lset] should only convert its argument to a list Obj if it's successful.
04:49 dalek partcl: pass lsetComp.test 100%
04:49 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=458
04:49 dalek partcl: r459 | coke++ | wiki/SpecTestStatus.wiki:
04:49 dalek partcl: This test passes now.
04:49 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=459
04:53 dalek parrot: r39461 | petdance++ | trunk (2 files):
04:53 dalek parrot: adding some consts, and ornamenting some parms for the headerizer
04:53 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39461/
04:55 cotto joined #parrot
05:04 Coke mark biggar?
05:04 Coke biggar?
05:07 flh joined #parrot
05:12 eternaleye joined #parrot
05:27 eternaleye joined #parrot
05:32 tetragon joined #parrot
06:00 chromatic ./src/pmc/bignum.pmc:483: warning: ‘bn’ may be used uninitialized in this function
06:00 chromatic That looks bad.
06:07 uniejo joined #parrot
06:14 Coke OOC, how long does it take to run the spectest for rakudo?
06:21 Alias sorry, meeting
06:21 Alias chromatic: You said "all"... I took that at face value
06:21 Alias Well, more accurately
06:21 Alias "Remove dual-lived modules from the core."
06:22 Alias Still without nuance or caveat
06:23 Alias You did mention it once back at the very beginning towards the bottom of the first ever mention
06:23 Alias But that's been lost on anyone who joined the conversation since
06:33 viklund_ joined #parrot
06:35 dalek partcl: r460 | coke++ | trunk/docs/spectest- (2 files):
06:35 dalek partcl: update spectest numbers
06:35 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=460
07:07 chromatic I updated that post to clarify, Alias.  Thanks for the suggestion.
07:09 Tene Coke: like 20 minutes or something, I think.
07:21 donaldh joined #parrot
07:23 dalek parrot: r39462 | cotto++ | branches/pmc_pct/compilers/pmcc (2 files):
07:23 dalek parrot: [pmcc] move vtable dump reading code into pmcc.pir, which is a much better place than in the actions
07:23 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39462/
07:23 dalek parrot: r39463 | cotto++ | branches/pmc_pct/config/gen/makefiles/pmcc.in:
07:23 dalek parrot: [makefile] add a generated file to pmcc's make clean and reorder existing files
07:23 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39463/
07:41 Zak joined #parrot
07:58 chromatic This should scare you.
07:59 dalek parrot: r39464 | chromatic++ | trunk/compilers/imcc/reg_alloc.c:
07:59 dalek parrot: [IMCC] Plugged a memory leak in the register allocator when counting the number
07:59 dalek parrot: of necessary typed registers.  Though this code is still algorithmically
07:59 dalek parrot: terrible, I managed to knock one at least one exponent off of it, making it run
07:59 dalek parrot: slightly faster (especially for complex compilation units) and leak less
07:59 dalek parrot: memory.
07:59 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39464/
08:02 clinton joined #parrot
08:03 dalek parrot: r39465 | chromatic++ | trunk/src/ops/io.ops:
08:03 dalek parrot: [ops] Replaced expensive Parrot_sprintf_c() call in print_p_i op with a call to
08:03 dalek parrot: the equivalent (and cheaper) Parrot_str_from_int() function.
08:03 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39465/
08:05 cotto It's nice that candidates for that optimization are marked by INTVAL_FMT.
08:05 chromatic Very easy to find.
08:08 tetragon joined #parrot
08:17 payload joined #parrot
08:24 chromatic Hm, that cleaned up a lot of Rakudo's leaking too.
08:26 dalek parrot: r39466 | chromatic++ | trunk/src/pmc/coroutine.pmc:
08:26 dalek parrot: [PMC] Plugged a memory leak in the Coroutine PMC, where it didn't set a
08:26 dalek parrot: reference to the allocated context.  Parrot_free_context() doesn't recycle
08:26 dalek parrot: contexts if their ref counts are negative to avoid crashes, but this meant that
08:26 dalek parrot: when it was time to recycle this context, it didn't get reclaimed.
08:26 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39466/
08:29 barney joined #parrot
08:35 payload joined #parrot
08:35 cotto a class of bugs soon to be eliminated
08:36 chromatic We still leak contexts, but I think I've plugged another IMCC leak.
08:42 dalek parrot: r39467 | cotto++ | branches/pmc_pct/compilers/pmcc (5 files):
08:42 dalek parrot: [pmcc] store vtable info as a member of the emitter and don't generate VTABLE function prototypes in the header, plus a few minor fixes
08:42 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39467/
08:43 Alias chromatic: BTW, I had a discussion with Larry a couple of years back about modules and Perl 6
08:43 chromatic Me too!
08:43 Alias chromatic: I believe the idea was to define the modules in "layers"
08:43 Alias So Layer 1 are the modules you need to load modules
08:43 Alias Layer 2 are the modules you need build modules
08:43 Alias Layer 3 are the modules you need to run a CPAN client
08:43 chromatic That sounds right.
08:43 Alias Layer 4 is the CPAN...
08:44 Alias And then you define a "Standard Library" over the top of that, and require it for distribution certification
08:45 chromatic I have the impression that @Larry[0] isn't sure about a "Standard Library" on top of that.
08:45 Alias Right, that last bit is mostly me :)
08:45 chromatic Certainly all(@Larry) isn't.
08:45 dalek parrot: r39468 | chromatic++ | trunk/compilers/imcc (2 files):
08:45 dalek parrot: [IMCC] Plugged a memory leak of the C strings used to keep track of the names
08:45 dalek parrot: of named parameters.
08:45 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39468/
08:46 tetragon joined #parrot
08:46 Alias I have some plans for Chocolate (now probably to be called "Strawberry Professional" due to inevitable brand inertia)
08:46 chromatic I think that's the way to go.
08:46 Alias They come pretty close to being a "Standard Library (Desktop)"
08:47 chromatic You have quarterly releases, right?
08:47 chromatic Or is it biannual?
08:48 Alias quarterly
08:48 chromatic Do you have magic powers?
08:48 Alias Lest I be used as part of an argument I disagree with in future, I'd like to note that the ONLY reason I can pull that off is that I don't actually create any functionality. I just package up whatever is already release by other people :)
08:49 Alias Half my releases contain no new Strawberry features, just updated CPAN modules and tiny config tweaks
08:49 Alias The quarterly release is as much a marketing tool as anything
08:49 chromatic Sort of like p5p does for dual-lived modules.
08:50 Alias It makes me look more magic than I am
08:50 chromatic Sure, it makes your project look alive and well-maintained.
08:50 Alias And it reminds me to update my three-page website with something new so I don't look stale
08:50 Alias right
08:51 chromatic That tends to attract contributions.
08:51 Alias Not really
08:51 Alias For for me at least
08:51 Alias I've had one contributor in 2 years
08:51 Alias But then I'm just a packager
08:51 chromatic Don't you get bug reports?
08:52 Alias Mostly wrong ones
08:52 Alias But sure, I get a handful
08:52 chromatic I define "contribution" more broadly than you might expect.
08:52 dalek parrot: r39469 | chromatic++ | trunk/compilers/imcc (2 files):
08:52 dalek parrot: [IMCC] Plugged a memory leak of lexical variable names used with the .lex
08:52 dalek parrot: directive.
08:52 purl i think directive is divisible by 2, hence it is not prime.
08:52 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39469/
08:52 dalek parrot: r39470 | barney++ | trunk/tools/dev/fetch_languages.pl:
08:52 dalek parrot: [tools] Put 'languages' into a variable.
08:52 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39470/
08:52 Alias I guess I define contributor more tightly than contribution
08:52 Alias Non-symmetrically
08:53 Alias Anyways
08:53 chromatic I see no reason to, but as long as we know the other person doesn't speak English, we can still commuincate.
08:53 Alias Indeed (Re: "stable")
08:54 chromatic And look, I'm fixing memory leaks right now.
08:54 chromatic Releases get downloaded.
08:54 chromatic People use them.
08:54 Alias Sure thing :)
08:54 chromatic People report bugs.
08:54 chromatic I can fix reported bugs.
08:55 chromatic We make a new release, people get bugfixes.
08:55 chromatic It's a virtuous cycle.
08:55 Alias Do you have any leak tests?
08:55 Alias (... now?)
08:55 chromatic Not really.  They're difficult to write reliably.
08:56 Alias Have you seen the SQLite test suite?
08:56 chromatic I haven't.
08:56 Alias They've been particularly hardcore about testing
08:56 Alias They claim 45million lines of test code
08:56 chromatic How much of that is fixture data?
08:57 Alias No idea
08:57 Alias And it's in a hodge-podge of languages, some of which I assume are auto-converted to others
08:57 Alias And the count may include the entire codebase of TCL
08:57 Alias Hard to say
08:57 masak joined #parrot
08:58 Alias But they are probably a good project to investigate for clues
08:58 chromatic We could set up a target to run selected known-good tests through Valgrind, but it'd take hours to get decent coverage.
08:58 Alias I do this now...
08:58 chromatic We could play tricks with a debugging malloc and ld.so and get answers faster perhaps.
08:59 chromatic ... but that doesn't give good diagnostics.
08:59 Alias The fuzz test for PPI runs for several orders of magnitude longer under AUTOMATED_TESTING
08:59 Alias Just make the tests run a really cut down version of themselves except under RELEASE_TESTING or something
08:59 cotto It'll get more feasible as we decrease the amount of C in the codebase.
08:59 Alias The tests you do before release that consume 20 hours of CPU
09:00 chromatic I don't want tests that consume 20 hours of CPU.
09:00 Alias TBH, that demo case I posted to the bug tracker was almost identical to my problem case
09:00 Alias Then you run it for 5 hours across 4 cpus
09:01 Alias Again, take a look at how SQLite does it
09:01 chromatic If we had a compilation farm that could give us results in 60 minutes, maybe.
09:01 Alias The ramp up the testing standards as it moves closer to a release
09:02 Alias The final hardcore heavy tests never get run except on the final validation run for a prod release
09:02 Alias Strawberry does something similar, it always runs all tests on all variations, from scratch
09:02 Alias Building a strawberry release takes 10-25 hours
09:02 Alias But I only do it once or twice a quarter
09:03 Alias 10-15
09:03 purl -5
09:03 chromatic I want to be able to build a release in an hour.
09:03 chromatic That's my constraint.
09:03 Alias Even if it prevents certain types of testing?
09:05 chromatic It doesn't prevent them.
09:05 chromatic I don't want that process overhead getting in the way of producing releases.
09:08 chromatic Barring the occasional obsessive nut like you or me, I find that people avoid work that's tedious, difficult, time-consuming, or involved.
09:09 Alias It doesn't have to get "in the way"
09:10 Alias There's nothing to stop you rolling a release without running through full QA
09:10 Alias It's just that you'd want to provide certainty once people start relying on you
09:11 Alias How do I know that parrot will ever run my program (which takes longer than an hour) if the parrot development process itself never runs anything longer
09:11 Alias And yes, eventually this results in diminishing returns
09:12 chromatic That's just it.  I don't believe we can provide that certainty.
09:12 Alias Then parrot is just an academic exercise
09:13 chromatic At some point all of our stochastic testing is insufficient.
09:13 Alias Testing is not a matter of absolutes
09:13 chromatic Yes, that's what I'm saying.
09:14 chromatic I believe it's infeasible to test Parrot to the degree that we can offer certainty for anything other than a few specific use cases.
09:14 Alias If testing can consume between 1 second and 1 year of CPU to validate the safety of a release, why pick one hour as the limit
09:15 Alias You're going to need to test to the standards of the uses to which you advocate Parrot being adopted for
09:15 chromatic Nothing succeeds like success.
09:15 chromatic Nothing tests your use cases like your use cases.
09:16 Alias Except tests...
09:16 chromatic If only users could contribute bug reports and test cases....
09:17 Alias What happens when you hit an hour
09:17 Alias Will you reject test cases?
09:17 chromatic We find a way to speed them up.
09:17 Alias And if you can't?
09:18 chromatic We reevaluate the value of the slow tests.
09:18 Alias Speed suffers from diminishing returns, testing increases incrementally
09:18 chromatic That's why the coding standards tests don't run by default now.
09:18 Alias Do you run them before releasing?
09:18 chromatic Yes.
09:19 Alias But you'll stop once the incremental additional time goes over an hour?
09:19 chromatic I'll consider it.
09:19 chromatic We may move to a weekly report or a compile farm or something similar.
09:20 chromatic If it costs us two minutes to discover that a piece of Perl 5 code uses a bareword filehandle in violation of a Perl::Critic policy, I can argue that we have better tests for those 120 CPU seconds.
09:21 Alias Sure, but what if that test is watching for leaks
09:21 Alias Or something less obviously secondary
09:21 chromatic If we have tests watching for leaks, I don't want to run them only right before a release.
09:22 chromatic Anyone who messes with memory management a day or two before a release gets a handslap.
09:22 Alias That seems in conflict with the hour thing
09:23 Alias You know as well as I nobody ever thinks that are impacting something important when they do the minor commit that breaks something they didn't expect
09:23 chromatic Sure, I broke Rakudo in 0.9.0 fixing a coding standards test.
09:23 chromatic That's why there's an 0.9.0.1 on the CPAN.
09:23 chromatic It didn't take an hour to release that.
09:24 Alias That only has to happen a few times before it gets embarrasing
09:24 Alias And people start asking why they should bother downloading instead of just waiting a few days to make sure you didn't release a broken version
09:24 chromatic Sure, that's why we have a documented release process.
09:25 Alias What does that mean?
09:25 purl You're a nut! You're crazy in the coconut!
09:25 chromatic That means that I can point you to the appropriate documentation and you can make a release any time you want.
09:26 chromatic You know exactly what it takes and you know how to ensure that the release is of appropriate quality.
09:26 Alias And that will say the same thing as you just said?
09:26 Alias That you don't have to run all the tests before releasing?
09:27 chromatic That's not what I said.
09:28 Alias So you do run all tests, even the heavy tests, even if they take longer than an hour?
09:28 chromatic They don't take an hour.  Yet.
09:28 dalek parrot: r39471 | cotto++ | branches/pmc_pct/compilers/vtdumper (5 files):
09:28 dalek parrot: [vtdumper] s/argument/parameter/ and add some methods to make this code similar to what pmcc expects from vtable_info
09:29 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39471/
09:29 Alias Clearly, I've never gotten a Perl 6 script running for more than a minute in any case
09:30 chromatic Perhaps you're thinking of the Rakudo test suite, which is a separate discussion on a separate channel.
09:30 Alias I'm aware
09:30 Alias What's the longest any parrot process has run for?
09:31 chromatic I don't know.  Jeff Horwitz might be the person to ask.
09:31 chromatic I don't know how often some of the IRC bots reset either.
09:37 chromatic I suspect what you're getting at is what I would call "exploratory testing".
09:38 chromatic It's valuable, but I'm not going to make it part of the release process (as far as my opinion matters).
09:38 chromatic We can isolate bugs through good exploratory testing and create tests for them as part of our automated testing, which is part of the release process as well as the development process.
09:39 chromatic This is, in fact, the most effective way I know to develop software.
10:00 mj41 joined #parrot
10:12 payload joined #parrot
10:13 gaz joined #parrot
10:33 payload joined #parrot
10:37 dalek rakudo: fa4198c | masak++ | src/builtins/io.pir:
10:37 dalek rakudo: [src/builtins/io.pir] removed 'prompt' undef warning
10:37 dalek rakudo: When ^D is pressed in a 'prompt' call, a non-optional undef warning
10:37 dalek rakudo: was issued. Fixed this.
10:37 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​a4198c91810000771313e6659d87e8f918d64e1
10:53 payload joined #parrot
10:56 payload1 joined #parrot
11:11 payload joined #parrot
11:23 donaldh joined #parrot
11:56 ruoso joined #parrot
12:12 bacek joined #parrot
12:21 payload joined #parrot
12:46 Steve_H joined #parrot
13:20 gryphon joined #parrot
13:48 sekimura joined #parrot
13:49 Whiteknight joined #parrot
13:50 sekimura_ joined #parrot
13:50 uniejo joined #parrot
13:52 sekimura joined #parrot
13:56 sekimura joined #parrot
14:00 sekimura joined #parrot
14:02 sekimura joined #parrot
14:06 Steve_H_ joined #parrot
14:18 dalek TT #748 created by coke++: memory leak in IMCC
14:34 dalek partcl: r461 | coke++ | wiki/MemoryLeaks.wiki:
14:34 dalek partcl: Created wiki page through web user interface.
14:34 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=461
14:35 whoppix joined #parrot
14:39 dalek partcl: r462 | coke++ | wiki/MemoryLeaks.wiki:
14:39 dalek partcl: add a recent run.
14:39 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=462
14:40 snarkyboojum joined #parrot
14:47 mberends joined #parrot
14:49 kj joined #parrot
14:53 dalek partcl: r463 | coke++ | wiki/MemoryLeaks.wiki:
14:53 dalek partcl: The web site doesn't seem to like rendering this in the wiki. Will move it
14:53 dalek partcl: to docs.
14:53 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=463
14:53 snarkyboojum joined #parrot
14:59 Theory joined #parrot
15:08 dalek parrot: r39472 | whiteknight++ | trunk (81 files):
15:08 dalek parrot: [io_rewiring] Merge the io_rewiring branch into trunk.
15:08 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39472/
15:10 kj joined #parrot
15:20 donaldh joined #parrot
15:22 viklund_ joined #parrot
15:22 bacek joined #parrot
15:28 dalek parrot: r39473 | whiteknight++ | trunk/NEWS:
15:28 dalek parrot: [NEWS] Create the new NEWS section for 1.3.0, and add some information about the IO refactors
15:28 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39473/
15:35 jhorwitz joined #parrot
15:38 Whiteknight purl msg infinoid that error last night magically went away again. I did a fresh checkout of trunk and merged in the branch and the error was just gone. So, I merged branch into trunk and cross my fingers
15:38 purl Message for infinoid stored.
15:47 jhorwitz pmichaud: where do we stand w/ interpolated namespaces?  just tried on the latest rakudo and got no love.
15:47 pmichaud last time I talked to the guy in charge (me), it still wasn't done.  I think various forms of physical pain may be in order.
15:48 japhb joined #parrot
15:48 pmichaud although there _have_ been lots of type-related changes that have gone in that continually make me revise how it might work.  Another set is going in today :-|
15:48 * jhorwitz will bring a wet noodle to YAPC
15:49 pmichaud good idea.
15:49 purl pmichaud: Good Idea: Feeding stray kittens in the park. Bad Idea: Feeding stray kittens in the park to a bear.
15:51 jonathan Better than the bear eating you...
15:51 jonathan pmichaud: What type related changes are going in today?
15:51 pmichaud fulltypename --> typename
15:51 pmichaud (assuming you did get to it today -- no real rush.)
15:51 jonathan oh, you decided to do that one?
15:51 jonathan Oh, you're assuming I'm doing it :-)
15:52 pmichaud (just another example of a change that would affect namespace interpolation)
15:52 jonathan It would?
15:52 pmichaud slightly
15:52 pmichaud the parse gets affected a bit.
15:52 jonathan Ah, I didn't mean to give the impression I was going to do it today but if it's helpful to you if I do...
15:52 pmichaud oh.  It's not at all critical.
15:52 jonathan (Was more working on fixing meta-class methods up.)
15:52 pmichaud meta-class ++
15:53 pmichaud anyway, it's an easy change when we get to it.
15:53 jonathan Yes, I'd figured that, and figured I'd do it if a need came up. :-)
15:58 Andy joined #parrot
15:59 zostay joined #parrot
16:02 DanielC joined #parrot
16:16 DanielC Hi. Can you use numbers in a function name? e.g.   .sub 'fletcher32'
16:16 DanielC I just started learning PIR. I'm roughly at the hello-world level.
16:17 NotFound joined #parrot
16:22 kj DanielC: yes, as long as the name starts with an alpha character
16:22 DanielC thanks
16:22 kj also, if you use a quoted string, i think it can even start with a number
16:22 kj easy to check out :-)
16:22 NotFound joined #parrot
16:23 NotFound hi
16:28 Psyche^ joined #parrot
16:32 payload joined #parrot
16:39 NotFound Debian amd64 all test pass. Good news, or someone deactivated the test that failed on 64?
16:47 mj41 seems like merging io fixed these http://tt.ro.vutbr.cz/report/pr-Parrot/do?tr​un-3856=on&trun-3857=on&trun-3851=on​&trun-3854=on&trun-3830=on&trun-​3834=on&trun-3831=on&trun-3835=on
16:48 darbelo joined #parrot
16:49 NotFound Good :)
16:51 mj41 but t/dynoplibs/myops.t is weird one
16:52 NotFound Is passing here
16:57 mj41 yes, but can start failing tomorrow, http://tt.ro.vutbr.cz/report/pr-Parr​ot/do?trun-1831=on&trun-1839=on
17:03 Whiteknight what test was failing on debian x674?
17:03 Whiteknight x64?
17:03 purl x64 is VS Professional and higher
17:06 masak joined #parrot
17:07 NotFound Whiteknight: the dynop alarm test failed for me all times I tried in the last months, for example
17:07 viklund_ joined #parrot
17:07 Whiteknight hmmm, that's weird
17:08 NotFound Not only in debian, in several linux 64
17:08 NotFound Now I have a new machine, I hope I can put sone eye on that.
17:09 * jonathan wishes he could smack whoever decided that MultiSub in Parrot should inherit from ResizablePMCArray.
17:09 Tene purl: parrotsketch?
17:09 purl parrotsketch is a status meeting for parrot core committers held every Tuesday at 18:30 UTC in #parrotsketch
17:10 Tene Tue Jun  9 17:10:18 UTC 2009
17:10 Whiteknight MultiSub inherits from RPA? For serious?
17:10 NotFound Users, Take Care ?
17:10 jonathan Whiteknight: Yes for serious.
17:11 coke_ joined #parrot
17:11 Tene Coke: you asked about spectest speed last night.  I just ran a rakudo spectest.  'time' reports 19m8.301s
17:11 Whiteknight that's a ridiculous abuse of inheritance.
17:11 CokeZero Tene: danke.
17:11 Tene CokeZero: why?
17:12 CokeZero because it takes an insane amount of time to run partcl's.
17:12 Theory joined #parrot
17:12 jonathan Whiteknight: Damm right it is.
17:12 Tene ah
17:12 Whiteknight I merged in the IO branch this morning, so times *should* be down for most things
17:12 CokeZero http://code.google.com/p/partcl/source/​browse/trunk/docs/spectest-progress.csv (last run took 4187s)
17:12 CokeZero 4187 / 60 ?
17:12 CokeZero purl, 4187 / 60 ?
17:12 purl cokezero: no idea
17:12 CokeZero 4187 / 60
17:12 purl 69.7833333333333
17:13 Tene Nice.
17:13 CokeZero we've gotten a lot faster since parrot 0.8.1, but still.
17:14 masak Tene: do you think the new HLL is Rakudo might be why Rakudo suddenly doesn't return with 1 as the exit code on 'exit 1'?
17:14 Tene Whiteknight: what's next on your master plan after this IO branch?
17:14 masak s/is/in/
17:14 Tene masak: I'd be very surprised.
17:15 CokeZero masak: I doubt it.
17:15 Whiteknight Tene: More IO cleanups mostly. Once the pcc_rewiring branch lands (if ever) I'm on to GCable Contexts
17:15 Whiteknight Otherwise, AIO after 1.3.0 comes out
17:15 CokeZero tcl also used to exit properly but no longer does.
17:16 CokeZero anyone here using ICU with strawberry perl?
17:17 CokeZero (I just grabbed a newish ICU for win32, it doesn't come with icu-config)
17:18 CokeZero oooh. chromatic's recent memory leak fixes were big.
17:19 masak Tene, CokeZero: ok, these are my observations: line 310 in perl6.pir in Rakudo, 'exit 1', quits Rakudo with exit code 0. line 125 in examples/pir/uniq.pir in Parrot, 'exit 1', quits with exit code 1.
17:19 masak which hypothesis could explain that?
17:19 CokeZero masak: rakudo has a top level exception handler.
17:19 CokeZero to catch "everything but exit exceptions"
17:19 Tene masak: try disabling the EH
17:19 masak Tene: sure, how?
17:19 purl sure, how are you going to enforce this on the tcp level?
17:20 Tene masak: comment out lines 207 and 209 in perl6.pir
17:20 CokeZero msg chromatic - at least one of the files that was running out of memory on feather just completed with your recent memory leak plugs.
17:20 purl Message for chromatic stored.
17:21 masak Tene: ok.
17:21 CokeZero parrotsketch?
17:21 purl rumour has it parrotsketch is a status meeting for parrot core committers held every Tuesday at 18:30 UTC in #parrotsketch
17:21 CokeZero clock?
17:21 purl CokeZero: LAX: Tue 10:21am PDT / CHI: Tue 12:21pm CDT / NYC: Tue 1:21pm EDT / LON: Tue 6:21pm BST / BER: Tue 7:21pm CEST / IND: Tue 10:51pm IST / TOK: Wed 2:21am JST / SYD: Wed 3:21am EST /
17:21 * CokeZero
17:24 barney joined #parrot
17:29 masak Tene: yep. that did it. return code is now 1. what does that mean, in terms of fixing the problem?
17:31 jonathan masak: Ah, hmm
17:31 jonathan exit:
17:31 jonathan pop_eh
17:31 jonathan exit 0
17:32 jonathan It seems the same handler stays active and re-catches the exit exception through by exit 1
17:32 jonathan Try a pop_eh after the trap_errors: line.
17:34 jonathan But I suspect that the code I just pasted needs to look in the exception for the correct exit code to use also.
17:34 * masak is lost
17:35 masak but it seems the problem is well understood now, which makes me happy.
17:35 CokeZero jonathan: can you proffer me a patch for http://code.google.com/p/partcl/sou​rce/browse/trunk/src/tclsh.pir#165 too? =-)
17:37 jonathan CokeZero: You getting a hang or something?
17:37 jonathan CokeZero: And what is .catch() - a macro?
17:37 CokeZero yes.
17:37 jonathan Which is that yes too? :-)
17:37 CokeZero if I try to exit tcl from the REPL, I stay in the loop.
17:37 CokeZero [exit] also doesn't exit.
17:37 CokeZero and yes, it's a macro.
17:38 CokeZero http://code.google.com/p/partcl/sou​rce/browse/trunk/src/macros.pir#34
17:38 jonathan oh :-(
17:38 jonathan I was going to say "you're missing a pop_eh"
17:38 jonathan But your macro does it.
17:38 CokeZero ayup.
17:39 CokeZero this used to work back around 0.9 or so. =-)
17:39 jonathan That rethrow trick looks sensible, I'd like to steal it...apart from you say it doesn't work so hmm. :-/
17:42 CokeZero eeet used to! =-)
17:42 CokeZero (the only reason I have macros is because I was sick of rewriting syntax.)
17:44 chromatic joined #parrot
17:44 chromatic Hm, in the t/pmc/undef.t problem, the class being marked looks invalid.
17:55 cotto #ps in 35
18:00 * CokeZero curses the internets, as he now has a box heading his way from amazon.com
18:03 cotto The internets have been suitably cursed.  I'll blame you when something goes wrong.
18:05 CokeZero chromatic: only getting a few more files not running out of memory, but most of the ones still failing at least fot further.
18:05 chromatic Yeah, that context leak is the big one.
18:05 chromatic Though if you compile a lot of PIR, the IMCC leaks can add up.
18:06 CokeZero I compile a LOT of pir. =-)
18:06 chromatic The IMCC leaks are usually *really* easy to fix if you can trace it down to a small snippet of PIR.
18:06 CokeZero any procedure invocation or expression invocation will do it.
18:06 chromatic I fixed a few last night just by reading 10 lines of PIR and saying "Oh, I bet it's THAT!" and confirming it.
18:06 CokeZero chromatic: so noted. I'll see if I can duplicate it.
18:07 pmichaud #ps in 24.  I may be late/distracted during #ps, so I'm pre-pasting my report.
18:07 cotto That's prepasterous.
18:08 CokeZero *groan*
18:11 chromatic The assign opcode is the problem.
18:12 chromatic ... which calls set_pmc in Undef.
18:12 chromatic betcha it's pmc_reuse_by_class.
18:13 Tene masak: it means there's a problem with the exception handler.
18:13 masak Tene: ok.
18:13 masak any help appreciated.
18:14 Tene masak: I can't work on it right now, as I'm behind at work.  I'll try to get to it tonight.
18:14 Tene (sorry)
18:15 Tene starting to pack up my house tonight.
18:16 masak Tene: that's still good news, by me. thanks!
18:16 jonathan oh gah I forgot about doing dinner :-/
18:20 * jonathan will go after giving his #ps report
18:20 allison joined #parrot
18:21 dalek TT #5 closed by coke++: partcl's [puts hi] exposes memory leaks in r33137
18:21 dalek rakudo: b677d60 | masak++ | src/ (2 files):
18:22 dalek rakudo: moved 'prompt' into the setting
18:22 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​677d60762125344f4afb464fbdc83b994a7baa2
18:27 Tene I have my ps report ready ahead of time!
18:27 Tene I think I'm missing a few things, and I don't know how much of it was actually in the past week...
18:28 Tene It's all been since the last time I reported, though.
18:28 cotto pmichaud, ping
18:28 pmichaud cotto: pong
18:28 cotto What would it take to make a PAST iterable?
18:28 darbelo joined #parrot
18:29 Whiteknight pmc_reuse_by_class is b0rked?
18:29 cotto specifically a PAST::Block
18:29 Whiteknight #ps in 1
18:30 chromatic I commented out everything else in t/pmc/undef.t and ran it through the gcdebug core.
18:30 chromatic If I comment out the assign op, it's fine.
18:30 pmichaud cotto: it's already iterable (more)
18:30 chromatic It's either pmc_reuse_by_class or Parrot_oo_clone_object.
18:31 pmichaud cotto: just call .'iterator'() on it, and you get back an iterator.
18:31 cotto Great!  Thanks.
18:31 pmichaud we could potentially make that a vtable method, too, I suppose.
18:32 cotto That'd be more intuitive.
18:32 particle1 joined #parrot
18:34 Whiteknight chromatic: When did that t/pmc/undef.t problem appear?
18:34 chromatic After the merge.
18:35 chromatic I suspect it was lying in wait though.
18:37 * jonathan feels hard done by in the sort order stakes
18:37 chromatic I don't recognize the letter J.  I'm like mainland and Taiwan.
18:38 jonathan :-P
18:38 * jonathan can go for dinner now :-)
18:39 cotto appointment &
18:48 Whiteknight chromatic: I saw that failure before the branch merged, but I did a fresh checkout and it disappeared
18:48 Whiteknight so I'm sure it's some weird transient thing if it's appeared again now
18:49 chromatic Run just set_undef_to_object in t/pmc/undef.t and you'll trigger it with the gcdebug core.
18:49 chromatic Very reproducable.
18:50 CokeZero chromatic++ # memleak fixes.
18:51 Whiteknight good, reproducible is good
18:51 chromatic Not according to my neighbors.  They passed around a petition.
18:53 TimToady they finally got tired of those wild parties, eh?
18:55 Tene Whiteknight: Rakudo's socket tests are now failing after the IO merge.
18:55 Tene Method 'close' not found for invocant of class 'Socket'
18:56 CokeZero I thought rakudo was tested pre-merge-back?
18:56 dalek partcl: r464 | coke++ | wiki/SpecTestStatus.wiki:
18:56 dalek partcl: Recent memleak fixes in parrot were make-or-break for these tests.
18:56 dalek partcl: chromatic++
18:56 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=464
18:56 Whiteknight Rakudo was tested before the merge
18:56 Whiteknight Tene: I hate to ask, but did you realclean?
18:57 Tene I realcleaned everything.
18:59 Whiteknight damnit.
19:00 Tene Whiteknight: however, spectest time did drop from 20m to 14m, though
19:00 Whiteknight Okay, so two questons:
19:00 Whiteknight 1) How did we miss this failure prior to the merge and
19:01 Whiteknight 2) do you have a small test case that demonstrates the problem?
19:01 Tene Whiteknight: looks like it just reported the message in the spectest output, but didn't report as a failure in the test summary
19:01 Whiteknight Tene: Okay, that would explain it
19:02 Whiteknight so I assume somebody is calling "close socket_pmc" and it's throwing an error message?
19:02 Tene t/spec/S32-io/IO-Socket-INET.t
19:02 Tene looks like it's $client.close();
19:05 mberends Whiteknight, Tene, that was me bumbling around. Any corrections gratefully received ;)
19:05 clinton left #parrot
19:05 NotFound I don't see a close method in the socket pmc.
19:05 clinton joined #parrot
19:06 Whiteknight how does an open socket become closed then?
19:06 chromatic Velociraptors.
19:06 Whiteknight damnit, the velociraptors didn't make it into the branch
19:06 NotFound goto close;
19:07 TimToady whew, that was a close call...
19:08 Whiteknight the socket PMC doesn't look like it contains any functionality to terminate an existing connection
19:08 Whiteknight no close() method, no disconnect() method, nothing
19:08 Tene Whiteknight: so probably not caused by IO branch. sorry.  :)
19:08 Whiteknight it's okay, it's an issue that needs resolving in any case.
19:09 Whiteknight will be addressed in the next IO branch
19:09 NotFound We are on line with the modern trend of 'always conneced'
19:12 NotFound Parrot_io_close defaults to PCCINVOKE 'close'
19:13 allison in general, the opcodes shouldn't be called on sockets at all
19:13 allison sockets use only methods
19:14 allison (but then, if sockets happened to have a method called 'close' it wouldn't really matter)
19:15 NotFound Looks like currently there is no way, method or not, to close them.
19:15 Whiteknight right, I shouldn't have said opcode
19:15 allison NotFound: aye, that needs to be fixed
19:15 NotFound Well, at least destroy does it.
19:16 kj joined #parrot
19:18 mberends good people, on the subject of sockets, could you perhaps look into this little test case that hangs after opening a socket? http://gitorious.org/net-smtp/mainline
19:19 Tene that's not a link to a useful file.
19:19 Tene :P
19:20 Whiteknight I think a socket for some operations can be made to work with existing IO opcodes: open, close, read, print, etc
19:21 donaldh joined #parrot
19:21 Whiteknight I don't think they need any specialized opcodes though
19:21 Tene argh what's all this proto stuff?
19:22 Whiteknight like open "localhost", "L" could open a listening socket, while open "localhost", "C" could open a client socket, etc
19:22 Tene Hmm.
19:24 Whiteknight print socket, string could write data to the socket, string = read socket could read, etc
19:24 Whiteknight of course, these would just use basic options (TCP/IP?) so if you wanted more control you would use the methods directly.
19:26 Whiteknight Anyway, I'll muse about this stuff more later. I'm out for now.
19:28 chromatic src/io/api.c:123: warning: ‘filehandle’ may be used uninitialized in this function
19:29 NotFound Looks like the diagnostic is right. The last else does not set it
19:31 nopaste "Coke" at 65.91.151.194 pasted "for chromatic: leaker.pir" (20 lines) at http://nopaste.snit.ch/16839
19:34 chromatic Thanks, that should be relatively easy.
19:42 jhorwitz re: the PDD10 question in #ps, we should rebuild it from embed.pod (kind of backwards, but i rewrote embed.pod last year to reflect reality)
19:44 cotto chromatic, where's your attack plan for profiling?
19:45 CokeZero chromatic: was that thanks to me?
19:45 nopaste "chromatic" at 72.90.115.31 pasted "Deliverables for Profiling Core (cotto)" (21 lines) at http://nopaste.snit.ch/16840
19:46 chromatic CokeZero, yes.
19:47 NotFound jhorwitz: The reality that if reflected the last time I looked at it was that embedding sucks :(
19:47 jhorwitz it's actually not bad at all
19:47 CokeZero arigato, chromatic-san
19:48 jhorwitz NotFound: the hardest part is not writing the code, but figuring out the right compiler/ilnker flags from the parrot_config mess
19:50 CokeZero wow. software that makes me want to upgrade my os.
19:50 CokeZero (chrome is OSX 10.5 only.)
19:50 NotFound jhorwitz: strange, that was the easy part for me ;)
19:51 NotFound jhorwitz: look at examples/embed/Makefile
19:52 dalek tracwiki: v17 | cotto++ | ParrotQuotes
19:52 dalek tracwiki: velociraptors
19:52 dalek tracwiki: https://trac.parrot.org/parrot/wiki/Pa​rrotQuotes?version=17&action=diff
19:52 jhorwitz yeah, it *can* be easy.  but even after a recent svn up, my linker flags suddenly moved from libparrot_ldflags to libparrot_linkflags
19:52 jhorwitz (or something similar, i forget the exact name)
19:52 CokeZero jhorwitz: in our defense, adoughera cleaned up that stuff quite a bit. :|
19:53 CokeZero but I feel your pain, living outside the core sucks. =-)
19:53 jhorwitz CokeZero: yep, cleaning is good.  but the rug certainly can be pulled out from under you in this place.  ;-)
19:55 NotFound The problem I see is that current usages of embedding just jump over the problems by including all parrot headers they want and using all available functions. That way we never knows what things the external interface needs.
19:56 chromatic Exactly.
19:56 jhorwitz agreed
19:57 jhorwitz the headers have always been a problem in that regard
19:57 NotFound In fact I added seevral functions after discovering that it was impossible to write even a minimal example without breaking the rules.
19:58 jhorwitz added several functions for what?
19:59 NotFound To be able to put something that works in t/src/embed.t
19:59 * jhorwitz looks at that file...been a long time
20:00 NotFound All code in that file were examples of what to NOT do.
20:00 dalek parrot: r39474 | chromatic++ | trunk/compilers/imcc/pcc.c:
20:00 dalek parrot: [IMCC] Added braces to avoid a compiler warning about an ambiguous else.
20:00 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39474/
20:00 dalek parrot: r39475 | chromatic++ | trunk/src/pmc/undef.pmc:
20:00 dalek parrot: [PMC] Fixed Undef morph to Object code in the Undef PMC to avoid odd mark()
20:00 dalek parrot: errors and concomitant segfaults as well as memory leaks.  I won't pretend this
20:00 dalek parrot: is ideal, but it's an improvement.
20:00 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39475/
20:00 dalek parrot: r39476 | chromatic++ | trunk/src (2 files):
20:00 dalek parrot: [src] Tidied code; no functional changes.
20:00 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39476/
20:01 jhorwitz NotFound: it starts off well.  pretty clean.  then gets progressively uglier.
20:01 jhorwitz i know mod_parrot doesn't use a single internal datatype or unexported function, so it's possible to keep things clean.
20:01 NotFound jhorwitz: I let the previous content, skipping all.
20:02 chromatic Wow, CokeZero.  That's a very leaky example.
20:02 chromatic Of course, if you put 'emit' in quotes, it's better.
20:03 CokeZero ... it shouldn't even allow it without quotes. whoops!
20:03 NotFound jhorwitz: we have lots of things exported that are not intended for external usage
20:03 jhorwitz understood.
20:03 purl understood. are you on schedule?
20:03 * jhorwitz smacks purl
20:03 purl Oh baby, you do it so *good*!
20:03 chromatic It doesn't, but IMCC doesn't clean up allocated memory when it exits due to a parse failure.
20:03 jhorwitz purl: you know it
20:03 purl jhorwitz: excuse me?
20:03 CokeZero chromatic: will try to find you a better leaker.
20:05 NotFound jhorwitz: did you see something ugly before the '# Old tests, skipped all' ?
20:05 jhorwitz didn't see that line.  looking...
20:05 NotFound Other than the lack of the last 'l' in that comment ;)
20:06 jhorwitz no, looks clean
20:06 NotFound Good :)
20:07 jhorwitz was able to grok it pretty quickly -- reads like mod_parrot.  :)
20:08 NotFound So at least now we have some clean examples.
20:08 jhorwitz yes!  and i used embed.pod to document the functions i was using in mod_parrot, most of which are also in those examples.
20:10 jhorwitz so i guess the question is, what do we want to see from PDD10?
20:10 NotFound jhorwitz: Maybe will be better to unify extend.pod and embed.pod
20:10 jhorwitz NotFound: yes, allison and i agreed on that last year.
20:10 jhorwitz make extend.pod disappear
20:10 ttbot chromatic: Parrot trunk/ r39476 MSWin32-x86-multi-thread make error http://tt.ro.vutbr.cz/file/cmdout/30435.txt
20:11 gryphon joined #parrot
20:11 NotFound jhorwitz: I think the PDD for embedding must be very short, and refer to the extend pdd for almost all.
20:11 jhorwitz i think we also agreed to unify those PDDs
20:11 NotFound Even better.
20:11 jhorwitz they're just not separate entities
20:12 jhorwitz and then, maybe one day, we'll have one include file too.  ;-)
20:12 NotFound Just a short paragraph about how to embed must be enough.
20:13 NotFound Or for people that really dislike the separation of concepts, on how to start a parrot interpreter from C main ;)
20:14 NotFound But if we all agree on unify those docs, I think what must be done now is to unify them now.
20:15 CokeZero chromatic: here's an interesting leak tester; run some tcl.pbc with parrot -D60; leaktest all the resulting EVAL files.
20:16 CokeZero doing so now, hoping to find a culprit.
20:16 jhorwitz yep.  and the pdd10 ticket for the 1.3 milestone implies unification.
20:17 NotFound That implies also pdd renumbering?
20:17 jhorwitz or maybe just deprecation
20:18 jhorwitz *sigh* i guess i have some work to do this weekend.
20:20 NotFound jhorwitz: Have you looked at examples/embed/lorito.c ?
20:20 CokeZero chromatic: bah. turns out that those aren't really runnable in isolation anyway. ah well.
20:20 jhorwitz hm, doesn't sound familiar
20:20 NotFound jhorwitz: I wrote it some months ago.
20:21 chromatic CokeZero, are the top culprits in IMCC?
20:21 CokeZero chromatic: let me try an actual tcl file and see.
20:22 jhorwitz NotFound: looks pretty straightforward
20:25 NotFound jhorwitz: that was the attempt on writing something that used only emebed.h and extend.h that showed me the need to add some functions to the external interface. Don't remember now what were.
20:25 jhorwitz NotFound: i maybe saw one function in there that isn't documented in embed.pod (and should be)
20:25 jhorwitz that's really encouraging
20:26 NotFound We're starting to have a usable interface, just need to follow that path and document it.
20:26 jhorwitz yes, that was the point of me keeping embed.pod up to date
20:27 jhorwitz so now we move onto the PDD and profit
20:27 NotFound It helped to figure some flaws, at least ;)
20:27 jhorwitz just a few.  ;-)
20:27 nopaste "coke" at 193.200.132.135 pasted "leak output from examples/power.tcl" (4795 lines) at http://nopaste.snit.ch/16841
20:28 NotFound I'm not blaming, the general scheme was not bad, just lacked a few important functions.
20:29 chromatic Okay, now we just have to trim that PIR output down to the point where we can identify which part of the grammar causes a leak CokeZero.
20:29 jhorwitz i wouldn't even know where to begin blaming anyway.  :)
20:29 jhorwitz i just documented the fallout.  :)
20:31 CokeZero chromatic: https://trac.parrot.org/parrot/ticket/748 seems to be the biggest leaker.
20:31 CokeZero (which is just the leak output, not the pir)
20:32 cotto msg Whiteknight http://doc.cat-v.org/inferno/concurrent_gc/ looks like it might be of interest, should you ever have the time to read it
20:32 purl Message for whiteknight stored.
20:33 chromatic CokeZero, I need to be able to say "Oh, this file has :named( 'foo' ) in it three times and leaks 18 bytes."
20:33 chromatic Then it's a trivial fix.
20:33 chromatic Do you have a lot of .macros?
20:35 CokeZero yes.
20:36 chromatic That'll do it.
20:36 CokeZero since I'm not using PCT, narrowing down the generated PIR is a pita. working on it.
20:46 dalek parrot: r39477 | NotFound++ | trunk/src/pmc/socket.pmc:
20:46 dalek parrot: [pmc] add close method to Socket
20:46 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39477/
20:47 NotFound velociraptors--
20:48 CokeZero acceloraptors!
20:50 mugwump how do you differentiate those from velociraptors?
20:51 NotFound attrs              - PMC_data(SELF); ?
20:51 NotFound udef.pmc:54
20:51 mugwump oh, dv/dt
20:51 chromatic Hm, that should be =.
20:52 NotFound mugwump: you don't care, you just run
20:52 ttbot NotFound: Parrot trunk/ r39477 MSWin32-x86-multi-thread make error http://tt.ro.vutbr.cz/file/cmdout/30518.txt
20:53 NotFound ttbot: looks like the same problem
20:54 CokeZero mugwump: that's a horrible pun. it puts me in an awkward position.
21:00 dalek parrot: r39478 | chromatic++ | trunk/compilers/imcc (5 files):
21:00 dalek parrot: [IMCC] Plugged a memory leak of (generated) labels in IMCC.
21:00 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39478/
21:03 dalek parrot: r39479 | chromatic++ | trunk/src/pmc/undef.pmc:
21:03 dalek parrot: [PMC] Fixed a stupid typo which makes picky compilers run home to mommy.  This
21:03 dalek parrot: still doesn't crash OR leak memory.
21:03 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39479/
21:04 bacek joined #parrot
21:05 NotFound My g++ feels hurt because of that comment
21:05 ttbot chromatic: Parrot trunk/ r39478 MSWin32-x86-multi-thread make error http://tt.ro.vutbr.cz/file/cmdout/30562.txt
21:05 chromatic g++ can stay.  It's MSVC that goes.
21:13 NotFound Several commits with all test passing in linux amd64. Looks some recent change killed some hidden problem.
21:14 NotFound Good thing that this happens the first time I have a 64 bit OS at home :)
21:15 dalek rakudo: 1ff28a3 | jnthn++ | src/ (7 files):
21:15 dalek rakudo: Lots of fixes to get method introspection mostly working. Not 100% there yet, but a whole load better than it was. Also prevents us getting quite so explodely when we're putting MultiSubs into arrays (Parrot's MultiSub inheriting from RPA is srsly stupid), and makes .name work on Multis too.
21:15 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​ff28a33d5c77ad00b81414fdd65860f0e7e63a0
21:15 dalek rakudo: c7d4dad | jnthn++ | t/spectest.data:
21:15 dalek rakudo: Add S12-introspection/methods.t to spectest.data.
21:15 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​7d4daded625330cab3c6bc69830ad232733cfb5
21:15 dalek rakudo: 5af9cf3 | jnthn++ | :
21:15 dalek rakudo: Merge branch 'master' of git@github.com:rakudo/rakudo
21:15 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​af9cf3204b51be177d4a2461a1254e0cf8aea52
21:21 GeJ Good morning everyone
21:22 CokeZero pmichaud: spoke briefly to someone on the #tcl channel. basically, "yah, it probably shouuld throw an error, but..."
21:22 CokeZero but I have a fallback plan.
21:24 Theory joined #parrot
21:48 kj left #parrot
21:51 pmichaud CokeZero: surely they could come up with a different test for that
21:52 pmichaud i.e., one that uses a valid unicode char.  I'm sure there are plenty to choose from... ;-)
21:53 dalek parrot: r39480 | fperrad++ | trunk/src/pmc/socket.pmc:
21:53 dalek parrot: [codingstd] fix C parentheses
21:53 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39480/
21:58 Whiteknight joined #parrot
22:00 jan joined #parrot
22:12 jan joined #parrot
22:17 dalek parrot: r39481 | bacek++ | branches/pmc_i_ops (7 files):
22:17 dalek parrot: [pmc] Replace SELF.clone with pmc_new/set combo
22:17 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39481/
22:24 bacek good morning #parrot
22:24 dalek rakudo: f80f12c | jnthn++ | src/parrot/misc.pir:
22:24 dalek rakudo: Make .perl on a Parrot MultiSub not explode when we take .perl of a list containing it (yes, this patch sucks some...plan to improve .perl a bit on routines soon, though, and this is better than exploding).
22:24 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​80f12c07d9584ffcbe7dda6253decf112a7c7ee
22:24 dalek rakudo: 86aeafb | jnthn++ | src/parrot/ClassHOW.pir:
22:24 dalek rakudo: Fix :tree support for .^methods.
22:24 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​6aeafbbbe17c2ff4c4b4bedcbc18667b81ad5f5
22:24 bacek pmichaud: around?
22:25 pmichaud here, briefly
22:25 bacek main argue about pmc_i_ops branch is about using VTABLE_clone or changing semantic to use i_op?
22:26 bacek (I replaced VTABLE_clone to new/set combo in r39481)
22:26 ruoso joined #parrot
22:26 pmichaud vtable_clone was the one that caused immediate concern.  I'm still not sure about the i_op semantic.
22:26 pmichaud it doesn't feel right to me to think that we can/should define everything in terms of i_op
22:27 bacek But it's just math. And reduces amount of code to maintain
22:27 dalek parrot: r39482 | bacek++ | branches/pmc_i_ops (87 files):
22:27 dalek parrot: Sync branch with trunk.
22:27 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39482/
22:27 pmichaud I'm not sure it's always "just math".
22:28 bacek hm... How that?
22:29 pmichaud I can imagine that there might be scenarios where the inplace math is not the right thing to do.
22:29 contingencyplan joined #parrot
22:30 bacek But I use inplace for core pmcs only. With predefined semantic.
22:30 pmichaud if you're limiting it to core pmcs, but not affecting the ability of others pmcs to do something different, I have less concern.
22:30 bacek It's just core ops.
22:30 pmichaud ops, or pmcs?
22:30 pmichaud there's a difference.
22:30 bacek pmcs.
22:31 bacek It's still early morning there :)
22:31 jonathan s/there/here/ ;-)
22:31 pmichaud It's definitely not early morning here.  :-)
22:31 bacek Derived pmcs can provide any semantic for "add"/"i_add"
22:31 * jonathan hands bacek some good strong кофе
22:32 * bacek accepting coffee swearing in second language
22:33 rg1 joined #parrot
22:34 bacek pmichaud: Is there other objections about branch assuming that I already changed VTABLE_clone to pmc_new/set and it affects only core pmcs?
22:35 pmichaud I'm looking now.  But I'm not sure I should be the only one reviewing them.
22:36 pmichaud I'd want to get allison++ approval before merging to trunk, since she's the one who most recently worked on this stuff.
22:37 bacek Ok, I'll write new message to parrot-dev requesting for review.
22:48 itrekkie joined #parrot
22:53 dalek parrot: r39483 | chromatic++ | trunk/compilers/imcc (2 files):
22:53 dalek parrot: [IMCC] Plugged a memory leak of macro names used in PIR programs (in
22:53 dalek parrot: certain cases).
22:53 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39483/
23:16 bacek "No; your specific uses may rely on the presence of bugs, unspecified features, happy accidents, or other behaviors not captured in the test suite."
23:16 bacek Speaking of which. Can I merge tt24_unicode_numifications branch to trunk? :)
23:17 dalek parrot: r39484 | chromatic++ | trunk/compilers/imcc (2 files):
23:17 dalek parrot: [IMCC] Plugged a memory leak of the comma separating macro parameters (yes,
23:17 dalek parrot: this is getting awfully specific).
23:17 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39484/
23:17 skids joined #parrot
23:22 Theory_ joined #parrot
23:27 sekimura joined #parrot
23:36 dalek parrot: r39485 | chromatic++ | trunk/compilers/imcc (2 files):
23:36 dalek parrot: [IMCC] Plugged a memory leak in PIR macros using curly braces to delineate
23:36 dalek parrot: arguments.
23:36 purl arguments is what's left after action selection
23:36 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39485/
23:37 mongui joined #parrot
23:46 Whiteknight chromatic++
23:47 chromatic Want to try your hand at it?
23:47 patspam joined #parrot

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

Parrot | source cross referenced