#parrot Parrot 2.2.0 "Like Clockwork" Released! | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Tasks: Fix compact_pool shenanigans | Fix HLL bugs (TT #389, #1040) | Prioritize Rakudo Needs
Set by moderator on 20 March 2010.
dalek rrot: r45090 | plobsing++ | trunk/DEPRECATED.pod:
mark loadlib_p_s_p as experimental
00:10
00:11 rt7 joined
dalek kudo: becc7e0 | jonathan++ | src/Perl6/Grammar.pm:
One more tweak and seems we have item assignment working now, with all existing tests passing. :-)
00:38
kudo: 5d8fd6a | jonathan++ | docs/ROADMAP:
Minor ROADMAP tweaks.
00:49 GodFather joined 01:02 abqar joined
Whiteknight *crickets 01:11
plobsing is contemplating why we have config/gen/platform/platform_interface.h
anyone have any idea? 01:12
sorear you mean as opposed to just having include/parrot/platform.h? 01:14
plobsing yeah. It just gets copied over. 01:15
and there's even a comment: "interface is the same for all platforms" 01:16
I'm ripping it out to see what breaks ATM
Whiteknight do it 01:18
01:18 muixirt_ joined 01:26 chromatic joined
sorear True or false: the pcc_hackathon_6Mar10 API is going to become the trunk API. 01:37
Whiteknight sorear: yeah, it's going to get merged in soon 01:38
in fact...
purl in fact... are all squash New World?
Whiteknight bacek_at_work, chromatic: ping
chromatic pong 01:40
dalek kudo: 265726d | (Solomon Foster)++ | src/builtins/Num.pir:
Cleanup trailing whitespace.
01:41
kudo: fabef9f | Lue++ | src/ (2 files):
Put in support for fractional numbers (:16<A.4>) and other base scanning (:2<0o10>) into the radcalc function.
Whiteknight chromatic: pcc branch. ETA? 01:42
01:44 theory joined
Whiteknight bacek sent out an email about it earlier, no objections, but I haven't seen any movement on it 01:44
chromatic As soon as Rakudo passes its tests, it's merge time.
masak or moritz said there were some test failures. 01:45
plobsing odd - t/pmc/os.t fails lstat tests but only under testf
Whiteknight gotcha 01:50
chromatic Haven't had time to diagnose that. 01:53
I'm still thinking about the STRING buffer allocation patch.
Whiteknight I've looked at that patch only briefly 01:54
created a branch for it, if you want to play: compact_strings
chromatic I might switch to two other tasks.
One, adding an _ic variant for get_params and set_args and the like. 01:55
Whiteknight make corevm works, make coretest works and fails several tests
chromatic Two, fixing the way we register constant strings. I think we need a binary tree to store them, not a cstring hash.
That'll let us get rid of cstring hash, I think.
Whiteknight I don't know if you saw any of my insane ramblings, but all my attempts to resolve TT #389 have failed
I'm at a dead-end there without fresh input
chromatic How far did you get? 01:56
Whiteknight not far really. Any attempt I made was flawed
my best attempt fixed most of the bugs in trunk but completely broke dynpmcs
like terrible, explosive failures 01:57
chromatic I can't imagine why that would be.
bacek_at_work Unfortunately my laptop finally died... 01:58
So I can't do merge...
Whiteknight chromatic: Parrot's startup sequence is so rediculously convoluted 01:59
what I think we really need to do is spend some time diagramming it
chromatic You want convoluted? You should see the self-hosting precise GC I wrote once. 02:01
02:01 AndyA joined
Whiteknight chromatic: I really would like to see that some time 02:02
chromatic It's fairly simple. The only tricky part is holding on to the pointers long enough to register them in themselves. 02:03
Whiteknight fun fun silly willy
Anyway, it's my bed time. I'll see if I can get back in the swing of TT #389 tomorrow 02:04
chromatic What happened to your tt389 patches?
Whiteknight chromatic: all of them were lousy in one way or another
I have about a dozen here that I've never even sent you
most of them are definitely not worth it 02:05
chromatic Okay.
Whiteknight I'll post more info tomorrow
later
Austin Anyone here have red-light cameras in their town? i.imgur.com/RQcCi.jpg 02:45
plobsing did that actually work/ 02:46
?
Austin I don't know. But it has to be worth trying. 02:47
lucian Austin: :))
Austin You know, I can't remember if there's a whole bunch of stuff I'd rather be doing than slogging through pir trace logs for the expression parser... 02:51
chromatic May I suggest "Anything"? 02:54
dalek rrot: r45091 | plobsing++ | trunk (5 files):
don't generate static file platform_interface.h
02:55
Austin I was just about to conduct that experiment, c.
I was going to try standing in front of the kitchen counter, hitting my willy with a ball peen hammer to see if it was more fun... 02:56
But I can't, because if I do I'll lose my place...
plobsing chromatic: what's the verdict on shallow clone? Can I do it now? Do I have to deprecate? Is it a bad idea? 02:58
chromatic +1 to shallow clone 03:07
let's see what breaks
... in a branch
And let's see that it makes Rakudo go some 20% faster.
dalek rrot: r45092 | plobsing++ | branches/shallow_clone:
creating branch to try out shallow cloning
03:11
Austin Well, first you'll have to get rid of all the places where people wrote their own shallow-clone in line, because of the deep semantics... 03:12
plobsing Austin: I don't follow. Does rakudo shallow clone hashes by iterating in Perl 6? 03:13
that seems like something they'd complain about 03:14
Austin There's at least one place in $_PMC where I've seen that code.
And who knows what's in pir. 03:15
I'm the guy that opened a deep/shallow cloning ticket, so it's a safe bet there's some nqp code that does it...
plobsing hmmm... I predict epic fails getting rid of deep clone - default.clone is stupid and evil 03:16
chromatic You'd think that Rakudo would open a lot of tickets in Parrot's Trac, but about half of the complaints I see in the #perl6 logs never end up there for some reason and don't get fixed for some reason.
Austin I don't object to deep clone - it's a necessary function. But I object to the non-working implementation... 03:20
plobsing oh it works... for some definition of works. 03:23
03:34 TimToady joined
dalek rrot: r45093 | plobsing++ | branches/shallow_clone/src/pmc/default.pmc:
fix default.clone
03:44
chromatic Hm. 03:51
Probably any PMC that does anything interesting for clone() does it manually.
03:54 janus joined
Austin oh........ kay... 03:59
It's the old "You specified <left> when you should have specified <unary>" problem...
chromatic But Bullwinkle, that trick never works! 04:01
dalek tracwiki: v3 | Austin_Hastings++ | HLL%20Resources 04:02
tracwiki: trac.parrot.org/parrot/wiki/HLL%20R...ction=diff
Austin Heh. "You keep using that word, 'assoc'. I do not think that word means what you think it means..."
plobsing hmm... CallContext.clone clones SELF.hash. Technically non-shallow, but I'm going to leave it for now. 04:03
chromatic That one needs to stay deep. 04:04
plobsing yeah, there's some deep magic going on in there that I don't want to mess with.
considering it doesn't implement visit, it's not going to mess up any deep clone op I can cook up. 04:05
what is a Capture PMC? 04:11
purl i heard a Capture PMC was quite useful, similar to a DOM tree
plobsing ok, so its not magic in any way?
chromatic It's a Perl 6 thing, part Hash, part Array, but boy are they funny! 04:14
Needs to be deep too.
sorear Call signatures and activation records are both CallContext? 04:15
plobsing I removed the deepness on Capture, nothing broke... will test against Rakudo
chromatic Rakudo and NQP. 04:16
dalek rrot: r45094 | plobsing++ | branches/shallow_clone (2 files):
make parrot_hash_clone shallow
04:17
rrot: r45095 | petdance++ | trunk/src/pmc/parrotinterpreter.pmc:
consting
plobsing btw, how should I be benchmarking rakudo? 04:20
sorear I'd start with time make spectest 04:21
chromatic I usually use Callgrind on an example like Fibonacci or something OO heavy.
plobsing sorear: I don't want to spend 2 hours 04:22
sorear if it only takes two hours, you're doing extremely well
chromatic It should be a lot faster than two hours now. We had the parallel test run in under ten minutes a while back. 04:24
sorear well it takes 12 hours and 500MiB just to 'make' 04:25
chromatic On what machine? 04:28
plobsing yeah, rakudo is a good way to clear your filesystem cache 04:29
sorear chromatic: one with 384MiB of core; the huge memory use is probably most of the problem 04:30
plobsing nqp-rx passes with shallow capture clone 04:32
dalek rrot: r45096 | petdance++ | trunk/src/pbc_merge.c:
consting and localizing
04:33
chromatic We're working on that; that's definitely a problem. 04:35
sorear oh, they told you?
chromatic Yeah, that one did come up. 04:36
04:36 theory joined
chromatic TT #1489 04:36
sorear odd 04:38
plobsing chromatic: it appears rakudo implements its own Capture (src/builtins/Capture.pir) 04:56
04:57 kurahaupo joined
plobsing does anything else use captures? 05:00
chromatic Not to my knowledge.
Austin Capture pmc? Isn't that the basis for PGE? 05:01
chromatic I don't know if it uses the PIR version. 05:03
plobsing pge gets a little exercise in parrot's testsuite. if capture is critical to pge, I'm sure any breakage would show up there 05:04
Austin Not the pir, no. The pmc.
dalek rrot: r45097 | petdance++ | trunk/src/pbc_merge.c:
localized vars and consted some locals
05:06
05:07 integral joined
sorear so, uh 05:11
I installed Parrot
then I blew away the build directory
Austin sorear++
sorear and now it seems Parrot can't find files that it was expecting to have in the build directory
chromatic make install or make install-dev?
sorear specifically
Austin ?
sorear cannot find file 'default.pmc' in path '.', '/usr/local/lib/parrot/2.2.0-devel/tools/build/../..', '/usr/local/lib/parrot/2.2.0-devel/tools/build/../../src/pmc', '/usr/local/lib/parrot/2.2.0-devel/tools/build/../../src/dynpmc', '/usr/local/src/parrot/2.2.0-devel', '/usr/local/src/parrot/2.2.0-devel/pmc' at /usr/local/lib/parrot/2.2.0-devel/tools/build/../lib/Parrot/Pmc2c/Pmc2cMain.pm line 244. 05:12
Austin Aren't those the same, now?
Heh
plobsing why do we need to keep around the PMC source files?
Austin Because all pmc's inherit from default.pmc. 05:13
plobsing yeah, but doesn't pmc2c create .dump files to handle that?
Austin ^^
sorear plobsing: I don't know, but an attempt to 'make' a dynpmc extension failed with that error. 05:14
05:18 parthm joined
plobsing Hitting ^C in some Configure.pl steps (eg: auto::warnings) is ignored. Bug or not? 05:22
dalek tracwiki: v1 | Austin_Hastings++ | NQP-rx%20Operator%20Precedence%20Parsing 05:24
tracwiki: trac.parrot.org/parrot/wiki/NQP-rx%...ction=diff
plobsing sorear: try commenting out lib/Parrot/Pmc2c/Dumper.pm:55 05:28
sorear cannot find file 'default.dump' in path '.', '/usr/local/lib/parrot/2.2.0-devel/tools/build/../..', '/usr/local/lib/parrot/2.2.0-devel/tools/build/../../src/pmc', '/usr/local/lib/parrot/2.2.0-devel/tools/build/../../src/dynpmc', '/usr/local/src/parrot/2.2.0-devel', '/usr/local/src/parrot/2.2.0-devel/pmc' at /usr/local/lib/parrot/2.2.0-devel/tools/build/../lib/Parrot/Pmc2c/Pmc2cMain.pm line 244. 05:31
make[1]: *** [p5sv.dump] Error 2
plobsing that's slightly better
at least it's looking for the right file now 05:32
hmmm....looks to me that both .dump and .pmc files are being installed in $PREFIX/src/2.2.0-devel/pmc 05:37
dalek rrot: r45098 | petdance++ | trunk/src/pbc_merge.c:
Removed unused argument from pbc_merge_fixups
05:39
sorear plobsing: as it happens, my build tree is ... $PREFIX/src/parrot 05:41
plobsing: so I blew away part of the install along with it.
OOPS!
plobsing does that mean your issue is fixed? 05:42
sorear no, I still think installing stuff in src/ is generally confusing
but I at least understand what's going on now
sorear mv parrot parrot.build
plobsing moral of the story: don't build under $PREFIX 05:43
but there is another point to address - should we really be installing .pmc files?
05:44 davidfetter joined
chromatic We should not. 05:47
plobsing I can eliminate the installation of .pmc files, but I think it might break things in a couple places 06:13
chromatic We should find out what. 06:14
plobsing example: we install 84 core .pmc files, but only 15 .dump files. Any dynpmcs that inherit from those 69 pmcs will fail. 06:15
I'll make a branch
btw, I just discovered "perl Configure.pl --prefix --optimize". nifty hack 06:18
chromatic perl Configure.pl --maintainer --optimize --prefix=/home/chromatic/dev/tmp/parrot && perl -pi -e 's/-O2 /-O3 /' Makefile && perl /home/chromatic/bin/rewrite_config_lib 06:26
plobsing wow, that's a mouthful 06:27
--prefix without an argument defaults to installing into $BUILD_DIR/1/
dalek rrot: r45099 | plobsing++ | branches/no_pmc_install:
creating branch to remove .pmc files from install
06:28
rrot: r45100 | plobsing++ | branches/no_pmc_install (2 files):
eliminate .pmc files from install targets
plobsing also, what does /home/chromatic/bin/rewrite_config_lib do? 06:29
dalek tracwiki: v2 | Austin_Hastings++ | NQP-rx%20Operator%20Precedence%20Parsing 06:30
tracwiki: trac.parrot.org/parrot/wiki/NQP-rx%...ction=diff
tracwiki: v3 | Austin_Hastings++ | NQP-rx%20Operator%20Precedence%20Parsing
tracwiki: trac.parrot.org/parrot/wiki/NQP-rx%...ction=diff
Austin There, I feel much better. 06:33
chromatic plobsing, it adds the SVN revision to config_lib.pasm, because I use git-svn. 06:38
sorear what does --optimize do? 06:43
plobsing optimizes :p
sorear pity there's no -Oruntime-memory-usage 06:44
plobsing -Osize is probably the closest thing you can do atm
but that won't help you much
sorear I think -Osize is mostly .text 06:45
but AFAIK no gcc optimizations affect runtime memory usage at all
plobsing what about struct-packing?
sorear struct packing is fixed by the ABI and cannot be changed by -O options 06:46
only -m options are allowed to break binary compatibility
and you generally can't use them if you want to link to libc
Linux uses lots of -m options...
plobsing -mmmm options. tasty tasty options 06:47
dalek tracwiki: v4 | Austin_Hastings++ | NQP-rx%20Operator%20Precedence%20Parsing
tracwiki: trac.parrot.org/parrot/wiki/NQP-rx%...ction=diff
sorear -mregparm3 -msse # these really ought to be part of ccall, but ccall has been set in stone for decades :( 06:48
plobsing what does regparm3 do?
sorear passes the first three arguments in eax, ecx, edx instead of on the stack 06:49
plobsing oh. you poor soul, stuck on x86. we on x64 have that in our ABI.
sorear yes
aren't forced compatibility breaks awesome?
oh, we're changing the word size, all that 30 year old SVID-compatible (yes, the *System V* interface description) code is broken anyway 06:50
let's fix all the warts!
I look forward to x86 dying
plobsing as I recall, the ms people even took the opportunity to kill stdcall vs pascall vs fastcall 06:51
sorear \\o/ 06:52
chromatic I tried regparm3, but it didn't do anything useful performance wise.
plobsing I imagine accessing the top couple stack elements is pretty damned fast on any recent cpu 06:53
sorear I suspect Linux' use of -mregparm3 has a lot to do with the fact that kernel threads have non-growable 8kb stacks by default 06:54
every wasted word in stack frames counts
06:55 snarkyboojum joined
sorear okay, blizkost compiles with pcc_hackathon_6Mar10 06:56
shift_pmc() not implemented in class 'CallContext'
current instr.: 'main' pc 37 (test.pir:17)
Segmentation fault (core dumped)
woah, gdb can handle core dumps where the segfaulted instruction is in a dlopened library? impressive. gdb++ 06:57
the crashed statement was an attribute accessor... somehow, the object's .data == 0 06:59
no attribute storage at all
chromatic Probably not a CallContext. 07:00
sorear no, a P5Interpreter 07:04
07:11 uniejo joined
plobsing any recommendation of an OO-heavy benchmark file for rakudo? 07:11
chromatic Anything from S12 07:12
dalek rrot: r45101 | plobsing++ | branches/shallow_clone/src/pmc/capture.pmc:
make Capture.clone shallow.
07:17
rrot: r45102 | plobsing++ | branches/no_pmc_install/lib/Parrot/Pmc2c/Dumper.pm:
eliminate pmc2c dependancy on default.pmc
sorear plobsing++
07:40 Psyche^ joined 07:44 bacek joined 07:45 Psyche^_ joined
bacek aloha 07:47
08:03 payload joined 08:05 riffraff joined
Austin Hello, bacek 08:09
bacek Hi Austin
Austin Bacek, irclog.perlgeek.de/parrot/2010-03-21#i_2133947 08:16
There's some kind of issue with taking continuations and returning values after re-invoking the continuations. Naturally, I thought of you... 08:17
bacek bacek@icering:~/src/parrot$ ./parrot bb.pir 08:18
Blob?
la
ny
purl blobby blooby blob! or a Binary Large OBject, or a big chunk of data in a database or the bane of DBD::Oracle or a cute little baby or en.wikipedia.org/wiki/The_Blob or a way of saying "... and it might be big"
bacek bos
Blob.
Austin Woot.
bacek It's on pcc_refactor branch
Austin WFY
I'm sure arnsholt will be delighted... 08:19
:)
bacek++
bacek Care to create todoed test for it?
Austin Not even a little bit. 08:20
bacek Sigh...
Austin Yeah.
bacek Laziness ftw
Austin heh.
Violates my "no pir" rule.
08:25 iblechbot joined 08:27 fperrad joined
Austin msg arnsholt FYI, Bacek has your weird Continuation scenario working in the pcc_refactor branch. 08:28
purl Message for arnsholt stored.
Austin seen arnsholt?
purl arnsholt was last seen on #parrot 8 hours, 40 minutes and 37 seconds ago, saying: Could it be that the Continuation resumes from a slightly off position (ref. bug.pir)?
Austin msg arnsholt ... and he would be delighted if that scenario somehow became a test case 08:29
purl Message for arnsholt stored.
bacek :) 08:33
Austin Laziness ftw.
(plus me not really understanding wtf he's doing..)
bacek seen moritz 08:38
purl moritz was last seen on #parrot 17 hours, 47 minutes and 44 seconds ago, saying: nope :(
moritz is online 08:39
Austin Man, if I could do this ... failblog.org/2010/03/16/entrance-win/ 08:40
bacek Hooray! :)
nopaste "bacek" at 114.73.162.254 pasted "Rakudo patch for moritz++" (194 lines) at nopaste.snit.ch/20030
bacek moritz, can you try nopasted path on rakudo+pcc_hackatron? 08:41
I have feelings that this weird save/restore stuff isn't needed anymore
moritz bacek: is that on top of the patch on parrot-dev? 08:42
bacek moritz, nope. Clean one
But you can just delete few lines on top of old one.
In perl6.ops 08:43
In bind_signature inside "if (bind_error == BIND_RESULT_JUNCTION) "
moritz huh, I get some hunks FAILED
bacek sigh...
It's on top of old one? 08:44
moritz no
I'm on master, commit 265726dfc14e11242f9f7673a61b1d0cccb14df5
bacek let me update to current master in try 08:46
nopaste "bacek" at 114.73.162.254 pasted "Patch again" (98 lines) at nopaste.snit.ch/20031 08:48
bacek moritz, nopasted patch against 265726dfc14e11242f9f7673a61b1d0cccb14df5
bacek 's laptop is dying... 08:51
moritz, If I'll disappear try to remove all this save/restore stuff from rakudo. I hope it will help
moritz will do 08:53
08:54 kurahaupo joined
moritz purl, msg bacek rakudo now mostly works on the branch, just calling sets ($obj.*method) die with "shift_pmc() not implemented in class 'CallContext'" 09:26
purl Message for bacek stored.
09:28 AndyA joined
moritz purl, msg bacek also the memory usage is a bit higher - without the branch it rakudo compilation works with a ulimit of 1G virtual mem, on the branch that's not enough 09:28
purl Message for bacek stored.
chromatic Funny, because CallContext does implement shift_pmc(). 09:32
moritz on the pcc_hackathon_6Mar10 branch? 09:34
I only see unshift_pmc in src/pmc/callcontext.pmmc
chromatic Oh, I'm not on the branch. Good point.
Called from Pthe 6Opaque PMC? 09:36
the P6Opaque PMC?
09:37 Mokurai1 joined
moritz no idea 09:38
the bactrace says
current instr.: '!dispatch_.*' pc 529 (src/glue/dispatch.pir:167)
called from Sub '_block170' pc 1518 (EVAL_1:564)
chromatic A gdb backtrace would show it. Set a breakpoint on Parrot_ex_throw_from_c_args. 09:39
09:39 snarkyboojum joined
moritz my gdb fu is rather weak - how do I do that? 09:40
chromatic gdb ./parrot
Actually, no.
gdb ./perl6
> break Parrot_ex_throw_from_c_arg 09:41
(y)
> r example.p6
> bt
moritz doesn't trigger the breakpoint
chromatic Should be argS instead of arg 09:42
nopaste "moritz" at 87.159.150.189 pasted "bt for chromatic++" (42 lines) at nopaste.snit.ch/20032 09:44
chromatic Hm. Hit c to continue.
There'll probably be a few of those. 09:45
nopaste "moritz" at 87.159.150.189 pasted "the real one..." (33 lines) at nopaste.snit.ch/20033 09:47
09:48 payload joined
chromatic Hm. That's not where I thought it was. 09:48
That's from the PIR level, not C.
Either way, somehow we lost unshift_pmc in the branch. 09:52
09:52 parthm joined 10:00 JimmyZ joined
chromatic Hm, no. It's there and it's working. 10:01
moritz it's shift_pmc that's missing
not unshift_pmc
chromatic ah.
Perhaps I should sleep eventually.
sorear losing shift_pmc also broke blizkost, but I was expecting I just needed to change apis 10:02
chromatic Hm, there's a shift_pmc in there too. 10:03
vt->shift_pmc = Parrot_CallContext_shift_pmc; 10:04
Oh, spot the problem. 10:05
#2 0x00007f38e4c10e4e in Parrot_default_shift_pmc (interp=0x2c5f010, pmc=0x0) at ./src/pmc/default.c:1927
Austin Psssh. If it was that easy, anybody could do it... 10:06
chromatic Though why anything'd get to default if the PMC really were NULL is a good question. 10:07
Austin Null attribute?
chromatic NULL->vtable should go boom. 10:08
Unless the backtrace demonstrates clever GCC optimizations.
I'd have to see the related PIR to know better. 10:09
10:10 riffraff joined
arnsholt backlogs 10:12
moritz it's all in public repos :-) 10:13
chromatic: github.com/rakudo/rakudo/blob/maste...h.pir#L167 10:15
chromatic Thanks. 10:17
Which test file did you run? 10:19
moritz t/spec/S12-methods/calling_sets.t
simpler: 10:20
./perl6 -e '2.*ACCEPTS(2)'
chromatic works for me 10:21
moritz on the branch?
chromatic yes. 10:22
moritz wow
how did you compile rakudo? did you use the patch from parrot-dev?
chromatic Let me check something though, now i have a strange question about how I made my git branch. 10:23
10:23 parthm left
moritz if rakudo builds on your pcc_hackathon_6Mar10 branch without a patch, you're doing something wrong 10:25
chromatic Yeah, I wasn't tracking the right remote ref.
nopaste "moritz" at 87.159.150.189 pasted "build rakudo on parrot branch" (138 lines) at nopaste.snit.ch/20034
chromatic Confirmed, moritz. 10:39
10:43 payload joined
dalek kudo: 041ad2a | (Solomon Foster)++ | src/Perl6/Grammar.pm:
Tweak the grammar for unicode hyperops. Still getting strange issues with this, but hyper.t definitely works better with this change than without it.
10:50
kudo: 35f3373 | (Solomon Foster)++ | t/spectest.data:
Turn on hyper.t.
chromatic moritz, I've just committed a patch which appears to DTRT. 11:04
Parrot r45103. 11:06
msg bacek r45103 is a quick and dirty attempt to get Rakudo working again; it's worth review.
purl Message for bacek stored.
11:08 clinton joined
dalek rrot: r45103 | chromatic++ | branches/pcc_hackathon_6Mar10/src/pmc/callcontext.pmc:
[PMC] Added preliminary shift_pmc and shift_string VTABLE entries to
11:08
arnsholt Hmm. Writing a test case for this continuation stuff is hard 11:16
11:17 payload joined
Austin Arnsholt: I thought what you had was a pretty good start. 11:21
arnsholt Austin: Yeah, it is
Austin Except maybe append to a string instead of printing..
arnsholt I just need to figure out how to get the calling code know what value to expect
Austin ? 11:22
arnsholt But I think I've got it
Austin Tell it.
"This should emit 'la, la, ny, ny, bos, bos'"
arnsholt Oh, right. There's that option of writing tests
arnsholt digs for an example to copy 11:23
There 11:31
How should I submit the patch?
Austin nopaste and send a msg to bacek 11:32
arnsholt Cool 11:33
nopaste "arnsholt" at 193.157.196.115 pasted "Test for continuation issue" (92 lines) at nopaste.snit.ch/20035 11:37
arnsholt msg bacek I wrote a test for my continuation issue, see nopaste.snit.ch/20035 11:38
purl Message for bacek stored.
Coke msg plobsing - I'm looking at "no_pmc_install" - is this going to negatively impact HLLs abilities to build dynamic pmcs? 11:42
purl Message for plobsing stored.
Coke msg plobsing - (I see the discussion about .dump vs .pmc) - let me know when it's safe to try an HLL against trunk with those changes. 11:50
purl Message for plobsing stored.
11:59 whiteknight joined
Austin Guten morgen, Whiteknight. 12:00
whiteknight Hello Austin. How are you today?
Austin Coughing and dizzy, sadly. 12:01
I think the cleaning fumes from yesterday are lingering...
whiteknight ...<insert joke about atmosphere of New Jersey here>...
Austin I was going to make it about close, but your way is good, too. 12:02
So today I'm trying to figure out how postcircumfix works in the nqp optable parser. 12:07
whiteknight like the actual parsing mechanics? 12:08
Austin Yeah.
I need to know how the a and the [i] get hooked together in a[i]
whiteknight oh, to test your PCT matcher thingy? 12:09
Austin Bah, not even.
I'm trying to get some code to work.
Well, to generate some kind of tree.
Then I can write a test for it.
(Not true, actually. I've got some tests written, but they don't pass.)
whiteknight oh 12:10
Austin Code tests, not tests of my matcher. The matcher works. 12:11
whiteknight ok 12:16
Austin I think the problem is that [] needs to be marked as an infix/left-associative op, not as a unary op.
But that doesn't work, either. 12:17
Mother F....r
Coke $ ./perl6 -e 'Mother F....r' 12:18
Segmentation fault
purl (Core dumped)
whiteknight great
Coke (old rakudo. upping...)
arnsholt Who wrote purl? 12:19
Coke purl, owner? 12:20
purl i think owner is hachi, see also #purl
Coke I'm pretty sure purl is an infobot with some custom stuff on top. 12:21
Coke comes back in 30m when rakudo has finished building.
Austin Hachi! There's a name I haven't heard in a while... 12:23
Coke HACHI MACHI! 12:26
Coke misses _the critic_
12:36 tetragon joined
Coke wah, current rakudo doesn't segfault on that. 12:47
moritz purl, msg chromatic with your patch, all rakudo tests pass on the pcc_hackathon_6Mar10 (at least all that also pass in master) 12:59
purl Message for chromatic stored.
13:06 janus joined 13:07 patspam joined 13:11 PerlJam joined 13:49 theory joined 14:10 PacoLinux joined
whiteknight moritz: which patch? Is that a patch for Rakudo? 14:15
moritz whiteknight: there's both a patch by chromatic in that branch, and a local rakudo patch for adapation 14:16
whiteknight moritz: can you send me the patch for that branch? I could apply it and prepare the merge
moritz whiteknight: it is applied already - sorry for the confusion 14:17
whiteknight oh, okay
incoming 14:21
purl duck!
14:23 fperrad joined
dalek rrot-linear-algebra: 657f6b7 | Whiteknight++ | setup.pir:
setup.pir has +x
14:24
rrot-linear-algebra: 06f8acb | Whiteknight++ | (2 files):
update get_block and set_block on NumMatrix2D to handle more error conditions. Expand several TODO'd tests for both methods. All tests pass on this type now.
rrot-linear-algebra: bd53755 | Whiteknight++ | (2 files):
Add get_block and set_block methods to PMCMatrix2d. After some refactoring of tests, all tests pass.
rrot-linear-algebra: 3fc10ea | Whiteknight++ | src/pmc/complexmatrix2d.pmc:
add get_block and set_block methods to complexmatrix2d. All tests pass
14:37 Myhrlin joined
Austin Hey, whiteknight. 14:39
purl i guess whiteknight is mailto:wknight8111@gmail.com or the grand master funk or wknight8111.blogspot.com/
whiteknight ?
Austin While you're hacking, you wouldn't want to make the various keyed access vtables (get/set)_(int/str/pmc/num)_keyed(_int/str/num/pmc) overridable on Object, would you? 14:40
whiteknight aren't they already?
Austin Because if there were vtable overrides, you wouldn't have to do {Key.new(0,0)}
I looked a while ago, when you started migrating to Kakapo, but I didn't see anything that looked like it. 14:41
And, hey, whiteknight++ - you're cranking out the pla tests. 14:42
Coke pla?
purl pla is really focusing on fast 2D data buffers or Parrot-Linear-Algebra
Coke ah
whiteknight Austin: yeah, I think I'm basically done with this sprint now. I'm going to move over to PDS and upgrade the test suite there now
Austin Sounds cool. repo? 14:43
pds?
purl pds is Parrot Developer Summit or Parrot-Data-Structures or github.com/Whiteknight/parrot-data-structures
Austin We're getting quite the drenching here... 14:44
14:44 dalek joined
whiteknight this one is going to be a little bit harder since the types don't share common behaviors. The fixed* types don't act much like the resizable* types, and stacks don't act like queues 14:44
so I can't inherit many tests 14:45
Austin Right. But the early tests ought to be easy to get going.
14:48 riffraff joined, pmichaud joined 14:49 atrodo joined 15:02 sri joined
Coke pmichaud: hey! 15:23
pmichaud good morning, #parrot 15:24
Austin Hey, pmichaud! 15:25
purl i heard pmichaud was www.pmichaud.com/ or "Patrick R. Michaud" <mailto:pmichaud@pobox.com> or in charge of toaster experiments or a friendly guy :)
whiteknight pmichaud! How are you?
pmichaud Tired.
we're finally out of the hospital, but not out of the woods.
Austin :(
whiteknight out of the hospital is always a good first step
Austin Any news? 15:26
pmichaud well, Paula's surgery was overall successful, but we've had a fair number of complications
Austin Yikes.
I've noticed they never say, "There's a complication. It turns out the hospital needs to get rid of eight million dollars, and we've picked you to receive half of it..." 15:27
whiteknight They also never say "We're not worried at all about a malpractice suit, so we're going to let you go home before you are ready" 15:29
In my experience, getting cleared to leave the hospital can be the longest, hardest part of the whole ordeal 15:30
Austin FWIW, Pmichaud, just about every day for the last week I've said, "Man, I wish I could ask pmichaud about this..."
If you could just plug your brain into a usb port, it would rock... 15:31
whiteknight: :) I spent a few months in hospital because of a half-degree fever.
whiteknight Austin: We spent almost 24 hours in the hospital when the kid was born. The doctor wouldn't clear him to leave the last day until he produced a wet diaper 15:32
Austin Yeah
whiteknight my dad spent a whole extra weekend in the hospital once because they couldn't get the right doctor to sign the release 15:33
Austin They do that with anesthesia patients, too.
Nothing to eat or drink until you pee.
pmichaud 15:29 <whiteknight> They also never say "We're not worried at all about a malpractice suit, so we're going to let you go home before you are ready" 15:35
Actually, they did try to discharge us early.
We had to refuse and call in various patient advocates to prevent it. 15:36
Austin 8-O
What, did they have a convention booked in for the weekend? 15:37
pmichaud there were some serious miscommunication problems between the nursing staff and the doctors
Austin Sorry, we need these rooms for the shriners?
Gack.
pmichaud as of wednesday afternoon, when they tried to discharge, I couldn't even get Paula out of her hospital bed. The *staff* couldn't get her out of the hospital bed without first adminstering a fair amount of pain medicine and having two nursing techs to do it. 15:38
dalek tracwiki: v34 | coke++ | BranchDescriptions
tracwiki: update from script.
tracwiki: trac.parrot.org/parrot/wiki/BranchD...ction=diff
pmichaud and somehow they expected us to go home, and for me to be able to get her from the van into the house
turns out we were correct to refuse dismissal, by that evening she was completely unable to move her right leg. 15:39
one of the doctor's assistants showed up Thursday morning and said "we realize there's some pain, but we think you're ready to discharge". To which I responded "...but Paula is completely unable to move her right leg." "Oh. We weren't aware of that." 15:41
whiteknight pmichaud: Oh, I'm sorry to hear that. My experience in hospitals is (thankfully) limited
Austin wtf?
What happened to her leg?
pmichaud well, at the time nobody knew. We now suspect it was a pinched nerve blocking the signals to the leg. 15:42
(the nerve has since become unpinched, so she has the use of the leg again, but it's extremely weak.)
Austin And naturally, the doctors didn't get the word from the nursing staff about this? 15:43
pmichaud right, that's why the doctors were a bit surprised (and concerned)
as soon as word actually made it to one of our doctors, things happened quick.
we had several doctors there in rapid succession, various consults, etc. 15:44
Austin Well, that's a plus.
Tell 'em "Hey, you know that commercial where there's one guy working, and a bunch of monkeys..." 15:45
pmichaud and I suspect the hospital has since reviewed the case somewhat, because they've (unprompted) sent over some home health assistance
Austin Is that the hospital, or the insurance company?
pmichaud (came over on Saturday, said that Paula was flagged as a "hot" case)
Austin Aj 15:46
pmichaud I'm pretty sure it's the hospital in this instance.
Austin Ah
dukeleto 'ello 15:48
pmichaud: sorry to hear about your hospital misadventure. I hope everyone is happy and healthy soon
Austin Hey, duke
pmichaud me too, but we're not there yet. :-)
dukeleto Austin: top of the week to ya
pmichaud anyway, now that we're home I'll try to hang out on the channel, but (as has happened three times already since I rejoined the channel) I'll often have to "disappear" suddenly to help Paula with something. 15:51
Austin That's fine. A little bit of Pmichaud is better than "Oh, crap, time to turn on trace(1) again..." 15:52
whiteknight a little bit of Pmichaud on my mind, a little bit of pmichaud he's on line. A little bit of pmichaud is all I see... 15:58
git merge master mambo_number_5
Austin Grrr... 16:03
time for lunch
whiteknight What's on the menu today? I had chicken salad 16:06
16:11 ruoso joined 16:24 payload joined
whiteknight does NQP support multiple inheritance? 16:27
pmichaud I don't think it supports it yet. We could probably add it w/o too much difficulty. 16:28
whiteknight nah, it's not a big deal.
I'm trying to write up a proper NQP-based test suite for PDS, and I'm being greedy about trying to inherit lots of tests and reduce duplication 16:29
but the gains are small
16:39 Andy joined
cotto_work o hai 16:42
dukeleto cotto_work: howdy
whiteknight hello 16:43
szbalint qdb.us/302018 # reminded me that chromatic makes parrot vrrrm vrrmm 16:46
16:57 darbelo joined
whiteknight goddamn cpan 17:02
17:04 rt7 joined
dalek rrot: r45104 | petdance++ | trunk (3 files):
adding more PARROT_* attributes to funcs
17:11
17:13 cotto_w0rk joined 17:17 cotto_work joined
cotto_work If I have some supporting code that's needed for some Parrot core tests written in nqp, what's the best place to put it? 17:28
Coke I would put it right next to the support code neede for parrot tests written in pir. 17:29
also 'core parrot tests written in nqp' is an oxymoron. =-)
s/core// ?
cotto_work nqp's included in ext
Coke that's npq-rx. =-P
(since we also have compilers/nqp, which is not part of corevm) 17:30
that should be fine, yah.
cotto_work by
"core" I mean "distributed as part of Parrot"
not corevm
Coke ok. we might want a better word for 'core' vs. 'corevm' to avoid (my, at least) confusion, but yah, that seems fine, and my answer on where is the same. 17:31
(are these tests to test nqp-rx, or just to use nqp-rx in testing?) 17:32
cotto_work they'll just use nqp-rx. They're for testing the profiling runcore.
Thanks. 17:33
Coke whee. 17:34
17:39 chromatic joined
Coke nqp-rx doesn't support "foo if $bar", does it? 17:47
chromatic: morning.
chromatic morning
17:49 kjeldahl joined
moritz Coke: it does - see #perl6 17:54
though if foo is a function, you need to write foo() if bar
Coke moritz++ 17:58
dxpw? 18:01
18:05 Psyche^ joined 18:15 joeri joined, payload joined
chromatic New mini-bottleneck in PCC: the use of malloc/free for splitting signatures. 18:24
18:28 ash_ joined
dalek rrot: r45105 | plobsing++ | branches/no_pmc_install/lib/Parrot/Pmc2c (2 files):
fix always parse default.pmc bug. partcl now builds
18:33
18:48 hicx174 joined
dalek rrot: r45106 | NotFound++ | trunk/src/dynext.c:
Fix C++ build
18:49
18:57 dmagnus joined
whiteknight my PMC type has "provides stack" in the pmclass declaration, but then it fails tests on "does 'stack'" 18:58
darbelo whiteknight: s/provides/does/ ? 18:59
whiteknight darbelo: my queue type "provides queue", and successfully "does 'queue'" 19:00
and all the PLA types do the same for the "matrix" role
so the syntax works
darbelo Check for typos on that line. pmc2c silently ignores stuff it doesn't understand. 19:01
cotto_work What's the C code look like for provides_str? 19:02
whiteknight no idea. 19:03
cotto_work grep provides_str path/to/your_pmc.c 19:04
or ack if you want to be awesome
whiteknight vt->provides_str = Parrot_str_append(interp, vt->provides_str, 19:05
string_make(interp, "stack", 5, "ascii",
PObj_constant_FLAG|PObj_external_FLAG));
so, "stack" is in there 19:06
cotto_work That's odd. It should generate a space-separated list in a single STRING*. 19:12
plobsing arg. I can't show any significant speed improvement on rakudo using shallow clone. I think rakudo is avoiding using clone to work around the issues deep clone causes.
whiteknight plobsing: that's probably extremly accurate
chromatic At least Rakudo can get rid of code. 19:13
plobsing I'm almost 100% sure its happening. A place i noticed deep cloning happening 2 weeks ago no longer does so.
whiteknight cotto_work: yeah, it does look a little weird. But, it only does one thing 19:14
chromatic Check to see if Sub PMCs get cloned when you clone a NameSpace.
plobsing chromatic: from parrot or from rakudo?
chromatic From Rakudo. 19:15
plobsing do I drop down to pir:: to do that?
chromatic I'd annotate NameSpace clone or use gdb. 19:16
cotto_work whiteknight, that's an odd problem. If you want I can dig into it tonight. 19:20
whiteknight cotto_work: yeah, that would be nice if you have time and motivation for it
I'll set you up with a commit bit to PDS
Done. 19:21
cotto_work ok. If it bugs you, that's motivation.
whiteknight cotto++
cotto_work also, it'll give me an excuse to say pmc2c-- a few more times
plobsing chromatic: I'm fine figuring out what NameSpace.clone, it's getting rakudo to invoke NameSpace.clone that I'm not to sure about 19:22
module ASDF { sub Hi { ... } } my $x = ASDF.clone() # doesn't work
19:26 payload joined
plobsing msg Coke I have the major HLLs (except cardinal, which doesn't use installed parrot) working against the no_pmc_install branch. Feel free to test. 19:28
purl Message for coke stored.
chromatic I should be able to merge pcc_hackathon to trunk in a bit. 19:29
Tene does performance vary between trunk and branch? 19:30
chromatic The branch is a bit faster. 19:31
Tene Better than the "much slower" from the last pcc branch, iirc.
chromatic I have a couple of other ideas to try too. 19:32
post-merge anyhow
cotto_work Which HLLs work with the branch? 19:36
chromatic We tested Rakudo. 19:39
dukeleto chromatic++ # pcc_hackathon merge 19:42
cotto_work any of the smaller ones? 19:44
19:44 allison joined
cotto_work hi allison 19:44
19:47 eiro joined
whiteknight incoming 19:48
purl duck!
cotto_work quack
dalek rrot-data-structures: c4f7d37 | Whiteknight++ | setup.pir:
+x to setup.pir
19:49
rrot-data-structures: a8634e1 | Whiteknight++ | t/ (5 files):
start reworking the test suite to use Kakapo.
rrot-data-structures: d47a392 | Whiteknight++ | t/pmc/ (5 files):
major overhaul of the existing tests. Since we have many similar types (stcks, queues) we can inherit most of the tests from a hierarchy of parent test classes. Almost all tests now are in common.nqp and inherited by the individual files.
rrot-data-structures: 194afc2 | Whiteknight++ | t/testlib/common.nqp:
add that file, finally
rrot-data-structures: 878a834 | Whiteknight++ | t/harness:
small fix to the harness
rrot-data-structures: b697c2c | Whiteknight++ | t/ (8 files):
add a run_test utility to run an individual test. Fix all tests so that the test suite actually runs (but several tests fail)
rrot-data-structures: 1c20dc0 | Whiteknight++ | (7 files):
add get_bool to most types. Fix several test failures. most types are failing one test each now
rrot-data-structures: 1f3d846 | Whiteknight++ | (10 files):
merge the test_cleanup branch
chromatic cotto_work, I don't know that anyone has tested the others. 19:52
19:52 iblechbot joined
whiteknight matrixy is fallow for now, so I'm not going to test it 19:53
cotto_work chromatic, a wiki page on how to fix an HLL might help. 19:54
(post-pcc merge)
chromatic Sounds good. 19:55
purl Sounds good. is there a good way for me to find out when branches are merged, other than read every svn commit?
plobsing purl, forget sounds good 19:57
purl plobsing, I didn't have anything matching sounds good
plobsing purl, forget sounds good.
purl plobsing, I didn't have anything matching sounds good
plobsing purl, forget "Sounds good."
purl plobsing, I didn't have anything matching "sounds good."
chromatic purl, forget Sounds good. 19:58
purl chromatic, I didn't have anything matching sounds good
chromatic Wow.
cotto_work sounds good.
purl sounds good. is, like, ""
cotto_work sounds good.
purl sounds good. is ""
cotto_work sounds good.
purl sounds good. is ""
darbelo no, Sounds good. is <reply>
purl okay, darbelo.
19:59 bacek_mobile joined
bacek_mobile o hai 20:00
cotto_work hi bacek_mobile. Are you on your new development machine? ;) 20:01
Austin whiteknight: Kakapo does multiple inheritance.
(Naturally)
bacek_mobile cotto, almost. at least it has linux inside
:)
Running irc on mobile phone is... like FUTURE! :) 20:03
whiteknight Austin: nice
bacek_mobile seen chromatic 20:04
purl chromatic was last seen on #parrot 5 minutes and 55 seconds ago, saying: Wow.
chromatic pong
bacek_mobile chromatic, i missed shift-foo in CallContext during switching to array from list... 20:05
Myv fault
chromatic Not a problem, I'm adding back now with tests.
bacek_mobile ok
Austin Whiteknight: but we probably want roles. 20:06
bacek_mobile Are you going to merge it?
Austin Actually, "ro^les" with that cool hat thingy.
We'll need to use the "do^es" keyword for that...
chromatic Yes, I am. 20:08
cotto_work rļæ½les?
bacek_mobile chromatic, good. 20:09
Austin asdas
Bah
whiteknight Austin: I've gotten all those issues sorted out with simple inheritance
dalek rrot-data-structures: c9207e7 | Whiteknight++ | (3 files):
updates to README
Austin Bummer :( 20:10
I was kind of looking forrward to it..
whiteknight Austin: Maybe we can add them in next 20:11
Austin yeah..
whiteknight Take a look at the tests in PDS and see if you can find a better way to write it all than I have
Austin But my never-to-be-sufficiently-accursed grammar is giving me problems now...
so a distraction would be welcome.
Counterproductive, but welcome.
20:13 theory joined
Coke Austin: if you want a distraction, you can try to wire up partcl-nqp with kakapo! 20:14
Austin Heh.
Too easy.
purl too easy is codeword for "restrict coral's creativity, it's hurting me"
Coke but think of all the code you could rip out! 20:15
Austin Mmmm
There is that.
I need a list of all the "global" symbols that the expression parser uses
Well, that was easy. 20:18
:) 20:19
20:20 frodwith joined
dalek rrot: r45107 | chromatic++ | branches/pcc_hackathon_6Mar10/t/pmc/callcontext.t:
[t] Added tests for CallContext's unshift_pmc VTABLE.
20:28
chromatic Incoming. 20:53
purl duck!
cotto_work incoming duck?
chromatic Incomng merge.
21:01 allison joined
dalek rrot: r45108 | chromatic++ | trunk (35 files):
Merged pcc_hackathon_6Mar10 into trunk. Because this changed op numbering, you
21:02
Austin Coke: ping 21:09
nopaste "Austin" at 68.39.12.202 pasted "(for coke) Error message output when trying to use mscgen plugin in trac" (10 lines) at nopaste.snit.ch/20040 21:10
WorkCoke :? 21:11
purl it has been said that : is the path separator
WorkCoke Austin: do you have a page that causes that error for me to look at?
Austin I was trying to play around with the mscgen plugin, but it appears to be improperly configured or not working.
trac.parrot.org/parrot/wiki/TreeUnit 21:12
The mscgen code is copied from the example on the plugin website.
WorkCoke I noticed that. =-) 21:13
Austin Gotta start somewhere...
WorkCoke austin? 21:14
purl austin is nice. or a city in Texas. or Mr. Hastings, if you're nasty.
WorkCoke austin_hastings?
purl austin_hastings is asking for method.
WorkCoke facepalm.
purl Oh geez, not this shit again.
Austin purl++
WorkCoke Austin: cc'd you on the ticket. 21:15
Austin okay
Thanks.
Do we need that page to stay as-is? 21:16
WorkCoke Austin: if you need to change it, just move the test to a separate page and reply to the ticket. 21:17
(i mean, the mscgen bit.)
Austin Sure 21:18
21:26 davidfetter joined
dalek tracwiki: v3 | Austin_Hastings++ | TreeUnit 21:27
tracwiki: trac.parrot.org/parrot/wiki/TreeUni...ction=diff
tracwiki: v4 | Austin_Hastings++ | HLL%20Resources
tracwiki: trac.parrot.org/parrot/wiki/HLL%20R...ction=diff
WorkCoke 'make codetest' fails after mergeback. only interesting bit is the pod failure in ext/, which actually looks like it's finding a bug in the file (2 cuts in a row.) 21:28
(also, branch still exists)
21:28 allison joined
dalek kudo: db0f857 | moritz++ | t/spectest.data:
run more teest files
21:29
chromatic Merging the test file was awkward. 21:35
dalek kudo: 5886ef7 | moritz++ | (4 files):
enable build on parrot after pcc_hackathon_6Mar10 merge
chromatic Feel free to remove the branch, any karma hounds.
21:43 joeri joined, joeri left
dalek tracwiki: v1 | Austin_Hastings++ | NQP-rx%20Tricks 21:44
tracwiki: trac.parrot.org/parrot/wiki/NQP-rx%...ction=diff
21:44 bacek_mobile joined
bacek_mobile chromatic++ 21:45
chromatic, care to hack IMCC little bit?
chromatic I might have some time tonight. What do you have in mind? 21:46
NotFound I'm having problems with the oplib.pmc
bacek_mobile we can create CallContext in compile time for set-args/set-results 21:47
and just fill it in runtime
NotFound With parrot r45108, pirado segfaults.
chromatic How does that work with re-entrant calls, bacek_mobile? 21:48
bacek_mobile hmm
it will not... 21:49
sigh... it was bad idea...
chromatic Not until we break out Context again.... 21:52
cotto_work ooc, is there a planned pcc refactor that will give up significant speed improvements? 21:53
NotFound Singletons are marked?
darbelo They should be. 21:54
WorkCoke dokuwiki.osuosl.org/public/ganeti_m...n_schedule - parrot.org's vm is getting migrated on 3/31; supposed to be a 5-10m outage. 21:55
NotFound Adding Parrot_pmc_gc_register(INTERP, OPLIB_OPCODE_CACHE); it doesn't segfault, so looks like isn't marked.
darbelo Then anything you hang off a singleton can be prematurely collected... 21:56
chromatic cotto_work, making CallSigs compile-time constants should do that.
NotFound darbelo: the singleton isn't the problem, but its collectable attributes. 21:57
dalek kudo: eae8b29 | moritz++ | t/spectest.data:
we pass some basic protoregex tests
21:58
darbelo NotFound: That's the "anything you hang off" I was referring to.
NotFound darbelo: ups, didn't read that line 21:59
darbelo The singleton is basically immortal as it's allocated from the constant pool. But it's ATTRs are fair game for collection.
Unless we declare that all singletons must have singleton/constant ATTRs. 22:00
The "don't do that" method ;)
NotFound If I add an instance of OpLib in the main sub, it doesn't segfault. So yes, looks like the problem is that the singleton isn't marked when there is no live variable pointing to it. 22:01
chromatic Marking it isn't going to work. 22:02
The next GC run it's already marked, so it doesn't get marked again and doesn't get its mark called again, so any non-constants it contains won't get marked and may get collected.
NotFound Registering the ATTR in the init function works, but I don't think is a desirable solution. 22:04
darbelo How about a separate singleton pool? 22:06
NotFound How about killing singletons? ;)
darbelo I've suggested that in the past too. 22:07
davidfetter mmm...singletonz :d
dalek rrot: r45109 | darbelo++ | branches/pcc_hackathon_6Mar10:
Branch has already been merged into trunk and is no longer needed at HEAD.
22:08
cotto_work darbelo, I remember you had some fun with those during the last gsoc. 22:09
darbelo Yep, and singleton dynpmcs can still segfault parrot today. 22:11
Or maybe not... I haven't retested after bacek's last round of gc work. 22:12
chromatic It's probably still a problem
dalek TT #1522 created by allison++: sweep-free gc
TT #1522: trac.parrot.org/parrot/ticket/1522
darbelo If I'm remembering it correctly, the only solution there was to move singletons out fo the constant pool. 22:13
Or over-complicating the interpreted destruction logic, of course. 22:14
cotto_work ordered destruction? 22:15
darbelo Yep.
cotto_work I thought that was something we eventually wanted.
(as are ponies)
22:16 riffraff joined
NotFound Oh, wait.... OpLib isn't a singleton! 22:16
Even worse, is my fault X-) 22:17
cotto_work but that means you can fix it
NotFound Not sure... let's see. 22:18
darbelo Looking at PDD 28, it sounds like NFG would add some sanity to our strings. 22:26
chromatic A lot. 22:28
dalek TT #1523 created by allison++: subroutine leave semantics/exit handlers 22:29
TT #1523: trac.parrot.org/parrot/ticket/1523
TT #1524 created by allison++: [RFC] model and implementation of lvalue semantics
TT #1524: trac.parrot.org/parrot/ticket/1524
TT #1525 created by allison++: improved NCI/FFI
TT #1525: trac.parrot.org/parrot/ticket/1525
NotFound Looks like I was completely wrong, the singleton is marked. 22:30
chromatic It still can't point to non-constant PObjs. 22:31
NotFound I'm not sure about what is happening, but making OpLib a singleton pirado doesn't segfault. 22:35
22:39 mikehh joined
dalek rrot: r45110 | mikehh++ | trunk/src/pmc/callcontext.pmc:
fix codetest failure - unwrapped macro argument
22:40
22:45 kid51 joined 22:47 Whiteknight joined
Whiteknight pmichaud++ (NQP efficiency "interview" on the wiki) 22:55
dalek rrot: r45111 | mikehh++ | trunk/src/runcore/trace.c:
fix codetest failure - line length
22:56
rrot: r45112 | mikehh++ | trunk/src/call/args.c:
fix codetest failure - trailing whitespace
rrot: r45113 | NotFound++ | trunk/src/pmc/oplib.pmc:
make OpLib a singleton again
cotto_work Whiteknight, ?
purl Whiteknight, is there a way to know which one, or is it a try and see thing?
cotto_work forget Whiteknight,
purl cotto_work: I forgot whiteknight,
Whiteknight trac.parrot.org/parrot/wiki/WhyDoes...icientCode 22:58
cotto_work I felt kinda like one of the kids on Mr. Wizard. 22:59
Whiteknight it was a great interview 23:00
I think pmichaud's estimate of a 4% performance improvement is a tad conservative
chromatic Probably.
Whiteknight for some operations I think we could be closer to 20% just by avoiding so much find_lex/store_lex nonsense 23:01
is that PCC branch merged in yet? 23:02
cotto_work it'd be instructive to profile some nqp-rx-generated pir before and after a manual conversion to remove the unnecessary find_lex/store_lex ops
Whiteknight, yes 23:03
chromatic++ merged it a few hours ago
Whiteknight nice. chromatic++ 23:04
chromatic Now we can fix constant STRING storage in the next week. 23:05
Whiteknight nice
darbelo There's still the 'Rakudo gobs all my memory' thing to solve before the release. 23:06
Whiteknight ah yes. I have to look into that patch again
chromatic The real problem there is that compact_pool never expects the pool size to shrink. 23:08
dalek rrot-linear-algebra: fb8df75 | Whiteknight++ | ports/plumage/parrot-linear-algebra.json:
add json metadata information for plumage
23:11
Whiteknight I think we may be getting ready to cut a PLA release 23:12
and if I can finally get the function call semantics correct, I can cut one for Matrixy too 23:13
dalek rrot: r45114 | mikehh++ | trunk/ext/Parrot-Embed/t/interp.t:
fix codetest failure - perlcritic - extra =cut removed
darbelo Whiteknight: Oh, matrixy survived the pcc branch? 23:14
chromatic Break compact_pool into several smaller functions and it's easier to manage. That's probably step one.
mikehh getting post-config test failure - t/steps/gen/platform-01.t - Failed test: 5 - I am fairly sure this is due to context.h being moved
but I am not sure how to fix it - it is not obvious from looking at the test source 23:16
plobsing mikehh: "Located required platform interface header" failure looks like my fault. attempting to fix. 23:20
and by fix, I mean remove, because the tested functionality no longer exists 23:21
mikehh plobsing: yes - we need to examine the pre/post-config tests - the functionality the tests were checking for has changed quite a bit recently 23:23
plobsing I suppose I could test that it no longer exists.... 23:25
darbelo plobsing: In case we accidentally re add the file?
If the feature's gone, let the test go as well. 23:27
plobsing darbelo: no, to anoy the person that re-adds the file on purpose 23:28
dalek rrot: r45115 | plobsing++ | trunk/t/steps/gen/platform-01.t:
fix config test forgotten when eliminating generation of platform_interface.h
23:30
plobsing hmmm... testr t/op/exceptions_23.pbc has been running for 3.5 minutes 23:31
infinite loop?
purl see infinite regress
Tene infinite regress? 23:32
purl see infinite loop
plobsing did anyone run fulltest on the pcc branch before it landed? 23:33
chromatic I didn't run it on all cores, no. 23:34
23:35 tetragon joined
mikehh unfortunately pressure of $work has prevented me from being involved in parrot for the last week - just getting started again now 23:42
dalek rrot: r45116 | plobsing++ | branches/tt1015:
branch takes wrong approach
23:46
rrot: r45117 | petdance++ | trunk (3 files):
adding headerizer protectors
nopaste "plobsing" at 67.55.2.108 pasted "infinite loop when compiled to pbc post-pcc merge" (18 lines) at nopaste.snit.ch/20042 23:53
plobsing fulltest++
chromatic Ugh, tailcall. bacek_mobile? 23:56
bacek_at_work chromatic, not mobile. at_work apparently 23:57
23:57 patspam1 joined