Camelia, the Perl 6 bug

IRC log for #parrot, 2009-11-06

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 darbelo plobsing: branching...
00:00 purl i think branching is weak compared to, say, perforce
00:00 plobsing purl forget branching
00:00 purl plobsing: I forgot branching
00:00 darbelo plobsing++
00:00 darbelo <purl-->
00:01 mokurai1 joined #parrot
00:01 dalek parrot: r42282 | darbelo++ | branches/libjit_frame_builder:
00:01 dalek parrot: Create a new branch for plobsing's work on the libjit frame builder. This supersedes the auto_libjit branch.
00:02 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42282/
00:08 dalek parrot: r42283 | darbelo++ | branches/libjit_frame_builder (8 files):
00:08 dalek parrot: Apply the patches from TT#1147 (update nci.pmc for pcc_reapply) to the new branch.
00:08 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42283/
00:08 dalek parrot: r42284 | darbelo++ | branches/libjit_frame_builder/NativeCall.pm:
00:09 dalek parrot: Oops. Forgot one file.
00:09 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42284/
00:09 chromatic Thanks, darbelo.
00:09 plobsing darebelo++
00:10 darbelo For forgeting the file? You are welcome.
00:10 darbelo Two more patches to go.
00:11 chromatic For applying the patches.
00:11 darbelo ;)
00:11 plobsing for making mistakes.
00:12 plobsing otherwise I'd asume you were a cleverly coded bot
00:12 plobsing ;-)
00:12 darbelo plobsing: I am.
00:12 japhb You know, I think nqp-rx demonstrates the "whirpool build method".  Maybe since it's building up it would be the "waterspout build method".
00:13 japhb er whirlpool
00:22 leto plobsing: just to let you know, i didn't forget about reviewing that branch, I just fell asleep last night. do you still need that review?
00:23 plobsing leto: that would be nice.
00:23 plobsing leto: btw, darbelo++ is applying this in a new branch in svn
00:26 calculus allison: my favorite person! ... I have a patch for you to make builds better on os x
00:26 Whiteknight in NQP, how do I get a handle to a Sub?
00:27 calculus it makes it so there is no need to call install_name_tool after installing and to build on 10.5
00:28 payload joined #parrot
00:28 dalek parrot: r42285 | darbelo++ | branches/libjit_frame_builder (23 files):
00:28 dalek parrot: Port over the auto_libjit changes into the new branch.
00:28 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42285/
00:29 darbelo plobsing: is it possible thatthe last patch in your series is reversed?
00:29 plobsing darbelo: quite possible.
00:29 plobsing darbelo: I'll get you a better one
00:29 payload joined #parrot
00:31 darbelo plobsing: no need to, just checking.
00:32 plobsing darbelo: looking at the git tree, that patch accidentally contains some commits to trunk
00:35 darbelo to PLATFORM, MANIFEST and ChangeLog ?
00:35 dalek parrot: r42286 | darbelo++ | branches/libjit_frame_buil​der/config/auto/libjit.pm:
00:35 dalek parrot: Another frgotten file.
00:35 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42286/
00:35 plobsing darbelo: nopasting
00:36 nopaste "plobsing" at 76.68.74.120 pasted "1st post_merge patch" (1267 lines) at http://nopaste.snit.ch/18585
00:36 nopaste "plobsing" at 76.68.74.120 pasted "2nd post_merge patch" (58 lines) at http://nopaste.snit.ch/18586
00:37 darbelo ok, I apply only the two nopastes?
00:37 plobsing those patches, applied in sequence excise the trunk commits (which probably already exist on the new branch)
00:37 allison calculus: how can I resist?!
00:37 plobsing darbelo: thats the plan
00:37 plobsing darbelo: they replace only post_merge.patch
00:37 darbelo plobsing: ok, I'm on it.
00:38 particle joined #parrot
00:38 allison calculus: can you submit it as a ticket? I'll look for it in the morning (midnight-ish here)
00:39 calculus allison: ok, http://pastebin.com/m5fdd8d7e
00:41 allison calculus: unfortunately, I'm running 10.6, so can't fully test it, but we can recruit others
00:41 allison calculus: it looks pretty safe
00:42 calculus allison: yeah, I have 10.5 and the compile flag -Wno-long-double does not exist, similar to 10.6
00:43 calculus other than that DYLD_LIBRARY_PATH works better as an absolute path and the install_name is the final destination location rather than the build location
00:45 allison calculus: makes sense. I'll test it on 10.6, and if we can get someone to test it on 10.4, I'm happy to go ahead and apply it
00:47 calculus allison: and to put a face to a name, I attended many of your parrot talks in the bay area and sat next you at the unconference
00:47 darbelo plobsing: Ok, I think I'm done. You should check that I didn't screw up too badly.
00:47 calculus :)
00:47 allison calculus: excellent, glad to see you here on #parrot :)
00:48 dalek parrot: r42287 | darbelo++ | branches/libjit_frame_builder (8 files):
00:48 dalek parrot: Fix errors after the merge.
00:48 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42287/
00:51 dalek parrot: r42288 | darbelo++ | branches/libjit_frame_builder (2 files):
00:51 dalek parrot: Fix MANIFEST.
00:51 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42288/
00:52 darbelo plobsing: Found two mistakes already. You should really check that I didn't screw up totally.
00:53 plobsing darbelo: looks like config/gen/libjit.pm got duped
00:55 darbelo duped?
00:55 dalek parrot: r42289 | darbelo++ | branches/libjit_frame_builde​r/lib/Parrot/NativeCall.pm:
00:55 * Coke gets missing deps down to 7.
00:55 dalek parrot: Move NativeCall.pm to the correct location.
00:55 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42289/
00:55 dalek parrot: r42290 | coke++ | trunk/config/gen/makefiles/root.in:
00:55 dalek parrot: Improve dependencies.
00:55 dalek parrot: - based on results of tools/dev/checkdepend.pl
00:55 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42290/
00:56 darbelo Anyways I gotta go now. msg me whith whatever you find and I'll fix it later.
00:58 dalek parrot: r42291 | coke++ | trunk/tools/dev/checkdepend.pl:
00:58 dalek parrot: sort by filename
00:58 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42291/
00:58 Whiteknight incoming
00:58 purl duck!
00:58 abqar joined #parrot
00:59 calculus goose!
01:00 dalek parrot-linear-algebra: 3edbb8a | Whiteknight++ | t/10-nummatrix.t:
01:00 dalek parrot-linear-algebra: add some tests
01:00 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/3edbb8a87dc862a6540631d2f5d6fec80cbd7d25
01:00 shorten dalek's url is at http://xrl.us/bf2zum
01:00 dalek parrot-linear-algebra: 382a6a9 | Whiteknight++ | src/pmc/nummatrix2d.pmc:
01:00 dalek parrot-linear-algebra: update iterate_method_inplace to pass the coordinates of the current element. Also, some other fixes that I can't remember
01:00 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/382a6a9f03ed1da7010bcfc185a49128199fe280
01:00 shorten dalek's url is at http://xrl.us/bf2zuo
01:00 dalek parrot-linear-algebra: 24b8b55 | Whiteknight++ | src/pmc/nummatrix2d.pmc:
01:01 dalek parrot-linear-algebra: Fix iterate_function_inplace to actually do the right thing without segfaulting
01:01 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/24b8b553f3106cd0402d3ac02337329ecdb8a435
01:01 shorten dalek's url is at http://xrl.us/bf2zuq
01:01 dalek parrot-linear-algebra: 66cde50 | Whiteknight++ | t/10-nummatrix.t:
01:01 dalek parrot-linear-algebra: add tests for iterate_function_inplace
01:01 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/66cde50560488c9b40150be4b694b3eb28d1022b
01:01 shorten dalek's url is at http://xrl.us/bf2zuy
01:01 Whiteknight hmmm, I thought it was more than that
01:03 leto looks like fixing this machine is going to take longer than I thought. hopefull the parrot github repo will be updating again in the morning
01:12 Coke joined #parrot
01:15 cotto_work dukeleto, what's the point of having a ro git repo for parrot?
01:16 calculus non committers can easily make patches and then ask for them to be committed to svn
01:16 dalek TT #1214 created by coke++: config/inter/charset.pm generates incorrect makefile deps
01:17 cotto_work ok.  So it's not so special for committers.
01:17 calculus at least from my view
01:19 Coke unless you REALLY like git.
01:21 dalek parrot: r42292 | coke++ | trunk/config/gen/makefiles/root.in:
01:21 dalek parrot: Fix one more dep
01:21 dalek parrot: - now only missing 6 .h deps, all a result of TT #1214
01:21 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42292/
01:22 chromatic Hooray for fewer spurious rebuilds!
01:24 Coke I think the remaining six are for non-generated files, so that will hopefully resolve the remaining -j issues.
01:26 cotto_work Coke, are you going to unskip the headers or is that intended to be permanent?
01:26 preflex joined #parrot
01:34 mokurai joined #parrot
01:35 Coke ?
01:36 payload joined #parrot
01:36 Coke you mean the skips in checkdepend?
01:37 plobsing msg darbelo I give up trying to find all the differences. Maybe 1 slightly larger patch would be easier? merge_complete.patch on TT1105 contains everything.
01:37 purl Message for darbelo stored.
01:41 * Coke wondes why we have two tables.h's
01:42 chromatic One for the adults and one for the kids.
01:44 Coke cotto_work: I'm only skipping those now because I'm not looking in the 'include' dir to find the file.
01:47 dukeleto cotto_work: it is not read-only
01:48 dukeleto cotto_work: anyone that has commit access to the parrot github repo can create branches and commit to whatever they want
01:48 dukeleto cotto_work: it is just understood that no one should commit to upstream or master, since it is a mirror
01:49 dukeleto cotto_work: but nothing is *currently* enforcing that
01:51 dukeleto and the github mirror is not being updated tonight, since my box died and I am still rebuilding it
01:59 eternaleye joined #parrot
02:11 dalek parrot-linear-algebra: b86fc16 | Whiteknight++ | src/pmc/nummatrix2d.pmc:
02:11 dalek parrot-linear-algebra: add a new interate_function method that creates a new matrix with the results
02:11 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/b86fc160aceaacd936cbef4f5221c58490b751cc
02:11 shorten dalek's url is at http://xrl.us/bf2z6u
02:31 kid51 joined #parrot
02:33 cotto dukeleto, right.  I meant read-only in the sense that without additional work, changes made to github parrot won't end up in a parrot release.
02:35 plobsing as I am finding out the hard way
02:36 cotto It seems that nuking the bitwise vtable functions will have to wait until the ops in bit.ops can be properly deprecated.
02:37 cotto unless "move to dynops" is a euphemism for delete.
02:39 chromatic If only.
02:39 cotto I suppose ops that throw exceptions are still ops.
02:40 cotto There's a possibility that'd break compatibility though.
02:40 dalek parrot: r42293 | jkeenan++ | trunk/t/steps/auto/gettext-01.t:
02:40 dalek parrot: Internal sub _handle_gettext() takes three arguments.  Correct tests to reflect this interface.
02:40 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42293/
02:40 dalek parrot: r42294 | jkeenan++ | trunk/config/gen/makefiles/root.in:
02:40 dalek parrot: Have 'make realclean() delete src/dynpmc/Makefile.  Cf.:  https://trac.parrot.org/parrot/ticket/1211.
02:40 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42294/
02:42 dalek TT #1211 closed by jkeenan++: make realclean doesn't remove src/dynpmc/Makefile
02:50 dalek parrot: r42295 | jkeenan++ | branches/convert_OSNAME/config/auto (7 files):
02:50 dalek parrot: Convert get_p5('OSNAME') to get('osname').
02:50 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42295/
02:50 dalek parrot: r42296 | cotto++ | trunk (2 files):
02:50 dalek parrot: [pmc] remove the unused type_keyed vtable function
02:50 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42296/
02:53 cotto what purpose does the scalar PMC serve?
02:53 chromatic I think it's only there so that other PMCs can 'does scalar'.
02:55 kid51 msg tetragon See https://trac.parrot.org/parrot/ticket/1203
02:55 purl Message for tetragon stored.
02:56 diakopter is a segfault a rakudo bug or a parrot bug
02:56 diakopter (could a segfault be a rakudo bug?)
02:56 chromatic Rakudo has its own C code, so it could be a Rakudo bug.
02:56 cotto rakudo has C so it could be, but it's probably parrot's
02:56 diakopter ok
02:56 chromatic *Usually* it's a Parrot bug though.
02:57 cotto parrot has a lot more C
02:57 diakopter ./perl6 -e 'subset Five of Any where { $_ = 5 }; say (Five.new = 4)'
02:57 diakopter :)
02:57 diakopter it came up b/c of this other (what I consider to be a) bug:
02:57 diakopter ./perl6 -e 'subset Five of Any where { $_ = 5 }; say (my Five $a = 4)'
02:57 diakopter 5
03:00 dalek parrot: r42297 | jkeenan++ | branches/configtests (33 files):
03:00 dalek parrot: Continue to convert steps tests to use of Parrot configuration data.  Some of these test files have failures or expose bugs for the first time.
03:00 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42297/
03:00 diakopter (the first segfaults on p6eval, which is amd64 linux parrot r42158 and rakudo latest)
03:01 Coke chromatic: 'does' doesn't need inheritance. Any ole thing can lie about 'does'
03:01 Coke Scalar is probably a holdover from ye Olde PerlSTuff.
03:03 chromatic Maybe, but I don't remember if we supported 'does' when Scalar first existed.
03:03 petdance joined #parrot
03:03 diakopter ok, that's weird.  it sometimes segfaults, and sometimes outputs 4.
03:04 diakopter oh. maybe a false alarm.  :) sorry.  it's possible rakudo (or parrot) was being rebuilt/cleaned at the time :D  sorry, again
03:05 Coke cotto: I think removing vtables probably breaks PBC_COMPAT
03:13 dukeleto cotto: yes, you are correct about that. it is a uni-directional mirror.
03:14 dukeleto cotto: the main use is a single place for people working on git branches to host them and ask for code reviews
03:21 plobsing dukeleto: speaking of github, can you update it? it seems a little stale
03:35 janus joined #parrot
03:39 dalek parrot: r42298 | jkeenan++ | branches/configtests/t/steps/auto/cpu-01.t:
03:39 dalek parrot: Continue to convert steps tests to use of Parrot configuration data.
03:39 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42298/
03:42 dalek parrot: r42299 | jkeenan++ | branches/configtests/config/auto/opengl.pm:
03:42 dalek parrot: Delete commented-out, superseded code.
03:42 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42299/
03:46 * japhb wonders who put that line in in the first place ....
04:02 dalek parrot: r42300 | jkeenan++ | branches/convert_OSNAME/config (2 files):
04:02 dalek parrot: Convert two configuration steps from 'get_p5('OSNAME')' to 'get('osname')'.
04:02 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42300/
04:05 * kid51 must sleep
04:05 purl $kid51->sleep(8 * 3600);
04:42 dukeleto 'ello
04:42 plobsing hi dukeleto
04:42 plobsing having patching problems
04:42 plobsing don't apply my previous patch yet
04:42 dukeleto plobsing: ruh roh
04:42 dukeleto plobsing: ok
04:42 plobsing oops sorry, wrong person
04:42 plobsing meant to talk to darbelo. maybe I should sleep...
04:51 plobsing msg darbelo I found some small problems with the lumped patch. tweaked a bit, attached another file
04:51 purl Message for darbelo stored.
04:51 plobsing time for sleep
05:16 pmichaud_ chromatic: ping
05:18 chromatic pong
05:23 pmichaud allison says we can add vivify, but to check with you first
05:23 pmichaud specifically about the code duplication
05:24 chromatic ops files have PREAMBLE sections, so I can put a static function up there to abstract it out.  That should work.
05:24 pmichaud I don't see a good way around it -- I propose to add some text to vivify and fetch that says "we know theres code duplication here, we ought to get rid of it"
05:24 pmichaud it doesn't quite work
05:24 pmichaud at least, it didn't when I tried it
05:24 chromatic The PREAMBLE section doesn't?
05:24 pmichaud the separating it into a function.  somehow you have to return dest
05:24 pmichaud or return next, or whatever gets returned in the exception part of the if
05:25 pmichaud I suppose it could work by returning null if the object creation failed, and key off of that
05:25 pmichaud (the PREAMBLE itself works fine)
05:26 chromatic I think I can make that work, but the duplication isn't a blocker for me to adding the opcodes now.
05:26 pmichaud okay
05:26 pmichaud I was thinking we might add some text to the file that says "we know there's ugly code duplication here, it really ought to be fixed"  and maybe a ticket or pointer to it somewhere so it doesn't get lost
05:27 chromatic +1 here
05:27 pmichaud +1 to the text, or to filing a ticket, or ... ?
05:27 chromatic Do you want me to add them, based on your tests, or did you have a nopaste with the code in them?
05:27 chromatic +1 text and ticket
05:27 pmichaud I had a nopaste ... I think I can dig it up.  Just a sec
05:28 pmichaud http://nopaste.snit.ch/18535
05:29 pmichaud I can apply if you wish me to do it.  I'm going to bed soon but could really use this in the (possibly early) morning
05:29 chromatic I should be able to get to that later tonight.
05:29 chromatic It's only 9:30 here.  Do you have tests somewhere, or should I modify the ones from fetch.t?
05:29 pmichaud that would be great.  if you're unable to do it for some reason, I'll go ahead and do it tomorrow and you can correct it
05:30 pmichaud I have tests.
05:30 pmichaud posting
05:32 nopaste "pmichaud" at 72.181.176.220 pasted "vivify.t - tests for vivify opcodes" (138 lines) at http://nopaste.snit.ch/18587
05:32 pmichaud I'm not sure I ever got around to running the code with the tests yet.... so the tests might have an error or two in them (I doubt it but I could've easily typoed something)
05:32 Tene I read "pointer" as "phone number", and went off on a little confused "Trac has a telephone interface now?" tangent for a bit.
05:33 pmichaud 1-800-BUG-GONE
05:33 chromatic I'll make sure everything works before I commit.
05:33 pmichaud thanks
05:33 chromatic 912
05:33 * Tene way too incoherent for following any discussion; leaves again.
05:33 pmichaud if bacek is around, I also have a task for which he'd be uniquely suited.
05:33 chromatic Not even a Stonecutters reference?  For shame.
05:33 pmichaud last I checked there's not a way to iterate over the entries in a LexPad
05:34 pmichaud since he's recently refactored Hash and iterators, having a mechanism to iterate over a LexPad would be a big help to getting a working REPL (for all HLLs)
05:35 chromatic Does the standard iteration mechanism work as an interface for that?
05:35 pmichaud I don't quite understand the question (more)
05:35 pmichaud LexPads are not subclass of Hash, they do support the set_pmc_keyed interfaces
05:35 pmichaud so no, a standard Hash iterator did not work previously
05:36 pmichaud I'm not sure about current Parrot
05:36 pmichaud wait, let's do this a different way
05:36 chromatic If they had the same interface as a Hash iterator, would you find that useful?
05:36 pmichaud Ideally I'd like to be able to simply iterate over a LexPad in the same way I do with other Hash objects, i.e.   $P0 = iter lexpad;  $P1 = shift $P0 ... etc.
05:37 pmichaud so the answer to your question is yes
05:37 pmichaud however
05:37 pmichaud let me write the tests first, and then we can pass that to bacek
05:37 chromatic Sounds good.
05:37 purl it has been said that Sounds good. is there a good way for me to find out when branches are merged, other than read every svn commit?
05:37 chromatic purl, forget Sounds good.
05:37 purl chromatic, I didn't have anything matching sounds good
05:37 chromatic purl, forget Sounds good
05:37 purl chromatic, I didn't have anything matching sounds good
05:37 pmichaud where should I post the tests or this request?
05:38 chromatic I think you can leave a message with purl, especially if it has a nopaste url.
05:38 pmichaud trac?  wiki?  parrot-dev?
05:38 pmichaud I can do it with purl
05:38 pmichaud and nopaste
05:38 pmichaud thanks a bunch.
05:38 chromatic This is a small and obvious enough feature that there's no question of its utility.
05:38 pmichaud right.  and having a working REPL would be nice for a change
05:39 chromatic Definitely a plus.  Following an existing interface (the way we iterate over Hash) is a bonus too.
05:39 pmichaud inability to iterate over a lexpad is what has blocked me from doing a good repl in the first place
05:39 pmichaud I wonder where the rt ticket went for that... :)
05:40 * pmichaud searches
05:40 chromatic I didn't see it when I blazed through like General Sherman last night.
05:41 pmichaud oh, hot dog
05:41 pmichaud Coke++
05:41 pmichaud originally it was  RT #40156
05:41 pmichaud it's now TT #1028
05:43 pmichaud apparently there's already a (TODO) test for DynLexPad
05:44 pmichaud I'll write one for LexPad as well.
05:44 pmichaud new ticket, or attach to TT #1028 (since they're different PMCs?)
05:44 chromatic One moment.
05:46 chromatic They have no connection to each other, so a separate ticket is probably best.
05:46 chromatic I thought if DynLexPad subclassed LexPad, we might be able to get away with sharing... but no such luck.
05:46 pmichaud and they're radically different
05:46 pmichaud DynLexPad might be able to be modified to subclass Hash
05:47 pmichaud that would make better sense, if it can be done
05:47 pmichaud Because of the way LexPad maps to pmc registers held in a context, I'm less certain it could subclass Hash.  But it should support the same iterator interface
05:48 chromatic I'm not worried about the hierarchy there right now.  I just thought we might be able to get both of them for the same work.  Unfortunately not.
05:49 pmichaud okay.  I'm a bit tired tonight so I think I'll have to write the test tomorrow morning.  I know that misses bacek's timeframe but I can wait a short while for this
05:49 chromatic He might backlog and magically do it anyway.
05:50 pmichaud since TT #1028 already has tests, it would be good for him to go ahead and resolve that one, if he can.  It's a tcl blocker.
05:51 pmichaud purl:  message bacek since you're our iterator guru, any chance you could resolve TT #1028 for tcl?
05:51 purl Message for bacek stored.
05:52 pmichaud purl:  message bacek  I'd also like to be able to iterate LexPad PMCs (to support a better HLL REPL), although that will require some different code.  I'll make a separate ticket and some LexPad iterator tests soon.  Thanks!
05:52 purl Message for bacek stored.
05:52 pmichaud chromatic: okay, thanks for your quick responses
05:52 pmichaud time for rest here.
05:52 chromatic You're welcome; that's why I'm here.  That, and I was typing, not eating ice cream.
05:53 pmichaud .oO ( What does ice cream have to do with it?  I missed a reference.  Darn dangling references always get me )
05:53 pmichaud :-)
05:54 chromatic I told myself I couldn't have any ice cream until I'd written 1200 words of fiction.  I was at 1130 when you pinged me.
05:54 pmichaud a-ha.  I had my ice cream already.
05:54 calculus is this the november competition for 50,000 word novel?
05:54 pmichaud I told myself I couldn't have any ice cream until I'd driven to the store to buy it.
05:55 chromatic Not this year.  I did that two years ago calculus, and I just received the first copy of that novel today, calculus.
05:55 chromatic This is a new novel I started a couple of months ago.  I hope to have it published sometime next year.
05:55 calculus chromatic: cool. my coworker is doing the competition this year
05:56 pmichaud good night all, thanks
05:56 chromatic 1667 words a day is quite a bit, unless you've warmed up to it.  You get little leeway for writer's block.
06:02 davidfetter joined #parrot
06:15 theory joined #parrot
06:23 mokurai joined #parrot
06:27 * dukeleto is hacking on pl/parrot
06:27 dukeleto postgres's internals are icky
06:28 dalek plparrot: 6f5c8d7 | (Joshua Tolley)++ | test.sql:
06:28 dalek plparrot: Add most basic tests
06:28 dalek plparrot: review: http://github.com/leto/plparrot/commit/6​f5c8d741ecfaeef481ce5b1eda355270bad9642
06:28 shorten dalek's url is at http://xrl.us/bf22v4
06:28 cotto dukeleto, that's interesting.  I've heard that they're pretty well designed.
06:33 dukeleto cotto: i am mostly talking about the names of the internal functions. not intuitive at first glance
06:33 dukeleto but that could be me
06:34 selenamarie joined #parrot
06:34 selenamarie dukeleto is just complaining because he is not using grep properly
06:35 dukeleto selenamarie: who are you, stranger?
06:37 cotto You just have to properly warp your brain.  After that, everything makes sense.
06:40 selenamarie dukeleto: here --> http://pljava.projects.postgresql.org/
06:45 dalek plparrot: 5cdff48 | dukeleto++ | t (2 files):
06:45 dalek plparrot: Move our basic sanity test to t/
06:45 dalek plparrot: review: http://github.com/leto/plparrot/commit/5​cdff4867b8ac0915f7b39fcdbee71807c3e09cd
06:45 shorten dalek's url is at http://xrl.us/bf22w5
07:02 cotto It's fun seeing all this embryonic stuff start to spring up.
07:03 dalek parrot: r42301 | mikehh++ | trunk/config (2 files):
07:03 dalek parrot: fix codetest failures - trailing spaces
07:03 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42301/
07:08 dalek plparrot: 4cc0bfb | (Joshua Tolley)++ |  (3 files):
07:08 dalek plparrot: Skeleton call handler and associated Makefile. This passes the first set of tests.
07:08 dalek plparrot: review: http://github.com/leto/plparrot/commit/4​cc0bfb7d435a717a6236beb84a1df7c3738df3b
07:08 shorten dalek's url is at http://xrl.us/bf22yg
07:14 dalek plparrot: 5a31045 | dukeleto++ | IDEAS:
07:14 dalek plparrot: Update IDEAS
07:14 dalek plparrot: review: http://github.com/leto/plparrot/commit/5​a310458771001bcab9fbcbbc980ae9428e63262
07:14 shorten dalek's url is at http://xrl.us/bf22yn
07:14 dalek plparrot: 67340b3 | dukeleto++ | :
07:14 dalek plparrot: Merge branch 'master' of github.com:leto/plparrot
07:14 dalek plparrot: review: http://github.com/leto/plparrot/commit/6​7340b32602af69ef466069a55c058ac6bc3673a
07:14 shorten dalek's url is at http://xrl.us/bf22yp
07:14 dalek plparrot: db096b7 | dukeleto++ | IDEAS:
07:14 dalek plparrot: More IDEAS
07:14 dalek plparrot: review: http://github.com/leto/plparrot/commit/d​b096b75c3a7d0b9845bc6f946de915e0d7244e1
07:14 shorten dalek's url is at http://xrl.us/bf22yr
07:15 uniejo joined #parrot
07:33 fperrad joined #parrot
07:47 nbrown joined #parrot
07:59 eternaleye joined #parrot
07:59 iblechbot joined #parrot
08:03 desertm4x joined #parrot
08:06 eternaleye Considering purl includes URL-shortening, is there a reason the 'shorten' bot is needed? It seems to be rarely used, and it just adds to dalek's spamminess
08:06 was kicked by moritz: shorten
08:07 moritz eternaleye: I already removed it once, but it respawned
08:07 eternaleye Oh noez!
08:07 selenamarie joined #parrot
08:07 * moritz wonders why ruoso is banned
08:08 eternaleye o.0
08:08 dukeleto yeah, why is ruoso banned?
08:09 chromatic Wasn't he having a lot of trouble connecting and disconnecting a while back?
08:09 moritz maybe
08:09 moritz but that can be "solved" by /ignore, no need for a ban
08:09 dukeleto moritz++
08:11 moritz in fact in "noisy" channels like here and #perl6 I ignore joins/leaves/quits totally
08:14 szbalint yeah, just use channel specific ignores. irssi++
08:22 dalek parrot: r42302 | chromatic++ | trunk (2 files):
08:22 dalek parrot: [ops] Added experimental vivify opcode and tests; much credit to Patrick
08:22 dalek parrot: Michaud for the implementation.
08:22 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42302/
08:26 dalek TT #1215 created by chromatic++: Factor out Duplicated Code in vivify/fetch opcodes
08:28 dukeleto chromatic: nice vivify tests
08:31 chromatic Patrick and I wrote those; he copied over the fetch tests and added some new behavior.
08:39 payload joined #parrot
08:45 dalek plparrot: 016cd60 | (Joshua Tolley)++ | IDEAS:
08:45 dalek plparrot: Add details about what needs to be built
08:45 dalek plparrot: review: http://github.com/leto/plparrot/commit/0​16cd609aba11f78bbb535891cafd323bab9a1b4
08:57 dukeleto please tell me that trunk is not broke
08:59 dalek parrot-linear-algebra: 67a86d5 | (Markus Mayr)++ | src/pmc/ (2 files):
08:59 dalek parrot-linear-algebra: Implemented add for transposed matrices, fixed some accesses to transposed matrices, implemented multiply for transposed matrices.
08:59 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/67a86d5afb403b1f7ef9f9ff2a7f4c2079b20a96
08:59 dalek parrot-linear-algebra: 0f19918 | (Markus Mayr)++ | :
08:59 dalek parrot-linear-algebra: Merge commit 'origin/master'
08:59 dalek parrot-linear-algebra: Conflicts:
08:59 dalek parrot-linear-algebra: src/pmc/nummatrix2d.pmc
08:59 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/0f1991859d31879ca1ae28dc4cd8436618ef3e69
09:01 dukeleto trunk is broke
09:02 dalek plparrot: a1f670a | (Joshua Tolley)++ | IDEAS:
09:02 dalek plparrot: Clarify intended interactions between the two major bits of PL/Parrot
09:02 dalek plparrot: review: http://github.com/leto/plparrot/commit/a​1f670ae52b07b3e0b2b1d15dac1b8c8819a8885
09:02 dalek plparrot: 4cec50d | (Joshua Tolley)++ | src/plparrot.c:
09:02 dalek plparrot: Add simple function to interact with pgsql APIs, and make something for the NQP bits to export
09:02 dalek plparrot: review: http://github.com/leto/plparrot/commit/4​cec50d3ba00a1a7afc1fc6f4ce536fe9759170f
09:02 nopaste "dukeleto" at 69.64.235.54 pasted "trunk r42302 does not compile" (21 lines) at http://nopaste.snit.ch/18588
09:03 dukeleto is is after a make realclean
09:05 dukeleto who broke trunk?
09:11 dalek parrot: r42303 | dukeleto++ | trunk/t/op/inf_nan.t:
09:11 dalek parrot: [t][TT #1210] Convert t/op/inf_nan.t to PIR, bubaflub++
09:11 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42303/
09:12 dalek TT #1210 closed by dukeleto++: [PATCH] t/op/inf_nan.t converted to PIR
09:18 chromatic No problem for me with r42302.
09:20 dalek plparrot: 759010d | dukeleto++ |  (2 files):
09:20 dalek plparrot: Add to IDEAS and remove unnecessary line from src/Makefile
09:20 dalek plparrot: review: http://github.com/leto/plparrot/commit/7​59010dbbe65acf67e24b2cc047ae6b855caf3d1
09:25 dukeleto perhaps realclean is leaving something behind
09:34 dukeleto chromatic: are you using --optimize?
09:47 NotFound dukeleto: I've built with and wihtout --optimize, no problems, amd64 linux
09:52 dukeleto i can make corevm, but 'make' fails with: push_string() not implemented in class 'Getopt::Obj'
09:53 dukeleto i am checking out a new, fresh trunk now, to see if my current checkout is fuxored
10:00 dalek TT #1110 closed by NotFound++: parrot fails to build with g++ 4.4.1 on Ubuntu 9.10 beta amd64
10:22 whoppix joined #parrot
10:29 davidfetter joined #parrot
10:39 dalek plparrot: 441f02c | dukeleto++ | IDEAS:
10:39 dalek plparrot: Add more links to IDEAS
10:39 dalek plparrot: review: http://github.com/leto/plparrot/commit/4​41f02c74f72ccc3f9dbca4b24515118b76a6b90
10:45 dalek parrot: r42304 | dukeleto++ | trunk/t/op/00ff-dos.t:
10:45 dalek parrot: [t][TT #1185] Convert t/op/00ff-dos.t to PIR, tweaked version of bubaflub++'s initial patch
10:45 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42304/
10:48 dalek parrot: r42305 | dukeleto++ | trunk/t/op/00ff-dos.t:
10:48 dalek parrot: [cage] Remove some debug messages accidentally added in previous commit
10:49 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42305/
10:50 dalek TT #1185 closed by dukeleto++: [PATCH] attempted to rewrite t/op/00ff-dos.t in PIR
11:01 payload joined #parrot
12:19 masak joined #parrot
12:26 he__ joined #parrot
12:32 leto joined #parrot
12:48 payload joined #parrot
12:50 whiteknight joined #parrot
12:58 dalek xml: 66df44d | fperrad++ |  (12 files):
12:58 dalek xml: convert tests to PIR (from Perl)
12:58 purl I don't know how to convert tests to PIR (from Perl).
12:58 dalek xml: review: http://github.com/fperrad/xml/commit/66​df44d50d361feb2fa0c418b7ece32b6e0aa2ef
12:58 dalek xml: 3868bf1 | fperrad++ |  (3 files):
12:58 dalek xml: convert Configure in PIR (from Perl)
12:58 dalek xml: review: http://github.com/fperrad/xml/commit/38​68bf1d53ef877a25fc667da919ae9d02a5a1d6
12:58 dalek xml: cc45ffd | fperrad++ |  (3 files):
12:58 dalek xml: move Makefile.in
12:58 dalek xml: review: http://github.com/fperrad/xml/commit/cc​45ffd34d6a92daf00848f35bdec9c011639964
12:58 dalek xml: 8e5ec63 | fperrad++ |  (9 files):
12:58 dalek xml: chmod +x
12:58 purl chmod +x is an executable.
12:58 dalek xml: review: http://github.com/fperrad/xml/commit/8e​5ec63037d412ec0bbb63f9fc728132be39a3d7
12:58 whiteknight purl forget chmod +x
12:58 purl whiteknight: I forgot chmod +x
13:04 dalek markdown: 529db87 | fperrad++ |  (3 files):
13:04 dalek markdown: move root.in
13:04 dalek markdown: review: http://github.com/fperrad/markdown/commit​/529db8757b50c206b11ba7a4533b4f40c80ba528
13:19 dalek parrot: r42306 | jkeenan++ | branches/configtests/config (2 files):
13:19 dalek parrot: Replace get_p5('OSNAME') with get('osname').
13:19 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42306/
13:23 dalek parrot: r42307 | jkeenan++ | branches/configtests/t/steps/auto (5 files):
13:23 dalek parrot: Continue to convert steps tests to use of Parrot configuration data.
13:23 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42307/
13:31 pmichaud joined #parrot
13:31 pmichaud joined #parrot
13:34 mj41 joined #parrot
13:35 jsut joined #parrot
13:45 whoppix joined #parrot
13:45 davidfetter joined #parrot
13:46 payload joined #parrot
13:50 patspam joined #parrot
14:03 kj joined #parrot
14:15 particle joined #parrot
14:31 dalek TT #1216 created by doughera++: [PATCH] Fix dependency in docs/Makefile
15:13 Andy joined #parrot
15:22 whiteknight all tests pass on win32 with strawberry
15:22 * whiteknight needs to figure out the incantation again to make it build with MSVC
15:26 Psyche^ joined #parrot
15:27 dalek parrot: r42308 | NotFound++ | trunk (3 files):
15:27 dalek parrot: make downcase and titlecase throw on null like upcase already doed, add tests for passing null to upcase, downcase and titlecase
15:27 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42308/
15:37 dalek lua: 157204c | fperrad++ |  (4 files):
15:37 dalek lua: convert Configure to PIR (from Perl)
15:37 purl I don't know how to convert Configure to PIR (from Perl).
15:37 dalek lua: review: http://github.com/fperrad/lua/commit/15​7204ca16be3ac80b801b8b620850d46f32643a
15:37 dalek lua: dbf7fb5 | fperrad++ |  (5 files):
15:37 dalek lua: move Makefile templates
15:37 dalek lua: review: http://github.com/fperrad/lua/commit/db​f7fb51922920edd46e0ba76fd48b6f9453ec30
15:37 dalek lua: 9df7621 | fperrad++ | Makefile.in:
15:37 dalek lua: target test
15:37 dalek lua: review: http://github.com/fperrad/lua/commit/9d​f76211c727918ac8f62fcfaabe784af185e256
15:44 bubaflub joined #parrot
16:25 PacoLinux joined #parrot
16:27 PacoLinux joined #parrot
16:28 dalek plparrot: 3f2e4bb | (Joshua Tolley)++ | src/ (12 files):
16:28 dalek plparrot: Separate the two major pieces (language handler, NQP stuff) into their own directories
16:28 dalek plparrot: review: http://github.com/leto/plparrot/commit/3​f2e4bb2456a46bf5d6a11e8983518672b2b9b03
16:28 dalek plparrot: 684bc49 | (Joshua Tolley)++ | :
16:28 dalek plparrot: Merge branch 'master' of git@github.com:leto/plparrot
16:28 dalek plparrot: review: http://github.com/leto/plparrot/commit/6​84bc49cd07d50e1e8415bf826fdfb2ae2aa34f2
16:37 particle joined #parrot
16:45 dalek parrot: r42309 | mikehh++ | trunk/MANIFEST:
16:45 dalek parrot: regenerate manifest
16:45 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42309/
16:48 dalek parrot: r42310 | mikehh++ | trunk/t/op/vivify.t:
16:48 dalek parrot: set svn properties
16:48 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42310/
16:54 dalek parrot: r42311 | mikehh++ | trunk/src/ops/experimental.ops:
16:54 dalek parrot: fix codetest failure - pod syntax
16:55 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42311/
17:02 pjstadig joined #parrot
17:07 cogno joined #parrot
17:14 theory joined #parrot
17:47 mokurai joined #parrot
17:48 dukeleto 'ello
17:49 dukeleto a fresh checkout of parrot trunk still fails to compile on my box
17:49 whiteknight dukeleto: which box? How long has this been an issue?
17:50 dukeleto i am starting to think that it could be that i installed nqp-rx
17:50 dukeleto whiteknight: since yesterday
17:50 dukeleto gmake -C compilers/tge
17:50 dukeleto gmake[1]: Entering directory `/Users/leto/svn/parrot-testing/compilers/tge'
17:50 dukeleto ../../parrot ../../runtime/parrot/library/PGE/Perl6Grammar.pbc --output=TGE/Parser.pir TGE/Parser.pg
17:50 dukeleto push_string() not implemented in class 'Getopt::Obj'
17:50 dukeleto make corevm passes, but PGE fails to compile
17:51 whiteknight could be NQPRX, I don't know what it's installed files are named
17:51 whiteknight or what all libraries it installs
17:52 dukeleto whiteknight: it installs into parrot's bin dir and stuff. i don't know how I feel about that
17:52 dukeleto whiteknight: for exactly reasons like this
17:52 whiteknight dukeleto: regardless of how it makes anybody feel, if there are no name collisions it's a non-isue
17:52 whiteknight name collisions are the problem
17:52 dukeleto whiteknight: this is happening on darwin/x86
17:52 whiteknight ok
17:54 dukeleto whiteknight: no one else seems to be experiencing it
17:54 dukeleto but it is happening to me with a fresh checkout
17:55 whiteknight so to verify: uninstall NQPRX and try to build parrot again
17:56 dukeleto whiteknight: actually, nqp-rx is not installed anywhere that parrot would find it. it is installed into ~/git/nqp-rx/parrot_install
17:56 whiteknight what is the error that PGE gives you?
17:56 Coke dukeleto: what's your build failure?
17:56 Coke (trying a new checkout)
17:59 nopaste "dukeleto" at 32.158.114.168 pasted "trunk r42302 build failure" (35 lines) at http://nopaste.snit.ch/18589
17:59 Coke PGE works here; I would recommend moving aside installed parrot, or perhaps restricting your path.
18:00 dukeleto yes, installed parrot could be it
18:00 Coke I have problems when I only install every N releases and something changes.
18:00 Coke makes sad coke sad.
18:00 dukeleto Coke: yes, this issue makes me sad as well
18:03 whiteknight find everything that's installed and delete it
18:03 dukeleto whiteknight: i do that often to parrot, but who wants to explain that to end users? not me.
18:03 Coke msg pmichaud I'm going to be on vacation next week, and pretty non-responsive to parrot.
18:03 purl Message for pmichaud stored.
18:04 dukeleto parrot needs an uninstall method
18:04 whiteknight dukeleto: at the moment, we're looking to isolate the problem
18:04 whiteknight isolated problems lend themselves to solutions
18:04 Coke (uninstall) that's up to the packagers.
18:04 dukeleto whiteknight: yes, for the moment I will do that
18:04 dukeleto whiteknight: i was commenting in general
18:04 whiteknight ok
18:08 dalek rakudo: 6670e70 | moritz++ | t/spectest.data:
18:08 dalek rakudo: [t/spectest.data] track filename changes
18:08 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​670e7019200521ba22e26dc5014615777dfd651
18:08 dalek rakudo: 830e2cf | moritz++ | src/setting/Any-list.pm:
18:08 dalek rakudo: the named argument to .pick is now called :replace
18:08 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​30e2cf76c90160567576ce299f6e44d1ba4ba81
18:12 * dukeleto is compiling again after nuking installed parrot from orbit
18:16 dukeleto it seems as if i have pleased the parrot elder gods
18:17 dukeleto i should have known it was an installed parrot, but fiddling with nqp-rx lately provided a red herring
18:26 whiteknight okay, problem isolated. dukeleto++
18:28 chromatic joined #parrot
18:32 darbelo joined #parrot
18:46 dalek parrot: r42312 | darbelo++ | branches/libjit_frame_builder:
18:46 dalek parrot: Too many patching mistakes on this branch. Let's try this again in a new one.
18:46 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42312/
18:49 pmichaud Coke: enjoy your vacation
18:49 dalek parrot: r42313 | darbelo++ | branches/libjit_framebuilder:
18:49 dalek parrot: Create a new branch for plobsing's work on the libjit frame builder (TT#1105).
18:49 dalek parrot: This supersedes the auto_libjit branch and the libjit_frame_builder branch.
18:49 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42313/
18:52 pmichaud is there a document somewhere that describes or gives examples of using the profiling output?
18:52 pmichaud barring that, could someone walk me through an explanation of what I'm seeing in kcachegrind ?
18:53 pmichaud http://pmichaud.com/sandbox/snapshot1.png
18:54 chromatic I can give some quick tips.
18:54 pmichaud this is a parse of Rakudo's Actions.pm using nqp-rx
18:54 pmichaud sorry
18:54 pmichaud this is a *compile* of Rakudo's Actions.pm using nqp-rx
18:54 pmichaud I know that nqp-rx is presently slower than PGE, so understand that.  I want to know where ripe places for optimization are
18:55 chromatic See those icons in the upper middle of the screen?  Show Relative Costs and Percentage Relative to Parent?  Click those.
18:55 pmichaud done
18:55 chromatic Also in the upper right panel, click the Callers tab.
18:55 pmichaud let me know when/if you need snapshots
18:56 pmichaud callers tab, done
18:56 chromatic Bottom panel, click the Call Graph tab.
18:56 pmichaud done
18:57 chromatic Okay.  Now the leftmost panel shows the top n functions sorted by combined time.  That is, their cost plus the cost of all of the functions they call.
18:57 mj41 joined #parrot
18:57 chromatic The bottom right panel should show a call graph of the function highlighted in the left panel as well as everything it calls.
18:57 chromatic Thicker lines to (and higher percentages in the boxes of) children represent greater expenses.
18:58 pmichaud http://pmichaud.com/sandbox/snapshot2.png
18:58 DrForr_ joined #parrot
18:59 pmichaud these are sorted by ... time?
18:59 chromatic Expense, but basically time.
18:59 pmichaud that's odd
18:59 chromatic This measures the number of instructions executed.
18:59 pmichaud at least, it doesn't at all match my expectations.
18:59 cotto_work and the time taken by those instructions
19:00 chromatic cotto_work, some of those functions get called 0 times.  That doesn't look right.
19:00 chromatic pmichaud, how complex is the control flow here?  Are you using tailcalls or coroutines?
19:00 pmichaud no coroutines that I recall, but likely lots of tailcalls
19:01 pmichaud should I eliminate those ?
19:01 chromatic No; just wondering if the profiler tracks those correctly.
19:01 pmichaud PCT is full of tailcalls
19:01 cotto_work That definitely doesn't look right.
19:02 chromatic cotto_work, we probably need a small test case of PIR with a tailcall and an expected profiler output to get those working.
19:02 * pmichaud checks to see how many tailcalls are in past
19:02 pmichaud 107.
19:03 pmichaud well, that's a little high
19:03 pmichaud 89
19:03 chromatic I usually look for (1) time spent in a function and its kids (left panel, leftmost column) (2) number of total calls to a function (left panel, middle column), and (3) amount of time spent in current function (third panel, second column from left).
19:03 chromatic The bottom right panel is good for exploring control flow up and down the graph, to find which code paths call the expensive code.
19:04 pmichaud right.  but I agree these numbers don't look right.  They don't match my expectation of the control flow, for one.
19:04 cotto_work chromatic, any kind of profiler tests would be an improvement.  If you could add support for testing the profiler, I'd love to add some tests.
19:04 cotto_work The perl test code scares and confuses me.
19:04 pmichaud cotto_work: me too :)
19:05 pmichaud anyway, given that these are tree structures, there's an awful lot of recursion and tailcalls taking place
19:06 pmichaud if these numbers are correct, it would make me somewhat happy, because they'd be places for easy optimizations.  But I have trouble believing they're correct.
19:06 cognominal joined #parrot
19:07 pmichaud let me give a quick example
19:07 chromatic You could temporarily remove the tailcalls and profile it again to see if the numbers look more realistic.  I have no trouble believing we don't represent tailcalls well.
19:07 pmichaud 87 tailcalls is a lot of removals, though :-|
19:08 chromatic Yeah, I agree.
19:08 chromatic Could you put the bzipped callgrind.out file somewhere online temporarily?
19:08 pmichaud oh, sure!
19:08 pmichaud http://pmichaud.com/www/sandbox/snapshot3.png
19:09 pmichaud the callgrind.out file would be the parrot.pprof.*.out one?
19:09 pmichaud er, *.out.*
19:09 pmichaud parrot.out.13725 ?
19:09 chromatic Yes, I believe so.
19:09 pmichaud it's only 131k
19:09 pmichaud did you mean the pprof file?
19:09 chromatic Whichever one you had to generate with the Perl program.
19:09 pmichaud that's the .out file
19:09 chromatic Whichever one you fed to KCachegrind.
19:10 pmichaud -rw-r--r-- 1 pmichaud pmichaud    131232 2009-11-06 12:24 parrot.out.13725
19:10 pmichaud -rw-r--r-- 1 pmichaud pmichaud 798568165 2009-11-06 11:50 parrot.pprof.13725
19:10 pmichaud *.out.*  it is
19:10 pmichaud http://pmichaud.com/sandbox/parrot.out.13725
19:11 chromatic Hm.
19:11 pmichaud anyway, from snapshot3.png, I think it's telling me that a lot of time was spent in Node.iterator, which was called 5251 times.
19:11 chromatic Look at Cursor;!protoregex
19:11 chromatic The call graph there is better.
19:12 pmichaud okay.
19:13 pmichaud I see the call graph, it matches my expectations to a large degree.
19:13 dalek parrot: r42314 | darbelo++ | branches/libjit_framebuilder (30 files):
19:13 dalek parrot: This time with an all in one approach:
19:13 dalek parrot:  - Apply patches from TT#1147 (update nci.pmc for pcc_reapply)
19:13 dalek parrot:  - Bring over the changes made by the auto_libjit branch.
19:13 dalek parrot:  - Fix errors introduced by the above.
19:13 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42314/
19:13 pmichaud it doesn't really seem to tell me where to look to optimize things, though
19:14 chromatic This is where experience and intuition come in.
19:14 pmichaud my intuition has been that mark_push was going to be relatively expensive
19:14 chromatic I'd look at the Grammar package rules -- term;sym<package_declarator>, statementlist, statement.
19:14 pmichaud not for any single call, but overall because it would get called so many times
19:15 pmichaud well, statementlist just calls statement
19:15 pmichaud (yes, I'll look at the code...just giving an idea of what's going on inside these)
19:16 chromatic Right.  Sometimes it takes me a few minutes of browsing around and exploring and reading the source code to figure out that something's an optimization candidate.
19:16 pmichaud okay
19:17 pmichaud it's a bit tricky though, as these are all generated code
19:17 chromatic Yeah, and we know some numbers are off.
19:17 chromatic I'm never quite sure whether it's Parrot's weird control flow or some subtlety of Callgrind/KCachegrind that I don't understand.
19:17 pmichaud not too hard to read the generated code, but I generally know what it's likely to look like, and it doesn't feel like these are bottlenecks
19:18 chromatic If you run this from a directory above the NQP-rx src/ directory, you can change the top right panel to show annotated source code.
19:18 chromatic Otherwise, go to Settings, Configure KCachegrind, and the Annotations tab and you can add that source directory.
19:18 pmichaud settings will be easier here
19:20 pmichaud hmmm. that froze my kcachegrind hard
19:21 pmichaud I'll just look at the source code in vim :)
19:22 chromatic If annotations worked, you could see cost per line, which can be helpful.
19:23 whiteknight joined #parrot
19:25 * pmichaud admires the code generated by nqp-rx.  Much prettier than PGE code.
19:26 chromatic There's a reason I only tried to optimize PGE code once or twice.
19:26 pmichaud NQP-rx is much nicer
19:26 pmichaud I'll nopaste a snippet
19:27 cotto_work and I'm sure it'll get even nicer with fetch/vivify
19:27 pmichaud the regex code doesn't tend to need fetch/vivify, but yes, other code will like it a lot
19:27 whiteknight any reason we can't put those opcodes in as experimental?
19:27 cotto_work they're in now
19:28 darbelo whiteknight: I though they were.
19:28 nopaste "pmichaud" at 72.181.176.220 pasted "snippet of nqp-rx generated output" (105 lines) at http://nopaste.snit.ch/18590
19:29 pmichaud anyway, you can just basically follow the original source of the rule and see that reflected in the generated code
19:29 pmichaud alt128_0 and alt128_1 are the two branches of the top-level alternation
19:29 whiteknight quite impressive
19:29 pmichaud within alt128_0 is the test for $  (rxanchor eos)
19:30 pmichaud within alt128_1 is the tests for <.ws>, a * quantifier, a call to the <statement> subrule followed by the <.eat_terminator> subrule
19:30 pmichaud (and <.ws> in appropriate slots)
19:30 pmichaud most of the calls to "!cursor_*"  are designed to be inlinable
19:31 pmichaud and that's what I've been expecting to eat up a fair bit of time
19:31 pmichaud (which is why I designed it to be inlinable, so as to eliminate a bunch of methodcalls from the match)
19:33 darbelo msg plobsing I obliterated the branch and created a new one with your latest patch.
19:33 purl Message for plobsing stored.
19:34 darbelo msg plobsing I think it should be fuckup-free this time, msg me if not.
19:34 purl Message for plobsing stored.
19:34 pmichaud okay, this tells me a couple of things to do first (none of which are optimizations on their own, but should make it easier to use the profiler)
19:34 darbelo msg plobsing https://trac.parrot.org/parrot/changeset/42314/
19:34 purl Message for plobsing stored.
19:34 chromatic Yeah, even without guaranteed accuracy, it does help.
19:35 darbelo whiteknight: ping
19:35 pmichaud first, I should go ahead and either get nqp to compile from the four .pir files (with .include statements already squashed), to make it easier to see the annotated source code
19:35 whiteknight darbelo: pong
19:35 pmichaud (I think kcachegrind might be confused by the -I options used during compile)
19:35 pmichaud or I should work a bit on getting nqp-rx into the parrot repo
19:35 pmichaud (allison has indicated that we can go ahead and bundle nqp-rx with parrot, at least for the time being)
19:36 darbelo whiteknight: I created a new branch (libjit_framebuilder) with plobsing's latest libjit patch.
19:36 darbelo whiteknight: saw you cc'ed on the ticket, figured you migh want to give it a spin.
19:36 pmichaud then after doing those, I should probably remove the tailcalls from PCT and see if that makes it easier to use the profiler
19:37 chromatic If it's a short thing, I'm interested to see if that helps.
19:37 darbelo I don't have libjit here, so I only checked that it doesn't regress anything. But it looks good.
19:37 pmichaud I might be able to write a perl script to do the .tailcall conversions
19:37 whiteknight darbelo: okay, I'll try to look at it tonight
19:37 pmichaud if I do them automatically, it'd be in a form where it could be easily reversed back, I suspect
19:38 darbelo whiteknight++
19:38 pmichaud or I could try creating a tailcall macro that let's us swit.... <SLAP!>   Sorry.
19:38 pmichaud (imcc macros = evil)
19:38 chromatic They're less evil now.
19:38 darbelo I'd really like to get this merged before the next Great Disruption.
19:39 pmichaud basically I think it involved taking lines of the form
19:39 pmichaud .tailcall <something>.'methodname'(<args>)
19:39 pmichaud and turning it into
19:39 pmichaud $P9999 = <something>.'methodname'(<args>)
19:39 pmichaud .return ($P9999)
19:40 whiteknight that only covers single-item return signatures
19:40 pmichaud ....but have to be careful to specifically handle the cases where the thing being tailcalled is r.... right
19:40 pmichaud have to handle multi-return items
19:40 pmichaud but there aren't many of those in PCT
19:40 whiteknight ($P999 :slurpy) = <something>.'methodname'(<args>)
19:40 whiteknight .return($P9999 :flat)
19:40 pmichaud more often is  ($P0, $P1) = ...
19:40 pmichaud anyway, I'll do that conversion also
19:41 pmichaud and then re-run the profiler and see what happens
19:42 pmichaud if someone was looking for an easy-ish "I don't have to really know what I'm doing" sort of task, converting the tailcalls in PCT would be a good one :)
19:43 pmichaud anyway, thanks for the profiler help.  I'm looking forward to having tailcalls working (if that is indeed why the call totals look weird here)
19:45 chromatic It's not always.  Callgrind on C code can be weird too sometimes.
19:45 chromatic I'm sure there are bugs in the profiler though.
19:46 cotto_work chromatic, do you think you'll have the tuits to add perl Test::More code to enable testing the profiler?
20:00 cotto_work the PARROT_PROFILING_OUTPUT environment variable will probably come in handy there
20:03 kj joined #parrot
20:06 dalek parrot: r42315 | darbelo++ | branches/libjit_framebuilder/src/frame_builder.h:
20:06 dalek parrot: Rename a header guard to make codingstd test happy.
20:06 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42315/
20:11 chromatic I'm thinking about how to do that, cotto_work.
20:12 cotto_work Thanks.
20:13 dalek parrot: r42316 | darbelo++ | branches/libjit_framebuilder (8 files):
20:13 dalek parrot: Set svn props for new files.
20:13 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42316/
20:22 particle joined #parrot
20:25 joeri joined #parrot
21:00 mikehh joined #parrot
21:03 chromatic Ugh, no .deb for libjit.
21:10 chromatic auto::libjit -        Is LibJIT installed..../test_20464: error while loading shared libraries: libjit.so.0: cannot open shared object file: No such file or directory
21:15 darbelo odd, I don't get that here.
21:18 chromatic Do you have libjit installed?
21:19 darbelo No. I thought you didn't either.
21:19 darbelo You have it but can't open the .so?
21:20 chromatic I just installed it.
21:20 chromatic I have the .so in /usr/local/lib and I can run nm and ldd on it.
21:23 darbelo Hm. Is /usr/local/lib in your $LIBPATH (or eqivalent)?
21:25 chromatic Yes, the linker looks there.
21:29 chromatic I can never remember how to run a single configuration step, and Configure.pl's --help doesn't tell me.  Does anyone remember?  Can we patch the docs to help?
21:32 darbelo I didn't even know Configure allowed that.
21:35 particle chromatic: see reconfigure.pl
21:38 chromatic perl tools/dev/reconfigure.pl --step=auto::libjit ?
21:39 particle sounds right to me
21:39 chromatic cc  -L/usr/local/lib -Wl,-E test_25527.o -ljit -o test_25527  -ldl -lm -lpthread -lcrypt -lrt -lgmp -lreadline
21:39 particle you might want --verbose
21:39 chromatic No -L/usr/local/lib there; that must be the problem.
21:40 chromatic auto::libjit -        Is LibJIT installed.................................yes.
21:42 desertm4x joined #parrot
21:46 chromatic t/pmc/nci.t ................................. 568/652
21:46 chromatic #   Failed test 'nci_ssc'
21:46 chromatic #   at t/pmc/nci.t line 596.
21:46 chromatic #          got: 'loaded
21:46 chromatic # dlfunced
21:46 chromatic # nok 1
21:46 chromatic # 1075970054
21:46 chromatic # '
21:46 chromatic #     expected: 'loaded
21:46 chromatic # dlfunced
21:46 chromatic # ok 1
21:46 chromatic # '
21:46 chromatic Otherwise, everything is fine on 32-bit Linux.
21:46 chromatic modulo that /usr/local/lib isn't in my library path.
21:48 chromatic ... and after running ldconfig, it is.
21:52 whoppix joined #parrot
21:54 darbelo We should try to get some better error messages into that step.
21:55 darbelo But I'm not sure where to put them.
22:14 masak joined #parrot
22:31 * darbelo caves in and gets a 32-bit linux.
22:37 dalek xml: 2059793 | fperrad++ |  (2 files):
22:37 dalek xml: install as 2 libraries
22:37 dalek xml: review: http://github.com/fperrad/xml/commit/20​59793a4d6ecfd279b84d6689133a34c477a294
22:37 dalek xml: 99ae092 | fperrad++ |  (23 files):
22:37 dalek xml: reorg tree (step 1)
22:37 dalek xml: review: http://github.com/fperrad/xml/commit/99​ae092f71b15d08e35175bace1f3e8fd54e3d20
22:37 dalek xml: 6ce7dc3 | fperrad++ |  (5 files):
22:37 dalek xml: reorg tree (step 2)
22:37 dalek xml: review: http://github.com/fperrad/xml/commit/6c​e7dc36c5aa20d07b98c10fbceba6a81f86fca6
22:37 dalek xml: f394414 | fperrad++ |  (5 files):
22:37 dalek xml: reorg tree (step 3: builtins)
22:37 dalek xml: review: http://github.com/fperrad/xml/commit/f3​94414126bc7695cbd7e6158823d0082c4e015f
22:37 dalek xml: 685bb8d | fperrad++ |  (10 files):
22:37 dalek xml: reorg tree (step 5)
22:37 dalek xml: review: http://github.com/fperrad/xml/commit/68​5bb8d559e5f218ca22b3ea7686ff2088e00437
22:37 dalek xml: af5db76 | fperrad++ | plumage/xml.json:
22:37 dalek xml: add xml.json (Plumage)
22:37 dalek xml: review: http://github.com/fperrad/xml/commit/af​5db76e60f9e3c1770118f0916c5ed7cac831a9
22:41 pmichaud chromatic / cotto :  update on profiling
22:42 pmichaud independently we've discovered that the code gen phase *is* far slower than it ought to be -- i.e., the results that kcachegrind are showing are in fact somewhat real
22:42 pmichaud in the sense that the thing eating up all of the time are indeed the subroutines at the top
22:42 pmichaud so I'm investigating why it suddenly got so slow
22:43 pmichaud I'll keep you posted :)
22:43 chromatic I like the phrase "somewhat real".
22:44 japhb I like quasi-real myself.
22:44 chromatic <bender>I'm out, meatbags!  I'd be lying if I said it's been fun.  Keep it somewhat real.</bender>
22:45 cotto_work It's nice to know that the profiler was right.
22:46 chromatic Right-ish.
22:46 pmichaud I'll let you know how right soon
22:46 cotto_work yes, as in not completely wrong
22:47 cotto_work My value of "right" is a bit depressed atm.
22:47 japhb cotto_work, chromatic: how difficult would it be to change the format of the raw profile lines to be faster to parse?  Might make pprof2cg a decent amount faster ...
22:47 chromatic Less data ======> faster.
22:48 cotto_work It's a ripe area for optimization.
22:48 chromatic One problem is that we don't know exactly where it's wrong yet, nor why.
22:48 chromatic Though I know that line numbers are wrong-ish in some places.
22:49 cotto_work btw, is there a probe for zlib?  it'd be nice to use that to compress the pprof output.
22:49 chromatic Did I hear a hint drop?  YES WE CAN.
22:58 cotto_work chromatic, how feasible do you think it'd be to write profiler tests in pir?  It might not be too bad if I could use nqp-rx regexes to scrub out timing information.
22:59 chromatic We need a way to run a subprocess and capture its output.  That's not difficult, but I don't know if we can do that from PIR yet.
22:59 chromatic I keep getting hung up on the other feature, though.
22:59 chromatic We need a way to review that output and see if *pieces* of it are sane.
23:00 chromatic That is, if we profile a specific tailcall, we should be able to see if we've recorded that information in a way that makes sense to us and (hopefully) to the Callgrind output format.
23:00 cotto_work Yes.  Checking the whole output for every test would be burdensome.
23:01 chromatic I know that we need to do that, but I don't have a good idea about *how* to do that.
23:05 cotto_work I suppose annotation-awareness could be a big help here.
23:07 chromatic I don't really want to write a *third* parser/emitter for our profiling format.
23:07 chromatic If we had a PIR object model to represent profiling output, we could check nodes and attributes.
23:08 chromatic Then we wouldn't need the Perl 5 parser.
23:08 cotto_work That's be really nice.
23:08 chromatic We could even fork() off a new Parrot instance at the appropriate time to parse the output into callgrind format.
23:09 chromatic Just when I get excited about that, I think "But we don't know it's correct now!" and "Hey, we really need STRINGNULL!" and "That's a lot of work!" and "Aren't you supposed to be writing a book today?"
23:13 pmichaud nqp(-rx) might be able to do a reasonable job here
23:13 pmichaud I dunno.
23:13 pmichaud you would get regexes
23:14 pmichaud I'm hoping to write some Test::* modules in nqp :-)
23:14 chromatic I think it's a reasonable avenue of exploration.
23:18 cotto_work sounds like it's time for some exploring then
23:19 kesselhaus joined #parrot
23:20 dalek markdown: b2ef811 | fperrad++ |  (14 files):
23:20 dalek markdown: reorg tree (step 1)
23:20 dalek markdown: review: http://github.com/fperrad/markdown/commit​/b2ef8117b90aa2f2f123b1c92551a914ee02efb6
23:20 dalek markdown: a5d1d68 | fperrad++ |  (3 files):
23:20 dalek markdown: reorg tree (step 2: builtins)
23:20 dalek markdown: review: http://github.com/fperrad/markdown/commit​/a5d1d6855b82f25db2bcf1b7f4637f7b308d6e60
23:20 dalek markdown: 050f234 | fperrad++ |  (7 files):
23:20 dalek markdown: reorg (step 3)
23:20 dalek markdown: review: http://github.com/fperrad/markdown/commit​/050f23476e2c4a86378bbaf87e315224de0dd454
23:22 japhb chromatic: Plumage has a working qx() in NQP/PIR.  Is that what you were looking for earlier about capturing output from a subprocess?
23:23 chromatic Yes, basically a profiler test would need to run a subprocess, figure out where its output is, parse that output, and test portions of that output.
23:25 pmichaud I wonder what it would take for me to put a qx{...}  diretly into nqp
23:25 pmichaud *directly
23:28 kesselhaus if i install parrot 1.7.0 not in C:\parrot-1.7.0\ but in C:\parrot\ how can i set parrot to use C:\parrot as prefix to look for it and the languages?
23:29 chromatic If you used the --prefix to Configure.pl, that behavior should happen automatically.
23:30 kid51 joined #parrot
23:30 kesselhaus i installed from the installers
23:31 darbelo installers?
23:31 purl installers are HARD
23:32 chromatic fperrad might have more information then.
23:32 jonathan as far as I know, the Parrot installed by the installer is not relocatable.
23:33 jonathan (this has come up before)
23:33 jonathan IIRC you can install it on a different drive.
23:33 jonathan But not a different directory.
23:33 jonathan :-/
23:33 kesselhaus don't tell me. the paths are hardcoded into the executables...
23:33 jonathan Believe so.
23:34 kesselhaus hmm
23:40 dalek rakudo: fe6dd27 | (Kyle Hasselbacher)++ | src/setting/Any-str.pm:
23:40 dalek rakudo: [setting] comb takes Regex, not Code.  Fixes RT #66340
23:40 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​e6dd277b3ffca7efca4f303af18f7e54e7202cc
23:40 mikehh joined #parrot
23:45 selenamarie_ joined #parrot
23:50 kesselhaus hmm, the whole windows builds seem to be flawed... unless you are on drive C:, none of the parrot executables run properly

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

Parrot | source cross referenced