Camelia, the Perl 6 bug

IRC log for #parrot, 2010-03-31

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 Whiteknight are you sure about that? Have an example?
00:00 arnsholt Well, my point of departure is the bug you spotted, with the missing .return when I removed .tailcall
00:01 arnsholt Lemme see if I can find the nopaste
00:01 Coke the problem is that the HLL of the grammar is not the HLL of my language.
00:02 Austin That's what I meant about checking for some kind of boundary...
00:03 arnsholt Whiteknight: http://nopaste.snit.ch/20025
00:04 Whiteknight arnsholt, so what's wrong in this example?
00:04 arnsholt If you remove the .tailcall directive without making it .return explicitly (like I had done), city in blob() will hold the string "la" after the continuations are invoked
00:05 Whiteknight oh, ok
00:05 arnsholt But when the first continuation is created at least, it shouldn't have that value
00:05 arnsholt Which is what makes me wonder
00:05 Whiteknight in that case, it pulls the return value out of interp->current_sig, which hasn't been overwritten because there was no .return
00:06 Whiteknight so yes, it probably is a bug
00:06 nopaste "coke" at 72.228.52.192 pasted "austin - this fails" (40 lines) at http://nopaste.snit.ch/20142
00:06 Whiteknight more realistically, it should throw an exception because a result is requested, but nothing is returned
00:06 tcurtis joined #parrot
00:07 arnsholt True, true
00:07 Whiteknight make a ticket, can post this IRC chat as a description
00:07 Austin Coke: Try assign_vpp
00:07 arnsholt I'll do that
00:09 snarkyboojum joined #parrot
00:10 Coke getlist not found for undef.
00:10 Austin Heh. What does that mean?
00:11 Coke that is putting an Undef into the list.
00:11 Austin Yeah.
00:12 eternaleye joined #parrot
00:12 Austin Are you still using the lset-a-1-aa example as a test case?
00:12 Coke yup.
00:12 Austin And what's the expected output?
00:12 purl the expected output is very long, so i scrolls for screens and screens
00:13 Austin Because I get no output, and $? == 0
00:13 Coke A AA
00:13 Coke er, a AA
00:13 Austin Really?
00:13 Austin it should print something?
00:14 Coke er... if you add a puts, yes! =-)
00:14 Coke ./partcl -e 'set a {a {b c}}; puts [lset a 1 AA]'
00:15 Austin Now I get a blank line
00:15 Coke what's your diff/
00:15 Coke ?
00:16 arnsholt Oh. FFS. Just for good measure, I made Parrot segfault as well
00:17 nopaste "Austin" at 68.37.47.32 pasted "list method" (10 lines) at http://nopaste.snit.ch/20143
00:18 Austin Hmm...
00:18 Austin My version of "lset" is perhaps a tad minimal...
00:18 Coke @list.push: $element; ?
00:18 arnsholt At least the segfault was my fault (no pun intended)
00:18 Coke Austin: have you pulled?
00:18 Austin Nope
00:18 Coke you'll need to do that. =-)
00:18 Whiteknight segfault?
00:18 purl well don't DO that, then.
00:19 arnsholt But segfaulting when invoking an uninitialised continuation is probably a bit over the top
00:19 Whiteknight definitely not right
00:19 Whiteknight file another ticket!
00:19 arnsholt Whiteknight: I removed a line too much and killed the one that inited a continuation
00:19 Whiteknight in C?
00:19 purl in C is there some rational choice between for (;;){...} and while(1){...}?
00:19 arnsholt Yeah. I just have to obsess a bit more over how to word this first one =)
00:19 arnsholt No, PIR
00:19 Austin partcl-nqp?
00:19 purl well, partcl-nqp is http://github.com/partcl/partcl-nqp
00:19 Austin botsnack
00:19 purl :)
00:20 Coke Austin: with your patch, I get the same thing I get with  my patch.
00:20 Coke you probably aren't triggering the error because it's invoked from inside [lset]
00:20 Austin Right.
00:23 ruoso joined #parrot
00:24 arnsholt Whiteknight: Oh dang. Our conversation overflowed the day change in the IRC logs =)
00:25 payload joined #parrot
00:26 Whiteknight nice
00:27 Whiteknight arnsholt: I know it must be frustrating for you, but you're performing an invaluable bug-finding service for Parrot
00:27 Whiteknight arnsholt++
00:27 arnsholt Well, this one isn't an actual issue for me (thankfully)
00:27 arnsholt There was just something that didn't quite sit right
00:28 tcurtis Is there any sort of standard benchmark suite I could use to make sure a change doesn't make Parrot excessively slow? "time make fulltest"(my current plan) is probably not the best way to do so.
00:30 Whiteknight tcurtis: yes, there are benchmarks
00:30 Whiteknight let me look
00:31 arnsholt Whiteknight: Do you know off-hand what the correct C incantations are to cause Parrot to die()
00:31 Whiteknight examples/benchmarks/*.pir
00:31 Whiteknight arnsholt: in C? I think it's Parrot_exit()
00:31 Whiteknight arnsholt: src/exit.c
00:31 cotto_work tcurtis, dukeleto had something set up that should make finding performance regressions relatively simple
00:32 Austin tcurtis:  svn ci -m "here's a change" ; kold=$(echo "karma tcurtis" | wirc irc.parrot.org/parrot) ; sleep $((24 * 3600)) ; knew=$(echo "karma $USER | wirc irc.parrot.org/parrot) ; if expr "$knew < $kold" ; echo "Bad change" ; fi
00:32 cotto_work actually, ripping off speed.pypy.org wouldn't be a bad gsoc project if it's not too easy
00:33 Austin The bacek approach: Check it in, wait 24 hours, check your karma...
00:34 cotto_work chromatic usually runs some small-ish nqp program under valgrind and uses the instruction count as an indicator
00:35 Whiteknight that's good too. But in talking about changes to the internals, the opcount can stay the same but the cost per op can change
00:35 tcurtis I think I'll try just using "make benchmark_tests", which I only now noticed.
00:35 Austin Whiteknight: I think he meant the host CPU opcode count.
00:36 cotto_work yeah
00:36 Austin (valgrind)
00:36 Whiteknight oh. Duh.
00:36 Whiteknight I might be stupid, but there's one thing I am not: stupid
00:37 dalek TT #1537 created by arnsholt++: Continuations fail to revert all registers to the correct state
00:37 dalek TT #1537: http://trac.parrot.org/parrot/ticket/1537
00:42 Whiteknight okay, I'm off to bed
00:42 Whiteknight actually, Lost is on in a few minutes, then bed
00:42 Whiteknight later
00:42 cotto_work night
00:47 Coke Lost? no spoilers, I just finished season 1.
00:48 Coke ... every time I see arnsholt, I think "you got some artz on you."
00:48 arnsholt artz?
00:48 Coke http://lostpedia.wikia.com/wiki/Leslie_Arzt
00:49 Coke I know it's not the same name. Just some sort of mental trigger.
00:50 arnsholt Right. Never watched Lost, so no wonder I didn't get the reference
00:50 arnsholt At any rate, it's a bit of a portmanteau on my real name
00:53 Coke Austin: ah. I think my undef error is because I'm getting further. whee.
00:53 arnsholt There, another issue opened. It even has a patch =)
00:53 Austin COngrats.
00:54 dalek TT #1538 created by arnsholt++: Invoking uninitialised continuation causes segfault
00:54 dalek TT #1538: http://trac.parrot.org/parrot/ticket/1538
01:01 Coke *cry*
01:02 bubaflub joined #parrot
01:04 atrodo joined #parrot
01:07 bubaflub joined #parrot
01:09 bacek joined #parrot
01:13 dalek partcl-nqp: c09f71c | Austin_Hastings++ | src/Tcl (2 files):
01:13 dalek partcl-nqp: Added Data::Dumper support for TclString, List
01:13 dalek partcl-nqp: Signed-off-by: Austin Hastings <Austin_Hastings@Yahoo.com>
01:13 dalek partcl-nqp: review: http://github.com/partcl/partcl-nqp/commit​/c09f71c23b69352fb99a4dd8dcea613f99e0f1e4
01:16 cotto good evening
01:16 purl Ah, evening. The tumultuous mind tarries and contemplates, reveling in the silence afforded by the diurnal proletariat. Good evening, indeed.
01:17 cotto go away, purl
01:17 purl No, YOU go away, bud.
01:17 Austin smackdown
01:17 purl somebody said smackdown was the only one of those i've ever even heard anyone mention.
01:17 Austin purl++
01:19 dalek partcl-nqp: 3152687 | Coke++ | src/Partcl/commands/main.pm:
01:19 dalek partcl-nqp: use a more natural for-style loop.
01:19 dalek partcl-nqp: review: http://github.com/partcl/partcl-nqp/commit​/3152687d1796721109c7a557e185eb8aa20e3328
01:19 dalek partcl-nqp: a7900e9 | Coke++ | src/Tcl (2 files):
01:19 dalek partcl-nqp: Merge branch 'master' of github.com:partcl/partcl-nqp
01:19 dalek partcl-nqp: review: http://github.com/partcl/partcl-nqp/commit​/a7900e914bbbdb5581cd67d502fd31502376566e
01:21 Austin Man, the next time Whiteknight bitches about subscripting in NQP, I'm doing to send him to the lset manual page.
01:28 Coke Austin: =-)
01:28 Coke tcl is soo much fun. =-)
01:44 Austin Coke: I got up to 10 (out of range) working
01:53 kid51 joined #parrot
01:55 Psyche^ joined #parrot
01:55 eternaleye joined #parrot
01:56 Austin Hey, coke: does this commit of yours work?
01:59 Coke Austin: out of range?
01:59 purl well, out of range is good
01:59 Austin yeah, test #10
01:59 Austin I got 'em all, now.
02:00 Austin had em all.
02:00 Austin git--
02:02 Coke Austin++
02:03 nopaste "coke" at 72.228.52.192 pasted "this is close, but occasionally gets assign $PXX, <void>" (26 lines) at http://nopaste.snit.ch/20144
02:11 Austin Coke: is it really an error to lset a non-existent var? Or does that just vivify one?
02:12 jimk joined #parrot
02:13 Coke error.
02:13 Coke (at least with the vintage tclsh I have lying about.)
02:14 Austin wfm
02:14 Austin Code just gets a little uglier.
02:14 Coke working trumps ugly.
02:14 Coke lset should already be dying on that, btw.
02:15 Austin Code just gets a little uglier.
02:15 Austin ww
02:15 Austin Okay
02:15 Austin This should be the last change...
02:15 Austin Get rid of the dumps..
02:16 Austin Hey, in case you didn't see it, I added __dump methods to TclString and TclList so that Data::Dumper would print more than just { ... }
02:16 Mokurai1 joined #parrot
02:16 Austin That got old quick.
02:16 Coke I did. Austin++
02:17 Austin Pushing
02:17 Austin push it
02:17 dalek rakudo: 8ba6030 | (Solomon Foster)++ | src/core/ (2 files):
02:17 dalek rakudo: Int and Num do Real.   jnthn++ for patching it so this works with augument.
02:17 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​ba60307a4af36b45b2221f98e998be9dda75c94
02:17 Coke push it is <reply>Push it real good.
02:17 Austin push it is <reply>Push it real good!
02:17 Austin Heh.
02:17 Austin great minds..
02:17 purl you wish you thought like me, dude
02:17 Austin push it
02:17 Austin push it?
02:17 purl Oh!
02:17 Austin bah
02:18 Austin Anyway, it's pushed
02:20 nopaste "coke" at 72.228.52.192 pasted "austion - close..." (26 lines) at http://nopaste.snit.ch/20145
02:22 dalek partcl-nqp: 458f2f6 | Austin_Hastings++ | src/Partcl/ (2 files):
02:22 dalek partcl-nqp: Got lset working
02:22 dalek partcl-nqp: Signed-off-by: Austin Hastings <Austin_Hastings@Yahoo.com>
02:22 dalek partcl-nqp: review: http://github.com/partcl/partcl-nqp/commit​/458f2f6aa4b8a823b58a0b8b8a6235f006cd12b8
02:22 dalek partcl-nqp: 4335646 | Austin_Hastings++ | src/Partcl/commands/main.pm:
02:22 dalek partcl-nqp: Got lset working (again). Undid some cleanups that actually changed behavior.
02:22 dalek partcl-nqp: Signed-off-by: Austin Hastings <Austin_Hastings@Yahoo.com>
02:22 dalek partcl-nqp: review: http://github.com/partcl/partcl-nqp/commit​/433564623998566d1e3a0c39bafef1c4b447cd7d
02:23 Coke untodo'd the tests...
02:25 snarkyboojum joined #parrot
02:25 Coke Austin: we are now failing t/sanity.t
02:26 Austin ?
02:26 Coke 'make test' has failures.
02:27 dalek partcl-nqp: 39af750 | Coke++ | t/cmd_lset.t:
02:27 dalek partcl-nqp: These tests pass now (Austin++)
02:27 dalek partcl-nqp: (There is some error output before the test plan starts, but the test passes...)
02:27 dalek partcl-nqp: review: http://github.com/partcl/partcl-nqp/commit​/39af750fa6ec413f859eb739c19c48f3237fd309
02:28 Austin okay, back
02:28 Austin What sort of failures?
02:28 Austin I've been seeing this weird "unexpected \n" but I figured it was a unix/dos thing.
02:32 Coke no, that's a real failure in the generated PIR.
02:33 Coke if you run parrot -D60 partcl.pbc <some file>, you can capture the generated EVAL files and see the bad PIR.
02:34 Coke ./partcl t/sanity.t shows the erorr.
02:34 Austin Damn.
02:34 Austin Coke++
02:34 Austin I *never* knew about that, but I wish I had..
02:34 tcurtis joined #parrot
02:35 janus joined #parrot
02:36 Coke it's helpful. =-)
02:36 Austin assign weirdness in "is"
02:37 Coke sanity.t is showing a different error.
02:37 Austin Where's that defined?
02:37 Coke lib/test_more.tcl
02:40 Coke it's in tcl.
02:41 atrodo joined #parrot
02:41 Austin Yeah, it's trying to assign a default value to an unspecified parameter.
02:41 Austin Why is it being evaled, though?
02:42 Coke why is what being eval'd. is?
02:42 Austin Yeah
02:42 Coke because It's being compiled?
02:42 Coke source "lib/test_more.tcl" reads in the tcl, compiles it to PIR, then compiles the PIR.
02:43 Austin Okay.
02:43 Coke I wonder if it's the list {special {}}
02:43 Austin It's description
02:43 Coke (the second, empty element looks suspicious.)
02:43 Coke given that you just changed list processing.
02:43 Austin Wait
02:43 Austin No
02:43 Coke (or {description ""}
02:43 Austin It's special
02:43 tcurtis I think I've gotten rid of the last uses of Parrot_string_cstring without breaking anything, although it might have a small performance penalty since Parrot_str_to_cstring copies, while Parrot_string_cstring doesn't.
02:43 Coke "" and {} are the same thing.
02:44 Austin Heh
02:44 Coke (well, after past)
02:44 Austin Except one of them is a list, right?
02:44 Austin Now, it's a blocked_something-or-other
02:44 Coke no, they're both strings. =-)
02:45 Coke things aren't lists unless you treat them like lists.
02:45 Coke so, /proc/ will take those and treat them like lists.
02:45 Coke but the tcl compiler will pass them as strings to the proc command.
02:45 Austin But doesn't the parser handle "" and {} differently?
02:45 Coke (unless pmichaud did something odd.)
02:45 Coke "" is like qq{}, {} is like q[}
02:45 Coke q{}
02:47 Coke so, yes, the parser does different things, but when the parser is done, that's still a string.
02:47 Coke if you look at the Grammar, you'll see that list is self contained - nothing else refers to it.
02:48 Coke (that's why we have .getList() all over the place, to coerce the strings.)
02:50 Austin Heh
02:50 Austin Not as independent as you think...
02:51 Coke it's tangled.
02:51 Coke ugh. feel crappy. later.
02:51 Coke ->
02:53 dalek TT #1539 created by tcurtis++: Remove deprecated Parrot_string_cstring function
02:53 dalek TT #1539: http://trac.parrot.org/parrot/ticket/1539
02:54 Patterner joined #parrot
02:56 Mokurai1 joined #parrot
03:11 hercynium joined #parrot
03:36 Coke joined #parrot
03:51 cotto Is anyone else seeing a t/compilers/imcc/syn/regressions.t failure?
03:51 dalek parrot: r45333 | bacek++ | branches/avl_string_cache:
03:51 dalek parrot: Branch to implement constant string caching described on FixingConstantSTRINGCaching wikipage
03:51 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45333/
03:56 bubaflub cotto: i reopened a ticket about that earlier
03:56 bubaflub l
03:56 bubaflub lemme fin dit
03:56 bubaflub *find it
03:56 bubaflub cotto: http://trac.parrot.org/parrot/ticket/641#comment:4
04:00 cotto Good for you.  bubaflub++.  Is that the first revision where that test fails?
04:02 bubaflub first that i noticed
04:02 bubaflub it can't be too many revisions before that; i usually build pretty regularly
04:02 bubaflub an
04:02 eternaleye joined #parrot
04:02 bubaflub d it may just be my compiler doesn't like it
04:03 bacek I can reproduce it on Linux/i386/g++
04:03 bacek not on gcc.
04:03 bubaflub Coke mentioned that as well
04:03 bubaflub though i'm on Mac OS X and gcc
04:05 cotto It is helpful if you can bisect when posting a bug though
04:06 bubaflub cotto: i've got some time, a svn and git-svn checkout.  what should i do?
04:06 bubaflub should i check out the revision that Coke mentioned in the ticket and then start bisceting from there?
04:09 bubaflub http://search.cpan.org/~infinoid/​App-SVN-Bisect-0.9/bin/svn-bisect looks useful
04:14 cotto That'd be a reasonable approach.
04:18 bubaflub cotto: i'll try to get to it tonight and update the ticket
04:21 Austin msg coke I've committed changes that appear to work - make test passes, t/cmd_lset.t passes. The problem with String vs. TclString is down in the PCT library, where it explicitly processes the type of the value given to PAST::Val nodes. To use TclString will require either setting "returns" parameters, or modifying the global type info hash. (Then there will be a different bug, natch...)
04:21 purl Message for coke stored.
04:26 bubaflub cotto: i just checked out and built the revision that Coke said he had it working in and it failed for me.  i'm updating the ticket.
04:39 Coke bubaflub: 0.9 is old.
04:39 bubaflub Coke: whoops.  first result in google.  i'll make sure to grab the newest
04:39 Coke Austin: don't forget to push.
04:39 bubaflub Coke: I also have a patch for TT #1534 (removing the svk developer support)
04:40 bubaflub it builds clean off trunk, make coretest doesn't report any extra failures
04:42 bubaflub Coke: there is also a note in the description of tools/dev/mk_manifest_and_skip.pl about how it works with svk 1.08 - do you want me to remove that as well?
04:45 eternaleye joined #parrot
04:48 dalek partcl-nqp: 7b351b9 | Austin_Hastings++ | src/Partcl/ (2 files):
04:48 dalek partcl-nqp: Fixed test failures introduced by lset mods.
04:48 dalek partcl-nqp: Signed-off-by: Austin Hastings <Austin_Hastings@Yahoo.com>
04:48 dalek partcl-nqp: review: http://github.com/partcl/partcl-nqp/commit​/7b351b92c6988595ce08bb15feecec2443c0312b
04:48 dalek partcl-nqp: 089e69c | Austin_Hastings++ | t/cmd_lset.t:
04:48 dalek partcl-nqp: Merge branch 'master' of github.com:partcl/partcl-nqp
04:48 dalek partcl-nqp: review: http://github.com/partcl/partcl-nqp/commit​/089e69c02a39af76a1f1355c4a5cc47b17643718
04:54 Coke bubaflub: yup.
04:54 bubaflub Coke: k, it's on 45334.  i've closed the ticket.
04:54 janus joined #parrot
04:55 Coke Austin++ # YAY
04:55 Coke bubaflub++ danke.
04:57 dalek parrot: r45334 | bubaflub++ | trunk (3 files):
04:57 dalek parrot: [TT #1534] remove svk developer support
04:57 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45334/
05:02 cotto Do we have a way for PIR code to get entropy?
05:02 * bacek scared...
05:03 cotto you down with entropy?
05:03 bacek make coretest just passed after first successful compilation of AVL based constant string cache...
05:04 dalek TT #1534 closed by bubaflub++: Remove svk developer support
05:04 dalek TT #1534: http://trac.parrot.org/parrot/ticket/1534
05:04 cotto nice
05:05 bacek make test passed...
05:05 cotto doubly nice
05:05 bacek I did miss something. It couldn't happen!
05:06 bacek Holy shit. It really works!
05:07 cotto It's nice using someone else's already-debugged code.
05:08 bacek We already reinvented quite few wheels. I think it enough.
05:09 bacek seen chromatic
05:09 purl chromatic was last seen on #parrot 7 hours, 22 minutes and 15 seconds ago, saying: Given the source of the memory bug, I half expect that the design of this system included the line "The resulting must resemble a shark when printed on a 132-column line printer at midnight under a full moon."
05:11 dukeleto wheels within wheels...
05:11 purl Wheels within wheels in a spiral array. A pattern so grand and complex. Time after time we lose sight of the way. Our causes can't see their effects.
05:13 dalek parrot: r45335 | bacek++ | branches/avl_string_cache (2 files):
05:13 dalek parrot: Copy AVL tree implementation.
05:13 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45335/
05:13 dalek parrot: r45336 | bacek++ | branches/avl_string_cache (2 files):
05:13 dalek parrot: Initial implemenation of string cache based on AVL tree
05:13 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45336/
05:19 Mokurai1 joined #parrot
05:20 Coke Austin: you still in?
05:21 Coke I ported over [lreplace]
05:22 dalek partcl-nqp: 2393e1a | Coke++ |  (2 files):
05:22 dalek partcl-nqp: run t/cmd_list.t in 'make test', marking the few failures todo.
05:22 dalek partcl-nqp: review: http://github.com/partcl/partcl-nqp/commit​/2393e1a06aea62432b7e55303692bbcfa39ea783
05:22 dalek partcl-nqp: 8f342db | Coke++ |  (2 files):
05:22 dalek partcl-nqp: Add [lreplace], based on partcl's PIR version but in NQP.
05:22 dalek partcl-nqp: All tests pass, enable the test file.
05:22 dalek partcl-nqp: review: http://github.com/partcl/partcl-nqp/commit​/8f342db2cdc98444290fa7d022135878125fad2a
05:46 bacek msg chromatic to you have any benchmarks for "string cache"?
05:46 purl Message for chromatic stored.
05:48 dalek parrot: r45337 | cotto++ | trunk/runtime/parrot/librar​y/ProfTest/PIRProfile.nqp:
05:48 dalek parrot: [proftest] use more generic, if predictable, temp files
05:48 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45337/
05:48 dalek parrot: r45338 | bacek++ | branches/avl_string_cache (3 files):
05:48 dalek parrot: Create function str_new_constant_ex (due lack of imagination for better name) to create new constant STRING with provided charset and encoding
05:48 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45338/
05:48 dalek parrot: r45339 | bacek++ | branches/avl_string_cache/src/string/api.c:
05:48 dalek parrot: Finish string_node_compare implementation.
05:48 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45339/
05:52 parthm joined #parrot
05:53 parthm left #parrot
05:53 cotto What's p6regex for a 0-width negative assertion?
05:54 cotto or positive
06:09 bacek cotto: <?before>?
06:11 uniejo joined #parrot
06:11 cotto That kinda did what I wanted, but it's too late for me to be writing regexes.
06:12 cotto It's better to understand what I'm doing than to throw stuff at the compiler and see if it magically works.
06:14 cotto night
06:14 cotto happy avl tree hacking
06:16 bacek good night, cotto
06:19 bacek msg chromatic AVL string cache is kinda done. Feel free to measure performance :)
06:19 purl Message for chromatic stored.
06:20 AndyA joined #parrot
06:21 dalek parrot: r45340 | bacek++ | branches/avl_string_cache/src/string/api.c:
06:21 dalek parrot: Use fixed size allocator for AVL nodes.
06:21 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45340/
06:21 dalek parrot: r45341 | bacek++ | branches/avl_string_cache/src/packfile/pf_items.c:
06:21 dalek parrot: Fetch strings from PBC using new constant string cache.
06:21 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45341/
06:46 plobsing joined #parrot
06:59 iblechbot joined #parrot
07:23 cotto joined #parrot
07:26 snarkyboojum left #parrot
07:27 dalek parrot: r45342 | bacek++ | branches/avl_string_cache (3 files):
07:27 dalek parrot: Made string_node_compare non-static
07:27 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45342/
07:27 dalek parrot: r45343 | bacek++ | branches/avl_string_cache (2 files):
07:27 dalek parrot: Swap old const string hash with new AVL cache in interpeter
07:27 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45343/
07:31 fperrad joined #parrot
07:37 riffraff joined #parrot
07:48 jjore joined #parrot
07:49 dalek rakudo: a33fc9f | moritz++ | t/spectest.data:
07:49 dalek rakudo: two more passing test files
07:49 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​33fc9f5e1411953cffb4667d744c63cddd16f74
08:06 sorear Is there a defined protocol for /loading/ language support?
08:06 bacek joined #parrot
08:06 sorear i.e. if pir::compreg__PS("tcl") fails, should I, say, pir::load_bytecode("tcl")?
08:08 sorear (hello bacek)
08:08 bacek aloha sorear
08:11 payload joined #parrot
08:14 dalek rakudo: a0fe385 | moritz++ | t/spectest.data:
08:14 dalek rakudo: we pass undef.t
08:14 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​0fe3850417e4cf39b198b96c0b4e6e32c79d66d
08:16 payload1 joined #parrot
08:18 dalek parrot: r45344 | bacek++ | branches/avl_string_cache/src/string/api.c:
08:18 dalek parrot: Always allocate new string constant from root interpreter. Fix crash when new constant allocated from thread-specific interpreter.
08:18 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45344/
08:22 AndyA joined #parrot
08:26 snarkyboojum joined #parrot
08:26 payload joined #parrot
08:28 eternaleye joined #parrot
08:34 cognominal joined #parrot
08:34 dalek parrot: r45345 | bacek++ | branches/avl_string_cache (2 files):
08:34 dalek parrot: Fix couple of codetest failures
08:34 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45345/
09:01 eternaleye joined #parrot
09:10 riffraff joined #parrot
09:25 clinton joined #parrot
09:33 sorear Do I currently have carte blanche to redesign PDD-31 as necessary for seamless P5-P6 integration?
09:33 sorear I'm not sure to what extent I'm the only one working on cross-language issues
09:36 janus joined #parrot
09:44 bacek joined #parrot
09:51 payload joined #parrot
09:56 estrabd joined #parrot
09:57 * sorear pokes Tene
10:07 payload joined #parrot
10:45 dalek parrot: r45346 | mikehh++ | trunk/tools/dev/mk_manifest_and_skip.pl:
10:45 dalek parrot: fix codetest failure - trailing whitespace - copyright and shebang line
10:45 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45346/
10:45 dalek parrot: r45347 | mikehh++ | trunk/src/pmc/complex.pmc:
10:46 dalek parrot: fix codetest failure - assert args and linelength - src/pmc/complex.pmc
10:46 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45347/
11:01 dalek parrot: r45348 | mikehh++ | trunk/src/pmc/hashiterator.pmc:
11:01 dalek parrot: fix codetest failure - assert args - src/pmc/hashiterator.pmc
11:01 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45348/
11:01 dalek parrot: r45349 | mikehh++ | trunk/src/pmc/default.pmc:
11:02 dalek parrot: fix codetest failure - assert args - src/pmc/default.pmc
11:02 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45349/
11:12 Coke joined #parrot
11:19 dalek parrot: r45350 | mikehh++ | trunk/src/pmc/bigint.pmc:
11:19 dalek parrot: fix codetest failure - assert args - src/pmc/bigint.pmc
11:19 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45350/
11:19 dalek parrot: r45351 | mikehh++ | trunk/src/pmc/default.pmc:
11:19 dalek parrot: fix codetest failure - assert args - src/pmc/default.pmc
11:19 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45351/
11:31 estrabd joined #parrot
11:37 cotto joined #parrot
11:41 estrabd_ joined #parrot
11:45 bacek mikehh, ping
11:47 bacek msg mikehh if you have time can you test avl_string_cache branch? Something like amd64/g++ will be helpful
11:47 purl Message for mikehh stored.
11:49 mikehh bacek: ok will do
11:49 bacek mikehh, thanks
11:50 iblechbot joined #parrot
11:51 bacek Enough for today.
11:51 bacek See you tomorrow!
11:52 dalek parrot: r45352 | bacek++ | branches/avl_string_cache/​include/parrot/avl_tree.h:
11:52 dalek parrot: Reformat AVL tree code.
11:52 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45352/
11:52 dalek parrot: r45353 | bacek++ | branches/avl_string_cache/​include/parrot/avl_tree.h:
11:52 dalek parrot: Simplify and restyle AVL code.
11:52 dalek parrot:   - Drop redundant ##field into mangled names. We can't have more-than-one-tree per node.
11:52 dalek parrot:   - Reindent according to Parrot codestyle.
11:52 dalek parrot:   - Small optimization to avoid second call to compare() during lookups.
11:52 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45353/
11:52 dalek parrot: r45354 | bacek++ | branches/avl_string_cache/co​nfig/gen/makefiles/root.in:
11:52 dalek parrot: Add avl_tree.h into string/api.c dependencies.
11:52 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45354/
11:52 dalek parrot: r45355 | bacek++ | branches/avl_string_cache/​include/parrot/avl_tree.h:
11:52 dalek parrot: More codestd restyling of AVL tree.
11:52 whiteknight joined #parrot
11:52 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45355/
11:53 bluescreen joined #parrot
11:54 mikehh codetest failure - t/codingstd/pir_code_coda.t - for file t/profiling/profiling.t which is in fact nqp so the test is wrong
11:54 mikehh all other tests PASS (pre/post-config, make corevm/make coretest, smoke (#32943), fulltest) at r45351 - Ubuntu 9.10 amd64 (g++ with --optimize)
12:04 * mikehh just updated llvm - it's at r100001
12:17 ruoso joined #parrot
12:30 whiteknight good morning #parrot
12:36 arnsholt Morning whiteknight
12:37 whiteknight hello arnsholt
12:43 dalek rakudo: 872898d | (Solomon Foster)++ | src/core/ (6 files):
12:43 dalek rakudo: Move all Real versions of .abs to Real.abs, remove "multi" from all .abs definitions.
12:43 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​72898d77111d8a96ebaeb2020e268c5b0ba1b12
12:45 mikehh bacek: looks good - some codetest failures with include/parrot/avl_tree.h - others fixed in trunk except the one reported above but other tests PASS
12:48 mikehh bacek: pre/post-config, corevm/coretest, smoke (#32945) fulltest except as noted above
12:54 lucian joined #parrot
12:54 mikehh /msg bacek
12:54 mikehh avl_string_cache branch:
12:54 mikehh some codetest failures with include/parrot/avl_tree.h (and distro_tests)) - others fixed in trunk
12:54 mikehh all other tests PASS (pre/post-config, make corevm/make coretest, smoke (#32945), fulltest) at r45355 - Ubuntu 9.10 amd64 (g++ with --optimize)
12:56 mikehh dammit
12:56 mikehh msg bacek - avl_string_cache branch: some codetest failures with include/parrot/avl_tree.h (and distro_tests)) - others fixed in trunk - otherwise all other tests PASS (pre/post-config, make corevm/make coretest, smoke (#32945), fulltest) at r45355 - Ubuntu 9.10 amd64 (g++ with --optimize)
12:56 purl Message for bacek stored.
13:04 tetragon joined #parrot
13:04 eternaleye joined #parrot
13:10 GodFather joined #parrot
13:17 PerlJam joined #parrot
13:23 whiteknight the only part I dislike about the GSoC program is the infuriating mailing list
13:24 moritz whiteknight: you don't have to read that
13:24 moritz whiteknight: luckily it's enough if the program admins read it
13:24 whiteknight I try not to anymore, but it still comes to my inbox
13:25 Coke whiteknight: I tend to mute any of the long running conversations.
13:25 whiteknight I'm going to tell gmail to redirect all those emails to the damn trash
13:25 Coke like "HI MY NAME IS WILL AND I'm HAPPY TO BE A MENTOR THIS YEAR. WHO ARE YOU!?"
13:25 Coke perhaps I'm too antisocial.
13:25 whiteknight or the ones I'm getting this morning "How to be student? Thanks!
13:28 Coke I don't mind people asking questions. I mind the jerks who pile on.
13:28 Coke you can answer the question and redirect. Don't just say "google it, jerkface."
13:28 whiteknight it takes a certain ignorance of mailing lists to spam everybody with questions that blatantly don't belong
13:29 atrodo joined #parrot
13:30 whiteknight ...and to spam the same absurd questions to the list several times
13:39 khairul joined #parrot
13:47 dalek parrot: r45356 | mikehh++ | branches/avl_string_cache/​include/parrot/avl_tree.h:
13:47 dalek parrot: parrot copyright and Id and svn properties
13:47 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45356/
13:48 dalek parrot: r45357 | mikehh++ | branches/avl_string_cache/t/codingstd/copyright.t:
13:48 dalek parrot: add permitted duplicate copyright for include/parrot/avl_tree.h
13:48 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45357/
14:26 Andy joined #parrot
14:28 bubaflub joined #parrot
14:34 Coke I'm looking at the GSOC proposal for the instrumentation; how is this output different from ... hey. where did 'parrot -p' go?
14:35 Coke (and why is it still listed as an option if it's been removed.)
14:35 Coke cotto, was that you?
14:36 * Coke wonders how to google for the literal -p
14:47 cotto ?
14:47 cotto What does/did -p do?
14:48 Coke cotto: generated profiling output based on opcode.
14:48 Coke looked very much like the proof of concept that the GSOC student submitted.
14:48 Coke "this opcode was invoked N times", that sort of thing.
14:48 Coke wondering if you ripped it out when you added the callgrindy profiling.
14:48 pmichaud joined #parrot
14:49 mikehh Coke, cotto: how are you on unwrapped macro arguments - include/parrot/avl_tree.h in avl_string_cache branch has a bunch (struct oriented etc.)
14:49 Coke mikehh: I think enforcing coding standards on a file we're copying from another repo is silly.
14:50 mikehh Coke: yeah I thought of that
14:50 Coke (unless we're forking it.)
14:50 mikehh well it has changed - Parrot stuff
14:51 khairul hi Coke, I'm the student who wrote that proposal.
14:51 khairul what i intended to do with the proof is to see if i can intercept and inspect the instructions.
14:51 khairul that was the simplest thing that i could think of at that time.
14:51 Coke khairul: hio.
14:51 theory joined #parrot
14:52 cotto I do recall ripping something like that out.
14:52 Coke khairul: I figured that it wasn't the final product. It just made me wonder where the old version of that particular item went.
14:52 Coke looks like the short help still refers to -p as a valid option, that probably needs to be cleaned up.
14:52 cotto chromatic and I didn't see it as being particularly valuable for debugging/profiling.
14:56 patspam joined #parrot
15:02 Coke nope. sub level was much more interesting to me, for sure.
15:05 davidfetter joined #parrot
15:06 davidfetter joined #parrot
15:31 jjore joined #parrot
15:36 cotto_work joined #parrot
15:37 tewk Coke, do you know how to silence "warning: function returns address of local variable" for a specific function in GCC?
15:45 atrodo you don't want to silence it, you want to fix it
15:51 atrodo if i remember correctly, your return value is a pointer, but the value you're returning is a local variable on the stack, not a pointer.  If you end up calling anything between the return and using the result, unpredicted stuff can happen since the stack could have changed
15:54 tewk atrodo, I know what I'm doing.  I actually fixed it by putting it on a separate line.  It was already casted, but gcc somehow ignored the cast on the return line in the static analysis.
15:54 tewk atrodo, taking the address of a stack variable is one way finding out the stack depth when doing vm and gc work.
15:54 atrodo tewk> Alright.  I just have bad flashbacks of that error
15:55 atrodo tewk> Ah, makes perfect sense
15:58 NotFound tewk: casting casts the type. Being localy declared isn't a type.
15:58 tewk atrodo, for the normal programmer doing typical coding that warning can be disastrous.
16:00 atrodo tewk> Aye, it was.  very very disastrous.  We had ignored it for years in one version of gcc with no ill effects.  Recompiled with a new version and stuff stopped working.  Not fun.
16:07 estrabd joined #parrot
16:08 cotto joined #parrot
16:23 whiteknight tewk: cast the pointer to size_t and return that
16:23 tewk whiteknight, thats what I did. but I had to do the cast in a distinct statement from the return to get rid of the warning.
16:23 whiteknight ok
16:27 whiteknight it's my experience that silencing compiler warnings, even the well-intentioned "best practices" ones can require some of the most esoteric knowledge and crafty ninja coding
16:28 whiteknight ironically, silencing the warnings can make the code more nuanced, and harder to read/maintain
16:31 hercynium joined #parrot
16:31 tewk Maybe gcc has some attribute to turn it off I just don't know which, turning off a warning (with a comment) adds info and documentation as to why this code is special and how it might be refactored in the future as compilers get smarter.
16:31 NotFound whiteknight: but the bugs and problem inexistent because warning prevented are invisible.
16:32 whiteknight NotFound: this is true. I don't argue with that
16:38 payload joined #parrot
16:56 darbelo joined #parrot
17:12 Coke tewk: IANACP. =-)
17:13 tewk Coke, but, You have recently been knighted as the keeper of C compiler warnings :)
17:13 Mokurai1 joined #parrot
17:13 tewk Coke, I figured it out though
17:16 Coke tewk++
17:20 moritz I have a patch here that removes the 'non-existent' from the auld 'Could not find non-existent sub %s' message
17:20 moritz any objections to applying it?
17:23 PerlJam moritz: ask forgiveness rather than permission  :)
17:23 whiteknight moritz: +1 from me
17:24 moritz pushed.
17:24 dalek parrot: r45358 | moritz++ | trunk (2 files):
17:24 dalek parrot: Remove the "non-existant" part of error messages for not finding a sub
17:24 dalek parrot: The double negation is just confusing, and it's factually incorrect: the sub
17:24 dalek parrot: might exist, just in a different scope.
17:24 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45358/
17:43 joeri joined #parrot
17:45 davidfetter joined #parrot
17:47 iblechbot joined #parrot
17:54 Tene sorear: pong
17:55 Tene sorear: I'm currently dealing with moving to a new state.  I'll have plenty of time to work on it in the near future, but I'm very busy immediately.
17:59 Coke Tene: is it a good state? =-)
18:02 szbalint steady state?
18:13 treed Coke: I think so.
18:20 Tene Coke: Palo Alto, CA
18:21 Tene from SLC, UT
18:21 whiteknight tene: get a new job out there?
18:21 Tene whiteknight: Yeah.
18:21 whiteknight any place good?
18:21 Tene Same place that hired treed, and convinced him to move.
18:21 Coke PA, I'm guessing google?
18:22 Tene Nope.
18:22 Tene http://imvu.com/
18:22 treed Google is Mountain View
18:22 treed down the road
18:22 treed a better guess for PA would be Facebook
18:22 whiteknight oh nice, virtual porn
18:22 treed We're actually in the old Facebook offices.
18:22 treed whiteknight: If only.
18:22 treed If we had porn I might actually use it myself.
18:23 treed As it is, I have no need for 3D chat.
18:23 treed But the technology behind it is fun.
18:23 dukeleto Tene: starting a parrot cadre there?
18:23 Tene dukeleto: Hopefully. ;)
18:24 dukeleto Tene: imvu seems like a web-based second-life-kinda-thingy ?
18:24 treed dukeleto: Not web-based.
18:24 treed Downloadable client.
18:24 Tene but yeah, kinda like that
18:24 treed The big difference between SL and us is world persistence.
18:24 treed We don't have a big persistent world.
18:24 treed We do instances.
18:24 dukeleto treed: interesting
18:25 dukeleto treed: once everyone leaves a particular instance, it goes poof?
18:25 treed So you just start a room with whatever dressings you want (that you have in your inventory)
18:25 treed dukeleto: Yep.
18:25 * Tene AFK, driving in to last day at $oldjob
18:25 treed It's much more efficient.
18:25 treed We also have other things going on.
18:25 treed We sell music for instance.
18:26 dukeleto Tene: good luck!
18:26 purl You'll need it.
18:30 dalek parrot: r45359 | NotFound++ | trunk/src (2 files):
18:30 dalek parrot: move paths initialization from environmental vars experimental feature from parrot main executable to interpreter initialization in library
18:30 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45359/
18:39 ash_ joined #parrot
18:42 * Coke tricks out his bash prompt so it shows (svn:^/trunk) or (svn:^/branches/foo) for parrot dev.
18:45 davidfetter pmichaud, around?
18:55 whiteknight Coke: my prompt always shows svn:rev or git:branch
18:56 atrodo what magic incantations do you do to make that happen?
19:00 nopaste "coke" at 72.228.52.192 pasted "extra prompty goodness" (23 lines) at http://nopaste.snit.ch/20149
19:00 whiteknight a script to call svn info and set the prompt using the information there. Then a series of command aliases for the svn commands that call __update_prompt on every change
19:02 whiteknight Coke: fancy-schmance
19:03 darbelo Pretty colors and all-
19:03 atrodo Coke> i am impressed
19:05 Coke danke. got basic versions via google and cleaned it up.
19:06 whiteknight ssssh! Don't give away the secret!
19:09 whiteknight I guess I wasn't aware that $PS1 would get evaluated each time
19:09 Austin Also, command substitution.
19:10 Austin Coke: The parse_git_branch function is a little weird if there's more than one branch. You probably want sed -ne 's/.../p'
19:11 bacek joined #parrot
19:14 whiteknight oh snap. This crap works
19:14 whiteknight this is going to simplify some of my scripts significantly
19:19 Mokurai joined #parrot
19:19 Mokurai1 joined #parrot
19:19 Coke Austin: how can you have more than one branch at a time?
19:20 Coke (hint: 99.99% of the time, that says (git:master) for me. =-)
19:20 Austin Coke: it's easy.
19:20 brooksbp joined #parrot
19:21 Coke Austin: it's easy is one of those "i'm lying to you" trigger phrases. ^_^
19:21 Austin Not for me.
19:21 brooksbp Parrot operates on CPS, correct?
19:21 Austin One of the whole points of git is that it's cheap and easy to create a branch, do your thing, and then re-merge.
19:21 Austin So your local repo can easily have n>1 branches.
19:22 Austin Your working directory will only be "on" one of those branches - that's why the sed script looks for the literal '*' character.
19:22 Austin But git branch lists all of them...
19:24 whiteknight brooksbp: yes
19:24 whiteknight brooksbp: and it's mostly correct now too
19:26 Coke Austin: I thought the * indicated the current branch, no?
19:26 Austin Right
19:26 brooksbp Why was CPS chosen?
19:27 brooksbp for optimizations?
19:27 Coke Austin: OIC.
19:27 whiteknight brooksbp: It's necessary for some of the dynamic languages we want to support
19:27 Austin Coke: but by default sed passes through any lines that don't match. So if "git branch" prints "branch1 \n branch2 \n * branch3"
19:27 Coke yes, good catch.
19:27 Austin You'll get 3 lines of output
19:27 whiteknight plus, it has some cool features, and lots of optimization potential
19:27 Coke I didn't happen to test that. fixed.
19:28 Austin Score one for the SCM nerd...
19:28 brooksbp whiteknight: has anyone working on Parrot checked out control flow analysis work?  Stuff by Olin Shivers or Matt Might
19:28 whiteknight brooksbp: sort of, but nothing implemented
19:30 whiteknight brooksbp: I could use a refresher, have any papers in particular that you recommend?
19:30 brooksbp whiteknight: does Parrot do variable & dead code elimation?
19:30 whiteknight not currently. We perform very few optimizations
19:30 brooksbp I'm currently reading Control Flow Analysis in Scheme by Olin Shivers.  Great stuff
19:30 Austin In case anyone cares, the state of New Jersey is giving rebates to people who purchase certain types of household appliances during the month of April, while funds last. Typically, these include refrigerators, hot water heaters, dish and clothes washers. (There may be others.) *Other states* will be doing this, possibly at different times. It's part of a federal stimulus package - a sort of...
19:31 Austin ..."cash for clunkers" program for appliances.
19:31 brooksbp But CPS is crucial to all these analyses 0CFA, kCFA
19:31 Coke actually, I think IMCC does do dead code elimination.
19:32 brooksbp There's also Control Flow Analysis of Functional Programs by Jan Midtgaard (good overview of techniques)
19:32 whiteknight damnit, eventually I'm going to need to get a damn ACM subscription
19:33 brooksbp there are PDF copies floating around.  I believe Citeseerx has all these papers
19:33 Coke (if it does it's in "compilers/imcc/optimizer.c")
19:33 Austin Whiteknight: probably not. The ACM/citeseer "let's get in the way and charge money" scam is being effectively destroyed by the internet. Google is your friend.
19:34 whiteknight Austin: Yeah, I'll find a copy of it eventually.
19:34 whiteknight Coke: the stuff in compilers/imcc/optimizer.c is relatively light and I don't think it's used very often
19:34 ash_ whiteknight: if you know who its by you could always ask if they'd donate a copy of the article to your cause, some people would probably be fine with sending you a pdf of the article
19:35 Coke yah, pbc_disassemble shows it's not optimized out. (but parrot -O does shuffle things a bit.)
19:35 Coke also, allison has said in the past she'd get people copies of papers, IIRC.
19:37 whiteknight ash_: I can get things through google too. My desire to follow the "rules" doesn't extend very deep
19:38 whiteknight Coke: yes, allison has gotten me copies of things before
19:38 whiteknight I have a whole pile of papers at home that I read and re-read
19:40 bacek ~~
19:41 whiteknight hello bacek
19:41 bacek morning whiteknight
19:42 payload joined #parrot
19:43 whiteknight brooksbp: Parrot definitely needs optimizations though. We have a handful but we need a lot more
19:44 whiteknight And we need them at multiple levels. We need them at the assembler level, but we also need tree optimizers for PAST
19:45 ash_ whiteknight: maybe I could add that to my GSoC proposal? work on AST optimizations for pir?
19:45 whiteknight ash_: What is your proposal?
19:46 ash_ whiteknight: mine was the llvm stack frame builder, but that doesn't sound like it will take me 11 weeks
19:46 whiteknight ash_: When I was a prospective student, particle gave me two options: AST optimizations, or GC. I asked which was more important at the time and they said GC
19:47 bacek Speaking of GSoC. We do need immutable strings early than end-of-gsoc. Before R*.
19:47 bacek For performance reasons.
19:47 whiteknight ash_: What if you instead create an optimized code-generating backend for PCT?
19:47 bluescreen joined #parrot
19:48 whiteknight ash_: be able to generate .PBC directly from PAST without using PIR/IMCC  as an intermediary
19:48 bacek ash_, I can probably help with optimizations. May be I still remember how to do it...
19:48 whiteknight ash_: and adding in optional optimization stages in between would be a nice touch that would fill time
19:48 bacek whiteknight, s/PAST/POST/
19:48 brooksbp whiteknight: can you provide a reference to what optimizations need to be worked on?
19:48 whiteknight bacek: well, he could be adding the stages that perform the optimizations in POST
19:49 whiteknight brooksbp: I don't have a list. start with "everything" and go from there.
19:49 bacek whiteknight, semantics of PAST is way too fuzzy.
19:49 whiteknight you mentioned dead-code elimination. constant folding might be nice but there will be some difficulties there. Global variable extraction may be nice
19:50 bacek brooksbp, even simple things like DCE, CF, etc will be good start
19:50 bacek anyway, time to go.
19:50 whiteknight later, bacek
19:50 bacek Catch you later.
19:50 ash_ i have the blue book and the dragon book, so i'll re-read those chapters on optimizations
19:50 whiteknight ash_: awesome
19:50 whiteknight we need a better register allocator too
19:50 bacek ash_, find Munchick (if I spell it correctly)
19:50 whiteknight though that's not exactly an optimization
19:51 bacek ash_, "Advanced Compilers Design and Implementation"
19:51 ash_ umm by PCT, do you mean the whole compiler toolkit or is there a specific place i'd be looking to work on? i don't know it that well
19:51 whiteknight I think one of the biggest optimizations we could add (though it would be a destructive optimization) would be elimination of unnecessary nested lexical scopes
19:51 whiteknight ash_: actually, it would mostly be in NQP-RX now
19:51 whiteknight I guess PCT has been superceeded by that
19:52 ash_ hmmm
19:52 ash_ okay, i can do that, lol, i am implementing my own version of nqp right now
19:52 whiteknight you will definitely want to get in touch with pmichaud if you're seriously considering this project
19:52 whiteknight even if you did nothing besides create a proper framework for adding optimizations and writing documentation for it, it would be a huge success
19:52 whiteknight PBC generation would be awesome too
19:53 ash_ so, specifically, the ability to generate a PBC directly from various formats (like .nqp to .pbc) would be a good goal
19:53 dalek parrot: r45360 | NotFound++ | trunk (2 files):
19:53 dalek parrot: fix FPA.init_int and add a test for it
19:53 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45360/
19:53 brooksbp hmmm so what optimizations does parrot do?
19:53 ash_ also, better code generation from nqp specifically, or from other areas? Would i need to do anything with pir's compiler?
19:55 whiteknight brooksbp: http://trac.parrot.org/parrot/brows​er/trunk/compilers/imcc/optimizer.c
19:55 whiteknight that's the complete list, as far as I knw, and not all of these may be currntly used
19:55 cotto_work imcc's optimizer is pretty broken.
19:56 ash_ whiteknight: i also have http://www.amazon.com/gp/produ​ct/0136067050/ref=oss_product "Crafting a Compiler" (formally "Crafting a Compiler with C", its a bit more generalized now, it talks about C and Java approaches)
19:57 whiteknight ash_: how is that book? I've browsed it but never bought
19:57 whiteknight cotto_work: yeah, that's my current understanding too
19:57 whiteknight we really don't have any optimizations
19:57 whiteknight Parrot really has two abstraction layers where optimizations can be inserted: At the HLL level (in NQP, and PAST), and at the PIR level (in IMCC/PIRC)
19:58 ash_ in some area's its more specific than the dragon book, as it gives more working examples, but i haven't seen anything it does that much better than the dragon book, but it does have good examples
19:58 whiteknight we don't really have any optimizations in either of those places
19:59 payload joined #parrot
20:00 TimToady phone
20:01 ash_ whiteknight: so most of the nqp improvements would be PAST level optimizations
20:01 davidfetter pesky gadget
20:01 whiteknight ash_: yes. Better PAST leads to less PIR
20:01 whiteknight and then better PIR leads to faster PBC
20:01 ash_ would it be useful to also work on imcc level improvements to?
20:01 whiteknight those are the two optimization levels
20:02 whiteknight ash_: Everything would be useful. You have to pick a project that you think you can do in a single summer
20:02 whiteknight ash_: it would be *very* easy to take more work than you can complete
20:03 ash_ kk, how would those kinds of improvements compare to the llvm based stack frame builder?
20:04 whiteknight ash_: Both projects have merits. The frame builder obviously should get rid of our NCI thunks and therefore reduce code size
20:04 whiteknight optimization stages for PAST would likely have a more immediate performance impact on HLLs, the frame builder would bring more flexibility to NCI-based projects
20:05 whiteknight send an email to the list asking for input, see what people think is best
20:06 ash_ kk
20:08 PerlJam Both!  ;)
20:10 PerlJam PAST optimization would be most useful IMHO as it could be immediately used by all HLLs that target parrot.
20:11 PerlJam NCI improvements could be immeidately used, but there aren't that many people doing NCI-ish things by comparison
20:12 NotFound PerlJam: fot all HLLs that use PAST
20:12 kurahaupo joined #parrot
20:13 whiteknight We do a lot of NCI internally to Parrot, but there are a limited number of signatures used internally, and the thunks necessary to support that are small and few
20:14 PerlJam NotFound: That's true, more and more are.
20:14 PerlJam I guess it really is a toss-up then.
20:14 whiteknight plus, replacing built-in thunks with dynamically-built frames trades off some performance, so it would actually be a net loss, in the short term, to move to compeltely llvm-based frame builds
20:14 PerlJam I'd still leant towards the PAST optimizations though
20:14 PerlJam s/leant/lean/
20:14 whiteknight anyway, I'm leaving. Later
20:17 cotto_work 4796565365/4860859864
20:17 purl 0.986773019424779
20:17 cotto_work 4796565365/4860859864/1
20:17 purl 0.986773019424779
20:18 cotto_work 1/4796565365/4860859864
20:18 purl 4.28900479773598e-20
20:19 Coke pmichaud++ # SQUEE
20:20 cotto_work What are you squeeing about?  Is his life back to normal?
20:22 Coke karma is good. =-)
20:22 purl is good. =-) has neutral karma
20:22 Coke purl, botdeath.
20:22 purl Coke: i'm not following you...
20:22 NotFound purl: Do you use twitter?
20:22 purl i don't know, notfound
20:25 chromatic joined #parrot
20:26 Coke cheese it, it's the chromatic.
20:26 davidfetter joined #parrot
20:26 chromatic Maybe I need a title like "Dean".
20:26 dalek parrot: r45361 | NotFound++ | trunk/src/interp/inter_misc.c:
20:26 dalek parrot: check for compreg hash PMC nullness, not for NULL, in Parrot_compreg
20:26 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45361/
20:26 dalek parrot: r45362 | NotFound++ | trunk/src/global_setup.c:
20:26 dalek parrot: shorten and fix iglobals initialization
20:26 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45362/
20:29 Coke reminder, last day to submit talks for YAPC::NA.
20:31 kurahaupo Vice chancellor chromatic ?
20:32 Coke you've disappointed me for the last time, Admiral chromatic.
20:32 atrodo Internally, I automatically say "chromatic, his holiness,"
20:32 NotFound Padisha Imperator
20:40 brooksbp_ joined #parrot
20:42 kurahaupo :w
20:42 chromatic Space Pope His Excellency
20:43 kurahaupo Your nondiatonicitousness
20:43 Austin I'd be a little leery of anything with "pope" in the title right now.
20:44 preflex joined #parrot
20:44 Austin You may find yourself in front of a judge in Kentucky trying to explain that you really didn't know anything about any child molestation, and besides, you're a head of state..
20:45 NotFound They can even add 'Abusing little parrots' to the list of sins
20:45 kurahaupo As a foreign head of state, don't you automatically get diplomatic immunity?
20:45 Austin kurahaupo: There's a whole bunch of things wrong with that question.
20:47 kurahaupo use humour_guard qw( applies_to => 'all mention of chromatic\'s title' );
20:47 Austin He's not accused of a crime, but wanted as a witness. He's not accused in criminal, but rather civil court. And he may not have been a head of state when the crimes were committed. Finally, diplomatic immunity generally applies to designated representatives operating in another country, which he isn't - especially relevant if the suit is civil.
20:47 Austin Heh
20:48 kurahaupo But if one fails to appear for a witness summons, that's a criminal matter ... from which one is immune, no?
20:48 Austin Nope.
20:49 kurahaupo argh. </politics>
20:49 Austin In the US, failure to appear isn't criminal.
20:49 Austin It's procedural.
20:49 kurahaupo So you can't be arrested for not appearing?
20:49 Austin You can be arrested, but it's a procedural matter - we're arresting you to force you to appear.
20:50 Austin There's some latin phrase that applies - appropriate, for a pope.
20:50 * kurahaupo wonders what "diplomatic immunity" is worth if it doesn't mean you're exempt from arrest
20:50 Austin But the courts turn a blind eye to how witnesses and criminals appear
20:50 chromatic Hostes alienigeni me abduxerunt?
20:51 PerlJam kurahaupo: it means you're immune from prosecution.
20:51 NotFound Even for bacteriae?
20:52 Austin Kura - diplomatic immunity is "good for" not being arrested for "crimes."
20:53 Austin And in general, failing to respect (grant immunity) a foreign representative is a bad idea.
20:53 Austin But when the Ukranian UN diplos in NYC got drunk and hit and killed a girl, they spent the night in jail.
20:53 Austin (And the next day they got put on an airplane...)
20:54 kurahaupo chromatic: what did you see while you were off-planet?
20:55 chromatic The Vorlon homeworld,  Patrick McGoohan was in charge.
20:56 kurahaupo Aah, so now you're just a number, not a man. How about 1.05946309435929526455 ?
20:56 kurahaupo (2^(1/12))
20:56 purl 2
20:57 kurahaupo (2**(1/12))
20:57 purl 1.0594630943593
21:03 jsut|work joined #parrot
21:03 jsut|werk joined #parrot
21:33 atrodo joined #parrot
21:57 Andy please confirm: src/dynpmc/*.pmc are going away?
22:03 dalek rakudo: 6a2e0ae | jonathan++ | src/ (2 files):
22:03 dalek rakudo: Lexical multis now incorporate outer candidates.
22:03 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​a2e0aee5a104f233ffc44f920674b9ec10661eb
22:03 dalek rakudo: 47ab4c2 | jonathan++ | t/spectest.data:
22:03 dalek rakudo: Turn S06-multi/lexical-multis.t back on.
22:03 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​7ab4c26dbed10674e98684c40210ea8eca9f55f
22:09 tcurtis joined #parrot
22:11 Mokurai1 joined #parrot
22:24 dalek parrot: r45363 | petdance++ | trunk/lib/Parrot/Ops2c/Utils.pm:
22:24 dalek parrot: protect the args passed into the generated funcs
22:24 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45363/
22:36 snarkyboojum joined #parrot
22:44 kid51 joined #parrot
22:57 tetragon joined #parrot
23:07 dalek rakudo: 7d00af1 | jonathan++ | src/Perl6/Grammar.pm:
23:07 dalek rakudo: Add the C++ constructor detection/error and a slightly simpler version of the Perl 5 regex modifier detection/error as per STD.
23:07 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​d00af180d9afa5b6be759e7bedde0463890968c
23:08 dalek parrot-plumage: f1708eb | japhb++ | Configure.nqp:
23:08 dalek parrot-plumage: [BUILD] Add extra trailing newline on final Configure message
23:08 dalek parrot-plumage: review: http://gitorious.org/parrot-plumage/parrot-plumag​e/commit/f1708ebd690b24dc83f922141101b51537395ed6
23:08 dalek parrot-plumage: c6347ce | japhb++ | src/plumage.nqp:
23:08 dalek parrot-plumage: [plumage] Apply slightly altered patch from fperrad++ to support PLUMAGE_HOME env var, especially useful on Windows
23:08 dalek parrot-plumage: review: http://gitorious.org/parrot-plumage/parrot-plumag​e/commit/c6347cec7172150b604a33ea3941c43b550ea8fc
23:18 TiMBuS joined #parrot
23:21 kurahaupo joined #parrot
23:30 kid51 I see our Smolder site is back to its old tricks:  HTTP CODE: 500 (read timeout)
23:43 jsut joined #parrot
23:44 allison Andy: only deprecated PMCs in src/dynpmc/*.pmc are going away
23:44 allison Andy: and we'll be adding some new ones
23:58 snarkyboojum joined #parrot

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

Parrot | source cross referenced