Camelia, the Perl 6 bug

IRC log for #parrot, 2009-11-19

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 Tene: You are better off that way :)
00:00 japhb Tene: time heals all wounds.
00:01 japhb Unfortunately, it may take more time than you have ....
00:02 darbelo "Don't worry, it'll close up in a few days... If you don't bleed out in the next few minutes."
00:03 dalek parrot: r42572 | mikehh++ | trunk/t/examples/shootout.t:
00:03 dukeleto how do you catch exceptions in NQP(-rx) ?
00:03 dalek parrot: remove some skipped tests that pass
00:03 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42572/
00:06 Tene dukeleto: you could re-use the try() function from plumage.
00:13 Zak joined #parrot
00:18 Austin Okay, this is just silly.
00:19 NotFound The MS and alike way: we'll show that managed code can be as fast as plain C code, by making C code as slow as possible.
00:20 darbelo Austin: Taxes? Always.
00:20 Austin Apparently pmichaud-- is a registered democrat.
00:20 Austin I think I'm buying healthcare for everybody here.
00:20 * darbelo is unfamiliar with USA politics.
00:21 darbelo Democrats == Big taxes?
00:22 darbelo Austin: to be fair. Old NQP is still available. This particular tax is opt-in until 2.1
00:24 Austin darbelo: http://www.cafepress.com/dd/36418669
00:25 Austin And yeah, it's opt-in until 2.1, but I'm thinking I might as well change my handle to "Merriwether Lewis."
00:25 Austin (Because in a lot of cases I think I'm one of the first guys to ever see this territory.)
00:26 darbelo Austin: Welcome early adopter^W^Wproduction user!
00:26 Austin Yeah. One point oh.
00:27 plobsing joined #parrot
00:27 dalek TT #1309 created by getpsimon++: perl Configure.pl finds icu but doesn't set it up
00:27 NotFound If you don't like the new nqp, you can switch to winxed ;)
00:27 NotFound Competence!
00:27 purl i think competence is a sign of political righteousness!
00:27 Austin Does it work?
00:27 Austin Belay that. Does it FTS?
00:28 NotFound FTS?
00:28 purl somebody said FTS was fuck this shit or fuck the sun!
00:28 Austin purl, forget FTS
00:28 purl Austin: I forgot fts
00:28 Austin FTS is "fail to suck"
00:29 japhb Austin: Think of it like this.  You work out all the dark corner cases for us, and NQP-rx will FTS for everyone else.  :-)
00:29 NotFound With that definition, yes. At least for people that don't hate certian family of syntax.
00:29 Austin Compiled or interpreted?
00:30 NotFound Compile to pure pir.
00:30 japhb I hate a certain family of syntax!  Of course, I don't think it's the certain family you're referring to ....
00:30 NotFound japhb: C/C++/java/javascript
00:30 Austin I'll have to take a look.
00:30 NotFound A big familiy
00:31 Austin (Sadly, Kakapo is intended as a nqp library. So I'm sort of committed to nqp-ness.)
00:31 pmichaud (registered democrat)   Definitely not.
00:31 japhb NotFound, the Algol family is insufficiently small to contain just the syntax family to which I refer.
00:31 japhb I object to the "object orientation ought to HURT" subfamily thereof.
00:32 darbelo japhb: If object orientation didn't hurt people would use it.
00:32 chromatic If Windows didn't hurt, people would use it.
00:33 NotFound BTW, I don't spammed yet today my new site: http://winxed.org/
00:33 dalek parrot: r42573 | jkeenan++ | branches/configtests/t (3 files):
00:33 dalek parrot: Specify exact number of tests in plan.
00:33 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42573/
00:33 dalek parrot: r42574 | jkeenan++ | branches/configtests (3 files):
00:33 dalek parrot: Correct overuse of '_provisional', particularly with respect to elements used in auto::headers.
00:33 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42574/
00:33 mikehh All tests PASS (pre/post-config, smoke (#30020), fulltest) at r42572 - Ubuntu 9.10 amd64 (g++ with --optimize)
00:33 darbelo japhb: And once you use it, boy do you feel less inclined to preach it as a silver bullet.
00:34 Austin notfound: Probably needs more documentation than that.
00:34 NotFound Were's the werewolf?
00:34 japhb NotFound, damn, beat me to the joke
00:34 Whiteknight Where do I find documentation on the profiler?
00:34 Whiteknight I want to pimp it out on my blog
00:35 darbelo Whiteknight: The pod in the format conversion script was pretty good.
00:35 NotFound Austin: not much doc, but t/ and examples/ shows syntax and features.
00:35 Whiteknight darbelo: where is that?
00:35 purl yes, that!
00:35 cotto_work Whiteknight, there's not a whole lot to it apart from the pod in tools/dev/pprof2cg.pl
00:36 cotto_work If you have suggestions as to what would make it more useful, I'd love to hear them.
00:36 darbelo perldoc tools/dev/pprof2cg.pl
00:36 Whiteknight cotto_work: how do we turn on the profiler?
00:36 chromatic --runcore=profiler
00:36 chromatic --runcore=profile
00:36 chromatic one of those
00:36 cotto_work -Rprofiling
00:36 cotto_work or --runcore=profiling
00:36 darbelo Wasn't it "-r profiling"?
00:37 cotto_work timtowdi
00:37 purl i guess timtowdi is important, ... but can be quite an obstacle for nuB's
00:37 japhb Dang, I've spent so much time with NQP I'm starting to have problems using = instead of := in Perl 5 code ...
00:37 darbelo (:=)--
00:37 japhb A happy kid drooling a lot?
00:37 cotto_work but -r doesn't do profiling
00:38 cotto_work s/do profiling/determine the runcore/
00:39 darbelo s/r/R/
00:39 cotto_work I'm trying to rewrite the script in nqp for a couple reasons, so I'll be updating the docs where I can't figure them out.
00:40 darbelo cotto_work: The you'll be able to profile parrot when runing the profiler to profile the profiling posprocessor?
00:41 darbelo *postprocessor
00:41 cotto_work That's a fortunate side-effect.
00:41 darbelo dogfooding++
00:42 darbelo metacircularity++
00:44 mikehh winxed: make test PASS - PASSED 95 tests in 21 files at r179 on parrot r42572 (g++ with --optimize) - Ubuntu 9.10 amd64
00:45 Austin pmichaud: does 'has' work in nqp-rx?
00:46 pmichaud only for private attributes, and no immediate initialization
00:46 pmichaud has $!x;   # works
00:46 pmichaud has $.x;  # doesn't work (yet?)
00:46 pmichaud has $!x = 5;   # probably will never work
00:46 Austin :(
00:46 pmichaud PIR doesn't give a good way to attach initialization subs to objects
00:46 Austin What can I do with $!x ?
00:47 pmichaud you can bind it, same as any other variable :)
00:47 pmichaud $!x := 5;
00:47 Austin method foo() { $!x := 1 } ?
00:47 pmichaud eys.
00:47 pmichaud *yes.
00:47 Austin $obj.!x := 5;     ?
00:47 pmichaud not quite yet
00:48 pmichaud the syntax for accessing a private attribute of a foreign object is still a little dicey in p6
00:48 Austin I'd have to write 7  method x(*@value) { if +@value { $!x := @value.shift; } return $!x; }    ?
00:49 pmichaud there's always pir::setattribute
00:49 * Austin snickers.
00:49 Austin Seriously.
00:49 purl I'm totally freaking serious.
00:49 pmichaud I'm a bit limited by what Parrot provides here
00:49 Austin Sure.
00:50 Austin But subclassing works, sort of.
00:50 pmichaud sure.
00:50 pmichaud I might be able to eventually add some attribute initialization and support to P6object
00:50 Austin And private attributes.
00:51 Austin I can get rid of 'has()' in Kakapo.
00:51 Austin No.
00:51 Austin I get rid of 'extends'.
00:51 Austin Keep 'has' and generate accessors.
00:51 pmichaud I'm thinking of having    has $.x   automatically create readonly accessors
00:52 Austin Why?
00:52 pmichaud convenience
00:52 purl convenience is you not having to write a little bit of code to generate the files, and the cost is me modifying Loader to do it for you
00:52 pmichaud I agree that writing explicit accessors isn't hard.
00:52 Austin I was thinking "why readonly"?
00:52 dukeleto purl: die in a grease fire
00:52 purl dukeleto: excuse me?
00:53 pmichaud oh.  Because Parrot doesn't have an lvalue attribute
00:54 pmichaud in Perl 6, one would do     $foo.x = 3;
00:54 pmichaud but .x is still a method call
00:54 Austin Actually, here's a problem: If I call "P6object::get_parrotclass" it sometimes returns null.
00:54 abqar joined #parrot
00:54 pmichaud it  returns an lvalue object that is then assigned a value
00:54 Austin And -rx isn't automatically converting null into undef all the time, so I'm getting NPA faults.
00:55 pmichaud what are you calling get_parrotclass on ?
00:55 pmichaud i.e., what are you trying to get the parrotclass of?
00:55 Austin A string or namespace.
00:56 pmichaud the tt you filed that showed the npa using INIT occurs because you're accessing the variable before it's been initialized
00:56 pmichaud I'm not sure that I want to do null checks on every variable access.
00:56 Austin I know.
00:56 Austin :|
00:57 Austin The TT I filed showed (I think) that you're generating null checks if the `our` is inside the sub, but not generating them if it's outside the sub.
00:57 pmichaud I don't understand inside/outside here
00:57 * pmichaud goes to look at the TT again
00:57 Austin our $G ; sub foo() { $G }
00:57 Austin versus
00:58 Austin sub bar() { our $G2; $G2; }
00:58 pmichaud ah
00:58 pmichaud the outer block isn't being invoked so the variable never gets initialized
00:58 pmichaud okay, I get it.
00:59 pmichaud maybe I'll go ahead and do the null checks on all package variables :-|
00:59 Austin Anyway, the generated PIR is different for the two cases. The "inside the sub" case contains a null check, where the "outside the sub" case doesn't.
00:59 pmichaud yeah, that seems weird.
00:59 Austin Or give me a builtin.
00:59 pmichaud I'll go look at it.
00:59 pmichaud ...builtin?
00:59 Austin isnull?
00:59 purl hmmm... isnull is for real NULL pointers.
01:00 pmichaud pir::isnull  already works
01:00 Austin Does it?
01:00 Austin I tried pir::typeof, but couldn't get it to work right.
01:00 pmichaud not all of the opcodes have signatures yet
01:00 Austin So I punted and went back to Q:PIR {...}
01:00 pmichaud sometimes you have to also indicate the types of the operands
01:00 Austin Hows that?
01:00 diakopter I got pir::typeof__SP() to work
01:00 pmichaud so you might need  pir::typeof__SP
01:00 Austin Ah.
01:00 Austin Okay.
01:00 pmichaud or  pir::typeof__PP
01:00 pmichaud but isnull has only one signature, and PAST knows about it already
01:00 Austin __PP is for me.
01:01 Austin So I could say 7  if pir::isnull($foo) { say("It's null"); }    and expect it to work?
01:01 pmichaud Yes.
01:03 nopaste "pmichaud" at 72.181.176.220 pasted "example pir::isnull usage for Austin++" (12 lines) at http://nopaste.snit.ch/18762
01:04 NotFound pmichaud: ? isnull has two signatures.
01:04 nopaste "pmichaud" at 72.181.176.220 pasted "another example of isnull" (12 lines) at http://nopaste.snit.ch/18763
01:04 dalek parrot: r42575 | jkeenan++ | trunk (158 files):
01:04 pmichaud NotFound: PAST assumes the __IP one
01:04 dalek parrot: [configure] Merge 'configtests' branch into trunk.  Moves t/steps/*.t to run
01:04 dalek parrot: after Configure.pl when --test or --test=configure is specified.  Steps test
01:04 dalek parrot: now rely on %Parrot::Config::PConfig rather than init::defaults.  Most direct
01:04 dalek parrot: dependence on Perl 5 %Config in config steps after init::defaults has been
01:04 dalek parrot: eliminated.  Cf.:  https://trac.parrot.org/parrot/ticket/1189."
01:04 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42575/
01:04 dalek parrot: r42576 | jkeenan++ | branches/configtests:
01:04 dalek parrot: Branch has been merged into trunk and is no longer needed at head.
01:04 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42576/
01:04 * kid51 now recommends:  make realclean && svn up && perl Configure.pl --test
01:05 Austin Cool. Thanks.
01:05 Austin Ahh. "method 'run_tests' not found for non-object
01:06 Austin My old enemy. We meet again.
01:06 japhb kid51, how does --test interact with 'make reconfig'?
01:07 Austin If I were a swarthy latino with a midget sidekick and a sexy accent, I'd put on a pair of leather pants and go shirtless.
01:08 kid51 japhb:  Hmm, I'm not familiar with 'make reconfig' ... or, at least, not recently.  Let me look.
01:09 Austin Hmm. Better make that Corinthian leather pants.
01:09 kid51 If I read the Makefile correctly, what I wrote would be equivalent to:  svn up && make reconfig.
01:10 kid51 Perhaps 'make reconfig' was added when I wasn't looking
01:12 kid51 My hunch was correct:  per 'svn blame', 'make reconfig' was added by reini in r36480.  It escaped my attention.  Patch should have no impact on that make target.
01:13 kid51 Trust, but verify.
01:15 kid51 Verified.
01:16 japhb okie
01:16 Austin pmichaud: I'm not sure if this is a change or not, but it looks like two class/module declarations in a file (module A;   class B; ) wind up nested. (A{  B { } }) instead of serialized. Is this on purpose?
01:18 cconstantine joined #parrot
01:19 Austin pmichaud: (That is, lexically nested.)
01:22 plobsing_ joined #parrot
01:27 plobsing hi #parrot
01:29 japhb o/
01:30 plobsing i've been stalled out a while on libjit_framebuilder, but i think i've got a plan to get it back on track
01:30 plobsing but I don't have enough svn knowhow to make sure its feasible
01:34 plobsing 1) create a new branch from trunk. 2) apply all the commits in libjit_framebuilder resolving conflicts where necessary.
01:35 plobsing this should get the fixes in trunk into the branch easily, so that it can pass tests it fails now
01:37 plobsing basically a manual git rebase
01:37 plobsing unless maybe there's a better way to do things in svn?
01:41 mikehh All tests PASS (pre/post-config, smoke (#30023), fulltest) at r42574 - Ubuntu 9.10 amd64 (gcc with --optimize)
01:42 mikehh rakudo (c00de9d) builds on parrot r42574 - make test PASS / make spectest_smolder (up to r29128 -> #30026) FAIL - Ubuntu 9.10 amd64
01:42 mikehh rakudo - t/spec/S02-lexical-conventions/unicode.rakudo - Parse errors: Bad plan.  You planned 31 tests but ran 26
01:43 mikehh rakudo does not build with g++ but does with gcc
01:43 tetragon joined #parrot
01:50 Coke nopaste?
01:50 purl i heard nopaste was at http://nopaste.snit.ch/ (ask TonyC for new channels) or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at http://www.extpaste.com/ or http://paste.scsys.co.uk (for #catalyst, #dbix-class, #moose  and others) or http://gist.github.com/ or paste or gtfo or tools/dev/nopaste.pl or https://trac.parrot.org/parrot/br​owser/trunk/tools/dev/nopaste.pl
01:51 mikehh Coke: I can't connect to http://nopaste.snit.ch/ at the moment
01:54 mikehh do any of the others paste here?
01:57 diakopter just paste the url to the page it creates..
01:59 pmichaud Austin: (lexically nested)  yes, they may end up nested in that case.  It's actually not valid Perl 6, though.  I'm not sure what to do about that (the Perl 6 spec has some oddities there still also)
02:01 Austin pmichaud: I thought about that after I mentioned it. I know Larry explicitly talked about prohibiting two in-line class decls in the same file at YAPC. My concern was with e.g., two subclasses of a base class: would one of them wind up calling a lexical method from the other, rather than calling an inherited method?
02:01 pmichaud methods aren't lexical
02:01 pmichaud (so no)
02:02 Austin Man, I keep forgetting that they're going invisible now.
02:02 diakopter my guess is it will end up working like C#'s & Java's inner classes, as var as visibility goes...
02:02 Austin Okay, never mind. I guess it's weird but not-quite-defined.
02:04 mikehh I pasted it in #perl6 as http://paste.lisp.org/display/90706
02:05 diakopter mikehh: on ubuntu 9.10, I had to install g++-4.3 and ln -s /usr/bin/g++ to it to get parrot latest to build
02:05 diakopter oh wait.
02:05 diakopter wrong vm.
02:05 diakopter not even a lol.
02:06 diakopter mikehh: sorry; disregard...
02:06 mikehh diakopter: I had build problems, but they got fixed
02:07 diakopter then why the paste?
02:07 diakopter mikehh: how did you go about trying to build rakudo?
02:12 mikehh diakopter: build parrot -> sudo make install, in rakudo: - make realclean, git pull, perl Configure.pl --parrot-config=/usr/local/bin/parrot_config and if that works, make spectest_smolder
02:12 mikehh diakopter: sorry missed the make -j test TEST_JOBS=5
02:14 mikehh diakopter: that worked fine when I built with gcc, but fails with g++
02:14 allison joined #parrot
02:17 diakopter mikehh: I don't know; I've never tried to build rakudo with a parrot built with g++
02:20 mikehh I haven't been testing rakudo in the last couple of weeks - It wouldn't build after ther PCC_reapply barnch merged, but I have started doing language tests against parrot again
02:24 nopaste joined #parrot
02:25 preflex joined #parrot
02:30 mikehh ha nopaste is back
02:30 lucian joined #parrot
02:38 kid51 joined #parrot
02:39 lucian_ joined #parrot
02:49 dalek parrot: r42577 | jkeenan++ | trunk/config/init/defaults.pm:
02:49 dalek parrot: Delete commented-out code.
02:49 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42577/
02:49 dalek parrot: r42578 | jkeenan++ | trunk/t/steps/auto/headers-01.t:
02:49 dalek parrot: Add test for previously untested branch in internal sub _list_extra_headers().
02:49 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42578/
03:03 dalek parrot: r42579 | jkeenan++ | trunk/config/gen/platform.pm:
03:03 dalek parrot: No need to pass $verbose in internal sub _set_limits(), as no verbose output is provided.
03:03 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42579/
03:16 dalek parrot: r42580 | jkeenan++ | trunk/lib/Parrot/Configure/Options/Test.pm:
03:16 dalek parrot: Delete unused variable and branch never entered.
03:16 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42580/
03:16 dalek parrot: r42581 | pmichaud++ | trunk/compilers/pct/src/PAST/Compiler.pir:
03:16 dalek parrot: [past]:  Enable anonymous parameters.
03:16 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42581/
03:22 dalek tracwiki: v124 | jkeenan++ | WikiStart
03:22 dalek tracwiki: https://trac.parrot.org/parrot/wiki/W​ikiStart?version=124&action=diff
03:25 JimmyZ joined #parrot
03:29 mokurai joined #parrot
03:36 nopaste joined #parrot
03:39 nopaste joined #parrot
03:42 janus joined #parrot
03:56 dalek parrot: r42582 | jkeenan++ | trunk/t/steps/gen/opengl-01.t:
03:56 dalek parrot: Write test to simulate case of no OpenGL available.
03:56 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42582/
04:08 mikehh All tests PASS (pre/post-config, smoke (#30027), fulltest) at r42581 - Ubuntu 9.10 amd64 (g++ with --optimize)
04:09 * mikehh needs sleep
04:20 nopaste "pmichaud" at 72.181.176.220 pasted "more tcl fun for Coke" (5 lines) at http://nopaste.snit.ch/18764
04:30 dduncan joined #parrot
04:34 dduncan left #parrot
04:36 dukeleto 'ello
04:39 japhb o/
04:49 dduncan joined #parrot
04:49 dukeleto japhb: how goes it? what are you hacking on lately?
04:50 japhb dukeleto, it goes.  Doing $day_job tonight.
04:50 japhb you?
04:50 purl i think you is very bed in engrish too
04:50 japhb purl, forget you
04:50 purl japhb: I forgot you
04:50 dukeleto japhb: thinking about nqptap and plparrot and kea, but IRL is getting in the way
04:50 japhb nodnod
04:51 dukeleto japhb: what stuff needs doing in plumage that i can help with?
04:51 Coke pmichaud: nifty. I don't pretened to understand teh code at all, however. =-)
04:51 japhb dukeleto, testing.
04:52 dukeleto japhb: which things, in particular, need testing?
04:52 japhb Um, I think I already sent you my testing priorities, but if I didn't, I'll be happy to reiterate.
04:52 dukeleto japhb: where are the testing priorities? maybe i misplaced or forgot
04:53 japhb I'd like to get Glue.pir and Util.nqp to 100%, plus at least a full set of missing args and invalid args tests for plumage-the-fakecutable
04:54 japhb The impending refactor is going to play havoc with testing of lib/Metadata.nqp, and more detail of plumage.nqp, so the above should be a good start.
04:54 dukeleto japhb: which functions need the most testing in Glue+Util?
04:54 japhb Once that's dealt with, I can find more to test, I'm sure.  :-)
04:54 Khisanth joined #parrot
04:55 japhb dukeleto, I hadn't prioritized them particularly.  I really am going for 100% tested, and I don't really care what order they occur in, so low-hanging fruit is completely acceptable to me.
04:55 japhb I just want to get to the point that I can consider both files to be "Just Working".
04:56 japhb Plus, I want to have a good solid test suite for those low level ops when we find the inevitable porting issues.
04:56 japhb Workable for you?
05:00 dukeleto japhb: sounds good
05:00 japhb :-)
05:00 japhb Delegation.  Such a wonderful feeling.
05:02 dukeleto japhb: i will write tests for qx(), split() and slurp() first, since that is the subset of functions that nqpTAP needs
05:02 japhb Sounds great to me
05:03 dukeleto languages?
05:03 purl hmmm... languages is https://trac.parrot.org/parrot/wiki/Languages
05:04 dukeleto purl, languages is also http://icanhaz.com/parrotlang
05:04 purl okay, dukeleto.
05:08 Topic for #parrotis now Parrot 1.8.0 Zygodactyly released | Latest modified TT's: http://icanhaz.com/parrotbugs | Parrot Languages: http://icanhaz.com/parrotlang
05:09 theory joined #parrot
05:09 dalek tracwiki: v108 | dukeleto++ | Languages
05:09 dalek tracwiki: https://trac.parrot.org/parrot/wiki/L​anguages?version=108&action=diff
05:12 dduncan there seem to be multiple Python-on-Parrot implementations, pirate and pynie to name 2 of them ... is there any one that seems to be more complete and actively developed than the others, or is there no clear winner at this time?
05:12 dalek kea: a4939f2 | dukeleto++ | LICENSE:
05:12 dalek kea: Add a license file
05:12 dalek kea: review: http://github.com/leto/kea/commit/a49​39f20a68ea5bd83db7cdefae2ec81dfdfb97c
05:12 dukeleto dduncan: the only one i have heard of is pynie, and i think allison, the lead developer of parrot, works on it when she can
05:13 dduncan okay
05:13 dukeleto dduncan: pirate is listed as retired
05:13 dukeleto dduncan: pynie is 'active'
05:13 dduncan I found both of the other names by a quick search-box look on parrot.org
05:13 dukeleto languages?
05:13 purl i guess languages is https://trac.parrot.org/parrot/wiki/Languages or http://icanhaz.com/parrotlang
05:13 dduncan thank you, that's what I wanted to know
05:13 dukeleto check out that link
05:14 dukeleto dduncan: we would love more pynie devs
05:14 * dukeleto goes to get $beer
05:14 dduncan my situation here is that I've never used Python before but wanted to learn it in a hurry to help a job prospect, and since I wanted to know it anyway, so besides the official C implementation I wanted to check out the Parrot one
05:15 dukeleto dduncan: does python have a spec test suite?
05:15 dukeleto dduncan: from what i know, pynie is python 3k, not 2.x
05:15 dduncan I know it has a test suite ... you can run 'make test' when building the official python and it runs lots of tests
05:15 dduncan both 2.x and 3.x have one
05:16 dduncan don't know if that's a spec test though
05:16 dduncan that pynie-is-3k thing is good to know
05:17 dduncan I was thinking of starting with 3k but I did a general query to Python people last night who said development in v2 is still recommended more due to much wider support
05:17 dduncan still, I like to look to the future
05:30 dukeleto dduncan: sounds like you should work on pynie :)
05:30 dukeleto pynie?
05:30 purl somebody said pynie was http://code.google.com/p/pynie/ or a Python implementation for the Parrot virtual machine
05:31 dduncan is there any effort to do a 2.x compatible Pynie or only a 3.x one?
05:31 dduncan I'll look at Pynie anyway for details
05:32 dukeleto dduncan: i really have no clue.
05:32 dukeleto dduncan: i have never touched pynie
05:33 dukeleto dduncan: which languages are you familiar with?
05:33 dduncan anyway, I thought the best way to learn Python was to actually try writing something useful in it, rather than just meaningless-result tutorials ... probably try to port my Perl 5 module Set::Relation
05:33 dduncan some Python people I talked to said that 2.6 was the best thing to write for at the moment
05:33 dukeleto dduncan: interesting.
05:33 dukeleto dduncan: you should work on what interests you
05:34 dduncan I'm an expert in Perl 5, I'm trying to be an expert in Perl 6 (part way there), and I'm strong in PHP but don't like it
05:34 dduncan I'm also writing my own language, which I intend to be parrot hosted, called Muldis D
05:34 dukeleto dduncan: yes, i remember you from the gsoc mentor list
05:35 dduncan mainly I'm learning Python because a job I like uses it, and also because its good to be familiar with all the popular languages
05:35 dukeleto dduncan: you should write Muldis D in the new NQP
05:35 dukeleto nqp?
05:35 purl somebody said nqp was http://github.com/perl6/nqp-rx
05:35 dduncan that's what I had in mind
05:35 dukeleto dduncan: then you are on the write track
05:35 dukeleto right, even
05:36 dduncan though my very first implementation will be in Perl 5
05:36 dduncan and then NQP will likely be the second
05:36 dduncan the language is designed from the start with both such uses in mind, and also implementations over SQL databases
05:37 dukeleto dduncan: i am working on PL/Parrot, embedding Parrot in Postgres. you might be interested in that
05:37 dukeleto plparrot?
05:37 purl plparrot is the postgres+parrot integration project or http://github.com/leto/plparrot
05:37 dduncan sounds very interesting ... Postgres is my favorite SQL DBMS
05:38 dukeleto dduncan++
05:38 dduncan though ironically I haven't used it yet ... based more on what I know about it and what friends say
05:38 dukeleto dduncan: PL/Parrot is a great reason to start ...
05:39 dduncan since Muldis D is a SQL-alike language in terms of features, one challenge I may have with NQP is that I have a few data types and paradigms that are unlike common languages and so may not have a native Parrot type to map to
05:39 dduncan for example, the "relation" (rowset) type
05:39 dduncan in Perl this is implemented naively as a set/array of hashes
05:40 dduncan now Parrot has native Array and Hash/etc, so I might have to do likewise here
05:41 dduncan what I read so far about Parrot didn't cover defining new collection types, so I'll have to look into the most elegant way to do this
05:41 dduncan on the other hand, defining all the operators should be quite straightforward
05:50 dukeleto dduncan: it is reasonably easy to make your own data types
05:50 dukeleto pla?
05:50 purl pla is probably really focusing on fast 2D data buffers
05:50 dduncan I figured as much, just have to look into it
05:51 dukeleto dduncan: this may be the best example of new data types: http://github.com/Whitekni​ght/parrot-linear-algebra
05:51 diakopter [somewhat OT, maybe]  VM implementers: *very* interesting conversation about IE9's new JS engine.  http://ecn.channel9.msdn.com/o9/ch9/2/​7/8/5/0/5/IE9JSEngineEarlyLook_ch9.mp4
05:51 dukeleto diakopter: any text transcript?
05:52 dduncan hmm, yes, that does seem to be in the direction of what I may be trying to do
05:52 dduncan high performance is good
05:53 dduncan a matrix and a relation are similar in some ways
05:53 diakopter dukeleto: I don't see one, no
05:57 dduncan part of a concern I have with my project, although it may be no trouble at all, is that I may be partly reinventing the wheel on some things Parrot provides ...
05:57 dduncan mainly I speak to the native format of Muldis D code being a database
05:58 dduncan so when Muldis D string code (what people normally write) is parsed ...
05:58 dduncan it is turned into literal database tuples in a system catalog database, analagous to SQL's information schema
05:58 dduncan and then it is that data which is then compiled into Parrot instructions
05:59 dduncan so I can't exactly go straight from the string code to Parrot instructions like most languages
05:59 Austin dduncan, it sounds like you need two different things: a string->tuple parser, and a tuple->parrot compiler.
06:00 dduncan yes
06:00 Austin What's a tuple look like?
06:00 dduncan now it would seem that NQP et al would do the first, sort of like generating a parse tree structure
06:00 dduncan it would likely do the second too though
06:00 dduncan a tuple looks like a Perl Hash
06:00 Austin What's a tuple look like?
06:01 dduncan or a SQL row
06:01 Austin Yeah, but with what contents?
06:01 Austin Is it a particular 3-tuple (like most intermediate forms in compilers) or something else?
06:01 dduncan the keys are always text strings, the values may be any value at all
06:01 dduncan a tuple may have N elements
06:01 Austin Okay.
06:01 dduncan like a SQL table may have N columns
06:02 Austin Umm, yeah, but you usually fix the number of cols in the table once, and you're done.
06:02 Austin Is that true for the compiled form?
06:02 dduncan let me think
06:04 dduncan in the general form, the number of columns in a tuple is not fixed ... but for tuples representing Muldis D code, the number of columns and their names and types are known at compile time
06:04 dduncan because the structure of the system catalog is system-defined and the users can't change it
06:04 Austin Yowza.
06:04 dduncan users can only change the structure of other databases that they define ... by updating the rows in the system catalog database
06:05 Austin I'm looking at the stuff you put into Cpan. Does anyone actually use this?
06:05 dduncan I have no idea
06:05 Austin Muldis-D, I mean, not cpan
06:05 dduncan Muldis D is in development, so no one's using it yet ...
06:06 Austin Okay.
06:06 dduncan but the Set::Relation module is complete and implements part of the language, and it might be in use by people
06:06 Austin I'm reading this: http://search.cpan.org/dist/Muldis-​D/lib/Muldis/D/Dialect/PTMD_STD.pod
06:06 Austin That's the "string language" part you were talking about, right?
06:07 dduncan yes
06:07 diakopter dukeleto: summary: IE9's JS engine compiles to native code, including js' RegExps, uses slot arrays in hidden classes for property access on the fast path and hashtable lookups when it needs to (polymorphic inline cache) fallback to the slow path. Each runtime object is essentially a void*, either a pointer to a small struct or a tagged integer or char.
06:08 dduncan so PTMD_STD is what I expect people would write in when treating Muldis D like a normal language, and that is what I would be making a Parrot hosted implementation of
06:09 Austin Is this a university project?
06:09 diakopter On SunSpider, they're 1.15x as slow as Firefox 3.6beta1 and 2x as slow as Chrome 4dev
06:09 dduncan no, its a personal project, though I fully intend it to go commercial and be supported by the company I own
06:10 Austin Oh.
06:10 dduncan that said, it currently makes no income for me so I have to also seek other paid work to live on while I do it
06:10 dduncan I expect it will make income later
06:11 Austin Sure. You might want to look at making the grammar a little more human-friendly.
06:12 Austin Is there a description of the database-tuple-language form of it?
06:14 dduncan yes, mostly in the other files of the spec, especially Types_Catalog.pod
06:15 dduncan that file describes the data structures that Muldis D string code would be parsed into
06:15 dduncan it describes the shape of the system catalog
06:15 dduncan a compiler would read those to generate the actual machine code that runs
06:16 dduncan to help explain with an example ...
06:16 dduncan the sample code at http://search.cpan.org/dist/Muldis-D/lib/Mu​ldis/D/Dialect/PTMD_STD.pod#rtn_inv_alt_syn ...
06:16 dduncan basically just a trivial function declaration
06:16 dduncan turns into the data structure shown at http://search.cpan.org/dist/Muldis-D/lib/M​uldis/D/Dialect/PTMD_STD.pod#code_as_data
06:16 Austin So the types catalog (aforementioned) describes the various tuples, right?
06:17 dduncan yes
06:17 dduncan tuples and relations ... a relation is just a set of tuples, like a rowset
06:17 dduncan now unlike SQL, in Muldis D a tuple field value can itself be a tuple or relation
06:18 dduncan just like how Perl hashes can contain hash-refs etc
06:18 dduncan and so the catalog structure still sort of looks like normal code, sort of like a tree
06:18 dduncan and the string grammar takes it the rest of the way to fully look like normal code
06:19 Austin I get the impression that the types catalog is essentially the syntax tree for multis. Is that so?
06:20 dduncan yes
06:20 dduncan the catalog types are the native language syntax, and the string code is a human-friendly abstraction
06:21 dduncan Muldis D is homo-iconic, so all Muldis D code is also Muldis D data
06:21 dduncan so you get full introspection and runtime code generation or changing
06:21 dduncan a bit like SQL's information schema but you can update it too, and that's the native way to make schema changes
06:21 Austin So converting string -> tuple -> PAST-> etc. would probably be the right way to go for Parrot.
06:22 dduncan so I'm thinking
06:22 dduncan I have to have the tuple step in order to have the data around to support the introspection/etc
06:22 Austin That being the case, you probably want to bootstrap with some other string->tuple converter.
06:22 dduncan if there was no system catalog, then that could be skipped
06:23 Austin Like, write the tuples with P5, then read them with parrot, etc.
06:23 dduncan using any other language shouldn't be necessary
06:24 Austin Sure, and you can implement any program with a really long magnetic tape.
06:24 dukeleto diakopter: that is some impressive speedup
06:24 dduncan that said, I plan to implement Muldis D first using pure Perl 5, which is what the Muldis Rosetta module is
06:24 Austin Yeah.
06:25 Austin The string->tuple parsing and the tuple->parrot compiling are independent steps. Having one of the known-to-be-good while you develop the other seems like a faster development approach.
06:25 dduncan once its working on Perl 5, then I'll evaluate how to do it in NQP/etc
06:25 dduncan yes, as you say
06:25 Austin *one of the = one of them
06:26 Austin If you can figure out a quick way of converting from tuples directly into PAST, you'll get the rest of it for free.
06:27 dduncan well that is one part that has to be done built-in to the language, in order to support at-runtime code generation from user data
06:27 Austin Sure.
06:27 dduncan at that time its all Parrot data to Parrot data
06:27 Austin But, for example, regexes convert to code via PAST.
06:28 JimmyZ joined #parrot
06:28 Austin You can use your tuple->PAST->pir compiler on the fly.
06:28 Austin Just like regexes, etc.
06:28 Austin ("eval", as it were)
06:28 dduncan fyi, following Perl 6's STD.pm example, I will be writing as much as possible of Muldis D in Muldis D, so that part can also be done once and shared by the Perl 5 and Parrot and etc implementations
06:29 dduncan and the part that actually must be written in Perl 5 or NQP/etc can be minimized
06:29 Austin Sounds good.
06:29 purl rumour has it Sounds good. is there a good way for me to find out when branches are merged, other than read every svn commit
06:30 dduncan of course, redundant parts will likely be made anyway to help performance, but that can be done after it simply works
06:31 dduncan eg, Muldis D would let you define all the rational math ops in terms of integer math ops, but we'd likely have some redundancy shunting to Parrot's native numeric ops
06:32 dduncan anyway, thanks for the talk
06:32 Austin np
06:51 JimmyZ joined #parrot
07:04 dduncan left #parrot
07:10 JimmyZ joined #parrot
07:11 uniejo joined #parrot
07:23 davidfetter joined #parrot
07:35 TiMBuS joined #parrot
07:51 nopaste joined #parrot
07:55 fperrad joined #parrot
07:56 chromatic joined #parrot
07:59 barney joined #parrot
08:00 iblechbot joined #parrot
08:01 nopaste joined #parrot
08:08 slavorg joined #parrot
08:35 cotto joined #parrot
08:37 abqar_ joined #parrot
08:38 Zak joined #parrot
08:41 baest_ joined #parrot
08:42 preflex_ joined #parrot
08:43 gaz_ joined #parrot
08:44 allison joined #parrot
08:44 jan joined #parrot
08:49 integral joined #parrot
08:50 ttbot joined #parrot
08:51 szabgab joined #parrot
08:53 TiMBuS joined #parrot
08:53 fperrad joined #parrot
08:54 uniejo joined #parrot
09:12 dalek lua: 9155208 | fperrad++ | Makefile.in:
09:12 dalek lua: remove staging
09:12 dalek lua: review: http://github.com/fperrad/lua/commit/91​5520877c55fb1a1975aa12db966a142bb18e09
09:12 dalek lua: c087e17 | fperrad++ |  (24 files):
09:12 dalek lua: remove libraries
09:12 dalek lua: now hosted at http://github.com/fperrad/lua-batteries
09:12 dalek lua: review: http://github.com/fperrad/lua/commit/c0​87e174420558ba8c9b09a073ef428847a2ebd9
09:12 dalek lua: 3b2cf82 | fperrad++ | setup.pir:
09:12 dalek lua: git submodule (t/lua-TestMore)
09:12 dalek lua: review: http://github.com/fperrad/lua/commit/3b​2cf826618b9cec17a196c859b44af70315d271
09:24 dalek lua: a899688 | fperrad++ | setup.pir:
09:24 dalek lua: clean Test/More.lua
09:24 dalek lua: review: http://github.com/fperrad/lua/commit/a8​9968813e97137c4fd9f71541a2d94390e239e8
09:26 nopaste joined #parrot
09:43 mikehh joined #parrot
10:20 zak_ joined #parrot
10:22 lucian joined #parrot
10:35 bacek joined #parrot
10:41 nopaste joined #parrot
10:51 nopaste joined #parrot
11:18 payload joined #parrot
11:36 theory joined #parrot
11:48 cognominal joined #parrot
11:51 nopaste joined #parrot
11:58 cconstantine joined #parrot
12:08 payload joined #parrot
12:08 bluescreen joined #parrot
12:14 cconstantine joined #parrot
12:26 dalek rakudo: b5d7e51 | pmichaud++ | docs/ChangeLog:
12:26 dalek rakudo: Update ChangeLog for release.
12:26 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​5d7e51885c81c961cc108e2f80007a9ab613a2d
12:26 dalek rakudo: 6e6a5ac | pmichaud++ | docs/announce/2009-11:
12:26 dalek rakudo: Add 2009-11 announcement draft.
12:26 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​e6a5ac5fc043edf3faf159294c3d999ed725935
12:26 dalek rakudo: 40b555d | pmichaud++ | docs/ChangeLog:
12:26 dalek rakudo: Oops, named argument binding to positional parameters was already done.
12:26 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​0b555d89ca6f5c874330d791b5d48feed8ecc41
12:32 dalek rakudo: b1a2db7 | pmichaud++ | docs/spectest-progress.csv:
12:32 dalek rakudo: spectest-progress.csv update: 453 files, 32753 (85.5% of 38318) pass, 5 fail
12:32 dalek rakudo: Failure summary:
12:32 dalek rakudo: S02-lexical-conventions/unicode.rakudo aborted 5 test(s)
12:32 dalek rakudo: S06-signature/named-parameters.rakudo passed 81 unplanned test(s)
12:32 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​1a2db721ad121471f0b29631c183ee79b008fc5
12:39 payload1 joined #parrot
12:43 bluescreen joined #parrot
12:54 ruoso joined #parrot
12:56 dalek rakudo: c5c2aae | pmichaud++ | docs/announce/2009-11:
12:56 dalek rakudo: Update 2009-11 announcement with latest spectest numbers.
12:56 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​5c2aaead18b1cd43e52e59ebc8b3396b4ee7031
12:56 dalek rakudo: 0fd222b | pmichaud++ | build/PARROT_REVISION:
12:56 dalek rakudo: Bump PARROT_REVISION to Parrot's 1.8.0 release.
12:56 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​fd222bcf9c361a0da933cb45ccf5dacf11c08f3
13:33 payload joined #parrot
13:36 tetragon joined #parrot
13:43 payload joined #parrot
13:56 mikehh joined #parrot
14:03 tetragon joined #parrot
14:08 whiteknight joined #parrot
14:20 allison joined #parrot
14:25 whiteknight good morning #parrot
14:26 iblechbot joined #parrot
14:34 allison joined #parrot
15:00 cconstantine 'mornin
15:02 whiteknight hello cconstantine
15:02 cconstantine another day of staring at bit-tables
15:06 whiteknight lucky
15:07 whiteknight I would be much happier doing some bittwiddling
15:10 Psyche^ joined #parrot
15:24 payload joined #parrot
15:30 cconstantine hehe, yeah... life is rough
15:36 lucian joined #parrot
15:39 Coke IWBNI someone did the magic to add pmtcl to the updates here.
15:40 moritz is it on the Languages wiki page?
15:40 Coke pmichaud: can I get a commit bit to pmichaud/pmtcl ?
15:44 Coke no, that's the magic. =-)
16:01 pmichaud Coke: yes, or we can clone it into the partcl account if you wish
16:03 patspam joined #parrot
16:03 Coke that would be somewhat spiffy.
16:05 moritz Coke: just log in with the partcl account and fork at
16:05 moritz and then add pmichaud as a commiter
16:05 Coke I just gave pmichaud the partcl password because I am still gitn00b.
16:06 moritz or that :-)
16:15 pmichaud I'm about to move the repo... but $otherjob just called so taking care of it first
16:15 nopaste "coke" at 72.228.52.192 pasted "for pmichaud" (29 lines) at http://nopaste.snit.ch/18768
16:16 pmichaud Coke: weird... will look at it shortly
16:20 darbelo joined #parrot
16:23 pmichaud Coke: have a better name for this besides pmtcl?  I just went with that out of habit and because I couldn't think of a better name immediately :)
16:23 pmichaud or perhaps we should take the pmtcl source and move it into the partcl repo?
16:25 Coke probably best to keep it a separate repo for now, given how different it's going to be, but partcl/<foo> is ok. ... pmtcl... nqtcl ? tcl-ng ? I think the goal is, if we adopt it to eventually make this code be partcl/partcl/master
16:25 pmichaud agreed
16:25 pmichaud I thought about nqtcl :)
16:25 Coke +1, then.
16:25 Coke nqt, even.
16:26 Coke (nicked?)
16:33 Coke pmichaud: ah. I think braced_word needs to allow for nested braces.
16:33 Coke I think it's parsing { { } } as "{ { }" and "}"
16:34 Coke does nqp-rx have something like     <PGE::Text::bracketed: {}>
16:34 Coke ?
16:42 pmichaud Coke: oh, yes, you're right
16:42 pmichaud No, we don't have PGE::Text::bracketed, but we can write it.
16:43 dalek tracwiki: v109 | darbelo++ | Languages
16:43 dalek tracwiki: https://trac.parrot.org/parrot/wiki/L​anguages?version=109&amp;action=diff
16:44 darbelo Crap. Forgot to add a comment to the changes.
16:45 Coke pmichaud: hurm. might be sufficient to make that a recursive rule? (http://www.perlmonks.org/index.pl?node_id=179555 seems to suggest this.)
16:45 pmichaud something like that, yes.
16:46 pmichaud okay, repo created as partcl-nqp for now.  (Feel free to rename it to something else if you want.)
16:47 Coke nah, 'sfine.
16:47 hercynium joined #parrot
16:51 pmichaud I think I have a braces fix in place
16:51 pmichaud (have to wait for parrot to rebuild first)
16:52 Coke cannot build partcl-nqp.
16:52 Coke fixing...
16:52 purl somebody said fixing was good, definitely.
16:53 pmichaud oh, yeah
16:53 pmichaud src/gen doesn't get created in time
16:54 pmichaud in rakudo and nqp-rx we just have a empty src/gen in the repo
16:54 pmichaud for this I tried to dynamic create it but failed
16:54 iblechbot joined #parrot
16:54 moritz just put a .gitignore in it
16:55 moritz containing a *
16:55 pmichaud oh, that's good.  I've been putting  IGNORE  in it.  .gitignore makes more sense
16:55 pmichaud In general I tend to do a single .gitignore at the root
16:55 moritz then it's always there, and the contents are automatically ignored
16:55 pmichaud right
16:55 pmichaud .gitignore +1
16:55 pmichaud braced_word fix pushed
16:56 pmichaud actually, I think I'd just do .gitignore where its contents are .gitignore
16:57 pmichaud it's not always the case that I want to ignore everything in src/gen/
16:57 moritz what do you not want to ignore in there?
16:58 pmichaud I'd like to know if files are being generated / left there that I'm not aware of.
16:59 pmichaud it's nice if "git status" shows me those
16:59 pmichaud (and then I explicitly ignore the ones that are 'okay')
16:59 moritz good point
17:00 Coke pmichaud: bah. I have a patch that just fixes deps on src/gen so it's created properly, but I can't push it.
17:00 pmichaud Coke:  did you commit the patch?
17:01 nopaste "coke" at 72.228.52.192 pasted "for pmichaud" (36 lines) at http://nopaste.snit.ch/18769
17:01 pmichaud also, I didn't add you as a committer yet to the new repo :)
17:01 Coke no, but I did. =-)
17:01 pmichaud okay
17:01 Coke if that looks sane to you, go ahead and apply it.
17:01 pmichaud okay, you committed, so next do "git pull" to bring your repo in sync with the remote master
17:01 Coke already did that.
17:02 pmichaud so what happens with "git push" then?
17:02 Coke $ git push
17:02 Coke Enter passphrase for key '/Users/coke/.ssh/id_rsa':
17:02 Coke Enter passphrase for key '/Users/coke/.ssh/id_rsa':
17:02 Coke Enter passphrase for key '/Users/coke/.ssh/id_rsa':
17:02 Coke Permission denied (publickey).
17:02 Coke fatal: The remote end hung up unexpectedly
17:02 pmichaud hmmm
17:02 Coke (*@#&$#@$
17:02 Coke nevermind, it's pushed. =-)
17:02 pmichaud when you cloned, did you use the   git@github.com:partcl/....   url?
17:02 pmichaud or the http: one?
17:03 pmichaud okay, good.
17:03 Coke git. I was entering the wrong pp.
17:03 pmichaud aha
17:03 pmichaud yes, I see it in the repo now.
17:03 Coke <- idiot.
17:03 pmichaud okay, I want to rework the variable handling a bit more, then I'll do eval, then I suspect the #perl6 crowd would like to see a few commits from me over there :)
17:04 pmichaud also it'll be time for lunch :)
17:04 pmichaud btw, I'm *totally* okay with us renaming the "PmTcl" bits to something else -- again, I was just throwing something together at the outset
17:07 Coke pmichaud: another bug. two procs back to back, the second proc is passed into the first one.
17:07 Coke ;(guessing that the closing } of the last word of the first command is not terminating the command.
17:07 Coke (er, well, the newline immediately after it should be doing that.)
17:08 Coke (PmTcl) even pmtcl would be nicer so I can avoid shifting. =-)
17:08 pmichaud that's fine too :)
17:08 pmichaud any name you prefer
17:08 Coke but I may rename them to just 'tcl' at some point.
17:08 pmichaud that works
17:08 pmichaud that probably makes the most sense
17:08 pmichaud I did "PmTcl" just because I didn't know if/when we'd be merging it into the existing 'Tcl' code
17:08 dalek parrot: r42583 | fperrad++ | trunk/runtime/parrot/library/distutils.pir:
17:08 dalek parrot: [distutils] the 3rd parameter of 'install' is now optional
17:08 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42583/
17:09 nopaste "coke" at 72.228.52.192 pasted "for pmichaud" (21 lines) at http://nopaste.snit.ch/18770
17:09 pmichaud ...weird
17:10 pmichaud oh!
17:10 pmichaud one of my other fixes didn't get committed
17:10 pmichaud oops.
17:10 Coke I don't see that command has a \n check.
17:10 pmichaud right
17:10 pmichaud I did that earlier today... but I guess I didn't commit?
17:10 pmichaud just a sec
17:10 Coke yay, it's kind of making sense now. =-)
17:11 pmichaud ah, I didn't push.
17:11 pmichaud okay, I'll just re-apply the patch.
17:14 pmichaud pushed.
17:14 Coke added partcl-nqp to dalek's list.
17:14 pmichaud see if that fixes things.
17:15 Coke yay. no more compiletime errors on test_more.tcl
17:15 Coke pmichaud++
17:15 pmichaud yeah, but it seems to be missing some stuff in the target=pir output
17:15 pmichaud at least on this end :(
17:15 pmichaud looking.
17:16 pmichaud it's only parsing the one command.
17:17 pmichaud ah
17:17 pmichaud it doesn't know what to do with multiple newlines or separators
17:18 pmichaud there.
17:20 pmichaud pushed.
17:20 Coke the code inside a proc is not executed anymore it seems.
17:21 pmichaud ?
17:21 pmichaud argggh, another command separator bug
17:22 nopaste "coke" at 72.228.52.192 pasted "for pmichaud" (7 lines) at http://nopaste.snit.ch/18771
17:22 Coke Isn't tcl fun? =-)
17:22 Coke <duck>
17:22 pmichaud Perl 6 is harder.
17:22 pmichaud :-)
17:23 Coke no doubt.
17:23 Coke ah. yah, this works:
17:23 Coke proc skip_all {} {puts 1..0;}; skip_all
17:24 pmichaud right -- it's looking for an explicit terminator
17:24 pmichaud eos is a valid terminator at the end
17:24 Coke just adding a * after the ;\n check seems to work.
17:25 pmichaud except that will allow zero command separators
17:25 Coke ah, right, want to alternate with $$ ?
17:25 pmichaud $
17:25 pmichaud but that causes another issue
17:25 pmichaud because we end up with an infinite loop
17:26 Coke sounds like a good time for me to grab lunch. =-)
17:26 pmichaud yes, likely :)
17:32 dalek parrot: r42584 | fperrad++ | trunk/runtime/parrot/library/distutils.pir:
17:32 dalek parrot: [distutils] add a step 'update'
17:32 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42584/
17:36 whiteknight lunch does sound very good
17:36 whiteknight but I'm stuck in a stupid video conference
17:36 pmichaud afk, lunch
17:37 pmichaud (pushed fix to partcl-nqp)
17:39 dukeleto 'ello
17:44 dalek rakudo: d351043 | jnthn++ | docs/ (2 files):
17:44 dalek rakudo: Tweak the release announcement and change log to clarify what the nested siggies thing really is.
17:44 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​351043957248727151dd2cc65c43d16cd4757b9
17:44 whiteknight hello
17:49 dalek rakudo: b237f9c | masak++ | docs/announce/2009-11:
17:49 dalek rakudo: [docs/announce/2009-11] filled in the name "Lisbon"
17:49 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​237f9c06fd1f7435b0f060cb332aed7d8d2e60c
17:53 Coke pmichaud: added support for ""
17:54 Coke if an hllcompiler dies with a panic, how can I see what it was thinking at that point? add more panics?
17:57 whiteknight it was thinking "panic!"
17:57 Tene panic("The world is so horrible... and all the diodes in my left side hurt.")
17:58 nopaste "coke" at 72.228.52.192 pasted "message pmichaud" (6 lines) at http://nopaste.snit.ch/18773
17:58 Coke here I am, brain the size of a planet.
17:58 Coke so, can anyone here help me diagnose why that fails? =-)
18:03 dukeleto Coke: i can try
18:03 Coke partcl-nqp is at github under partcl/ , nopaste shows the issue.
18:03 Coke dukeleto++
18:14 dalek wmlscript: 867f3fb | fperrad++ |  (5 files):
18:14 dalek wmlscript: remove Configure & Makefiles
18:14 dalek wmlscript: review: http://github.com/fperrad/wmlscript/commit​/867f3fb7828e5e12427ce5d9c64f50a215fa6e06
18:18 dalek rakudo: 1db377a | masak++ | docs/ChangeLog:
18:18 dalek rakudo: [docs/ChangeLog] added a few more changes
18:18 dalek rakudo: ...from the 'git log'.
18:18 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​db377a64104da0ae18711f0d92e4882c8fa765f
18:20 dalek wmlscript: ac7db73 | fperrad++ | .gitignore:
18:20 dalek wmlscript: update .gitignore
18:20 dalek wmlscript: review: http://github.com/fperrad/wmlscript/commit​/ac7db735d0fbffddf3d01c3de60fe87d37a5ad58
18:20 lucian joined #parrot
18:23 payload joined #parrot
18:24 dalek rakudo: f5065b6 | masak++ | docs/release_guide.pod:
18:24 dalek rakudo: [docs/release_guide.pod] rolled releases forward
18:24 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​5065b6e0d4a5e79dde25773fec16c3b04c676c1
18:38 pmichaud back from lunch
18:38 whiteknight w00t
18:42 Tene yay lunch
18:49 amire80 joined #parrot
18:50 pmichaud Coke: fix for {{r ""}}   pushed.
18:50 amire80 Hi. I added the RSS for www.rakudo.org to Google Reader and the newest item is from Mar 2, 2009.
18:50 pmichaud amire80: yes, we know.  :-|
18:51 Coke hurm. dalek hasn't picked up partcl-nqp. wonder if I put it in wrong.
18:51 amire80 pmichaud: Isn't it supposed to be a very easy thing to fix?
18:51 pmichaud amire80: we've reported the problem numerous times to the site administrator; and we've not been able to get sufficient access to fix it ourselves.
18:51 pmichaud (and we've not invested the energy to see about moving to a new site)
18:52 amire80 pmichaud: Oh well. Thanks for the quick reply!
18:52 pmichaud perhaps we should disable that rss feed link altogether
18:52 pmichaud since it doesn't work
18:54 PerlJam I wonder if that's something you can fix as a Drupal admin or if you actually need to ssh in.
18:54 pmichaud I think we have to get an extension installed
18:55 PerlJam Hrm.  masak's announcement isn't on rakudo.org
18:55 pmichaud feel free to post it :)
18:55 pmichaud or to check with him about posting it :)
19:03 Coke pmichaud: whee. test_more.tcl now parses.
19:03 pmichaud yay
19:03 Coke (runs even, but all it does is define a bunch of procs, so nothing happens. =-)
19:05 dalek winxed: r180 | julian.notfound++ | trunk/examples/parser.winxed:
19:05 dalek winxed: parser example: now is able to compile a simple addition
19:05 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=180
19:05 joeri joined #parrot
19:06 nopaste "coke" at 72.228.52.192 pasted "backslash newline substitution.." (6 lines) at http://nopaste.snit.ch/18774
19:07 Coke pmichaud: fyi. I'll see if I can fix it later. (just the first thing I found trying to run an actual .t)
19:07 Coke (I will of course be very happy if you fix it. =-)
19:08 chromatic joined #parrot
19:11 Coke tcl_misc.t has a bunch of things that might be confusing, btw. (like a bare $)
19:11 Coke (and the {*} syntax)
19:16 mokurai joined #parrot
19:18 pmichaud I can do a quick fix for comments
19:21 pmichaud pushed.
19:23 cotto_work pmichaud, are there any plans to allow :main subs in nqp so pure-nqp programs can work with cli args?  (I know about plumage's approach.)
19:24 PerlJam nqp already supports INIT {},  MAIN {} can't be that much more trouble :)
19:24 pmichaud PerlJam: yeah, except we'd want it to be a sub.
19:24 pmichaud and in Perl 6 semantics, MAIN is actually run *after* the mainline code, not instead of
19:25 pmichaud so far I'm kind of liking plumage's approach
19:25 pmichaud in a couple of places I've just done    @*ARGS = getinterp[2]
19:25 pmichaud er
19:25 pmichaud in a couple of places I've just done    @*ARGS = pir::getinterp[2]
19:25 cotto_work That'd work.
19:26 cotto_work (also, it's nice to know that that syntax works)
19:26 pmichaud it only works as of last night
19:26 pmichaud (I think I committed that change... checking)
19:26 pmichaud oops, I did not commit that change.
19:27 cotto_work npq-rx redefines "moving target"
19:27 pmichaud not at all.  This is just a new feature :-)
19:28 cotto_work Yes.  I definitely appreciate that once a feature works and has tests, it's pretty safe to rely on it.
19:28 pmichaud okay, the following definitely works for now
19:28 pmichaud my @ARGS := pir::getinterp__P[2]
19:28 PerlJam It's still a moving target.  But at least it's moving in a consistent direction at a consistent speed.
19:28 pmichaud I'll want to get rid of that __P part.
19:28 cotto_work pmichaud, so that works currently?
19:28 pmichaud I'm pretty sure it does -- checking
19:30 nopaste "pmichaud" at 72.181.176.220 pasted "pir::getinterp__P works" (13 lines) at http://nopaste.snit.ch/18775
19:32 pmichaud so far I like this approach a bit better than having boilerplate in every NQP module that tries to set up an @ARGS variable
19:33 pmichaud er
19:33 pmichaud than having NQP generate boilerplate in every output PIR/PBC that tries to set up an @ARGS variable
19:33 pmichaud I think having it explicit works out slightly better
19:34 pmichaud I've also been toying with the idea of having    "sub foo is main { ... }"   to designate subs to be flagged with :main.... but I haven't quite figured out how that should work yet.
19:35 cotto_work getinterp__P works fine for me
19:37 whiteknight pmichaud: more perl6-ish might be "sub foo is pir::main { ... }"
19:37 pmichaud oh, "is main" isn't too bad, it's just a trait
19:38 pmichaud pir::main  should be a call to the pir::main opcode
19:38 moritz sub foo is pir<main> { }
19:38 whiteknight ah, yes
19:39 whiteknight I obviously don't know all the syntax. I'm trying to think of  a way to prefix it with a namespace so you don't add syntax to NQP that's not part of Perl6
19:39 pmichaud it's really not a problem, since in Perl 6 you're allowed to define custom traits
19:40 pmichaud so, our  "use pir;"   module in Perl 6 would likely know how to handle the 'main' trait on subs.
19:45 whiteknight ok
19:45 * whiteknight has just created the most convoluted system to convert ASCII characters into their decimal number equivalents ever
19:46 chromatic sprintf?
19:46 purl sprintf is the only sane way to do fixed width numeric printing or the floating point version of the long distance phone company or ok. i was doing a bunch of pack/unpack recently so it is fresh
19:47 diakopter it?
19:47 purl it is not current
19:47 whiteknight here's a hint: it involves a serial cable, a celluar modem, a VPN, a server in Texas, and a database server in Chicago
19:47 particle if you ask me, the modem is cheating.
19:48 whiteknight I was trying to teach the embedded system to send smoke signals
19:48 particle hcf
19:48 whiteknight or to use emac's Meta+Ctrl+Butterfly
19:48 whiteknight like a real programmer
19:48 NotFound whiteknight: Maybe is you who's smoking something? ;)
19:48 whiteknight haha, entirely likely
19:49 whiteknight and much to my disappointment, not a single damn step in this chain involves Parrot
19:52 pmichaud Coke: I've now pushed 'eval' and 'if/then/elsif/else'.
19:54 pmichaud I'll probably start to refocus on rakudo a bit soon, but will gladly answer questions or prototype new features or fix easyish bugs :-)
19:54 diakopter eval??!?  in nqp-rx?
19:54 diakopter oh. tcl
19:55 pmichaud eval already exists in nqp-rx
19:55 pmichaud NQP::Compiler.eval('something')
19:55 * diakopter was unawares
19:55 * diakopter ponders how to implement that
19:55 pmichaud it doesn't handle lexically scoped values yet... but I'm not sure nqp wants to be doing that anyway :)
19:57 fperrad_ joined #parrot
19:57 whiteknight does NQP::Compiler.eval() allow you to specify the language?
19:58 whiteknight or do you have to manually create the new compiler automatically?
19:58 whiteknight s/automatically//
20:00 NotFound $ ../../parrot primes.pasm
20:00 NotFound N primes up to 5000 is: 669
20:00 NotFound last is: 5001
20:00 NotFound $ ./primes
20:00 NotFound N primes up to 5000 is: 669
20:00 NotFound last is: 4999
20:00 NotFound Is this expected?
20:00 NotFound The "last is" different result.
20:05 cotto_work NotFound, sounds buggy
20:06 NotFound The .pl says the same as the .c
20:06 bacek joined #parrot
20:07 cotto_work hi bacek
20:08 whiteknight NotFound: how is it getting different results?
20:08 whiteknight that definitely doesn't look right
20:08 cotto_work it's probably an implementation bug
20:08 NotFound whiteknight: just by running it.
20:08 whiteknight urg
20:08 whiteknight I don't think that should be
20:09 NotFound And adjusting the top number in the other versions, of course.
20:10 NotFound PacoLinux is doing a primes.winxed and checking his results I noticed that.
20:13 pmichaud NQP::Compiler.eval() assumes you're wanting to compile an NQP program (otherwise you wouldn't be sending it to NQP::Compiler :)
20:13 pmichaud it also assumes that the NQP::Compiler has been loaded, which might not be the case for separately compiled modules
20:13 pmichaud I've been thinking that Parrot.eval(...)   might be able to handle separate languages, though.  At least, that's somewhat what Tene++ and I have been aiming towards
20:14 pmichaud it might also end up being    pir::compreg('Parrot').eval('...code...', :lang<OtherLang>)
20:14 pmichaud where the Parrot compiler object knows how to automatically load OtherLang as needed.
20:15 pmichaud or perhaps it'll be Parrot::Compiler.eval(...)
20:15 pmichaud we're still working out the API we'd like to have/use.
20:15 pmichaud or perhaps we end up using pir::load_language  somehow.
20:23 nopaste "pmichaud" at 72.181.176.220 pasted "[source] command in partcl-nqp (for Coke++)" (12 lines) at http://nopaste.snit.ch/18776
20:24 pmichaud what's really scary is that nopaste #18776 is just a four-line change.  :)
20:24 cotto_work So the takeaway is that npq-rx is a system that allows pmichaud to write new compilers really quickly. ;)
20:24 pmichaud that's the takeaway at present, yes.
20:25 pmichaud my next trick will be to write sufficient documentation so that others can use nqp-rx to write compilers really quickly.  :)
20:25 pmichaud now if only I could write the sufficient documentation really quickly
20:25 pmichaud hey!
20:25 pmichaud I know!
20:25 pmichaud since I can write compilers quickly in nqp-rx, I should write a compiler that generates the documentation and tutorial!
20:26 pmichaud that should speed up the process a lot, I guess.  :-)
20:28 NotFound You can write an AI that develops compiler based on a vague description ;)
20:29 NotFound "I want an object oriented mixture of Cobol and Forth", for example X-)
20:29 cotto_work pmichaud, I'd almost not put it past you.
20:34 japhb NotFound, I believe both of them have had OO bolted on, but I'd guess WILDLY different ways of looking at OO.
20:35 pmichaud afk, kid pickups
20:35 japhb For that matter, there's IIRC over a dozen different ways that OO has been bolted on to ANSI FORTH, let alone all the Forth-like languages ...
20:36 NotFound japhb: IAs are supposed to handle difficult tasks, isn't it?
20:37 NotFound s/IA/AI
20:39 NotFound But maybe that's a lot hard than beating Kasparov at chess.
20:39 japhb NotFound, well, I was just reading about IBM having computationally simulated the cortex of a mammalian brain more complex than a cat, so I guess we only have another couple decades before we can have an AI smart enough to tell you to "PUT DOWN THE COMPILERS AND BACK AWAY"
20:40 NotFound Daisy, Daisy...
20:40 Tene whiteknight: NQP-rx is written in NQP.
20:40 kthakore joined #parrot
20:40 kthakore chromatic: around?
20:40 whiteknight Tene: I know
20:41 kthakore hi calculus !!!
20:41 Tene whiteknight: "That's no small feat for a program written in the Parrot equivalent of assembly language."
20:41 japhb The IBM announcement makes me think about Accelerando:  If they can simulate a cat slower than real time, could they simulate a lobster faster than real time?
20:41 kthakore japhb: lol
20:41 kthakore japhb: nice question
20:41 particle ibm's new artificial lobster is as fast as ten fast lobsters!
20:42 japhb particle, LOL
20:42 NotFound That remind me the joke: The new Cray can finish an infinite loop in less than minute.
20:42 japhb "Lower chance of losing skin to a random claw, but more chance that you won't be able to afford the electric bill."
20:42 whiteknight NQP is written in PIR for stage 0 bootstrapping
20:43 diakopter NotFound: but how fast can a minute finish it?
20:43 whiteknight there's no way it can just be written in itself all the way down
20:43 particle why on earth isn't nqp called turtle?
20:43 japhb NotFound, in my mind the coolest Crays will always be the immersively cooled ones
20:44 japhb particle, Because turtle is a fun language all its own
20:44 japhb (well, turtle graphics for logo, technically)
20:44 japhb whiteknight, what, you mean like C?
20:45 Tene whiteknight: nqp-rx is written in nqp, and uses a precompiled version of itself to compile itself.
20:45 whiteknight japhb: yes, and C compilers have (or at least had) a bootstrapping stage at one point
20:45 Tene whiteknight: it used old NQP to start the bootstrapping, iirc.
20:45 whiteknight Tene: okay, then I was mistaken. I was under the impression that its stage 0 was written in PIR
20:45 NotFound whiteknight: maybe they just used a flux condenser.
20:45 Tene whiteknight: I could be wrong. :)
20:46 whiteknight It's really not that big a deal
20:46 moritz I know that PGE was involved; not sure about NQP
20:46 japhb whiteknight, the stage 0 is compiled NQP.
20:47 whiteknight okay. I was wrong then
20:59 bluescreen joined #parrot
21:04 theory joined #parrot
21:05 lucian joined #parrot
21:05 Coke pmichaud++
21:07 pmichaud PGE and old NQP were used in the writing of nqp-rx, but they're no longer used
21:07 pmichaud the "stage 0" is a precompiled version of nqp
21:08 pmichaud there no longer exists a set of files that can get you directly from pge/nqp-rx to the current nqp, except for what's in the repository history.
21:08 pmichaud sorry
21:08 pmichaud pge/nqp to the current nqp-rx
21:12 davidfetter joined #parrot
21:13 * Coke almost wants "svn up" to do "git pull" if I'm in a .git dir. :P
21:14 * darbelo is pretty sure that can actually be done with a few clever aliases.
21:14 Coke I suspect I'd end up shooting mysefl in the foot with it. =-)
21:15 Tene Coke: write a script to do it.
21:15 Coke tene;yes, I could wrap 'svn' or create a new command. easier to just whinge once here and get over it. =-)
21:16 Tene svn() { [ -d .git ] && git pull || svn $@ }
21:16 Tene might do it.
21:16 Coke pmichaud: $ by itself is a word. is there a way to tell <variable> to leave that alone?
21:16 pmichaud Coke:  better is to recognize $ by itself
21:16 Coke ok. will add that to <word>
21:17 japhb Coke, Tene: Or go the old RCS route and make the usual second-level commands (commit, log, etc.) just be top-level scripts of their own.  Instead of "git commit" or "svn commit" it's just "commit"
21:17 pmichaud is $ by itself a word only when it's standalone?
21:17 pmichaud or can it occur in the midst of other characters?
21:17 japhb Or if you really want to namespace them, call the top level script 'vcs' or somesuch generic thing
21:18 Tene I never have problems getting confused between vcs programs, so wouldn't be much utility for me.
21:18 japhb Code from the "vcs mode" of most free editors ought to supply all the brains to be cover the set of common actions.
21:18 Coke pmichaud: in the midst of other characters, you'd probably try to parse it as variable interpolation.
21:19 japhb Tene, sorry.  I'm in a bikeshed mood today.  Sheesh.
21:19 Coke might work as a trailing char...
21:19 pmichaud Coke:  I'm asking mainly about  something like  $+3
21:19 Tene japhb: :)
21:19 darbelo japhb: Opera Mauve!
21:20 Coke pmichaud: "+3" is a valid variable name.
21:20 japhb "Oh. So *that's* puce."
21:20 Coke also, asdfasdf$ seems to be reasonable.
21:21 darbelo Pontificia Universidad Catolica del Ecuador? What's that got to do with bikesheds?
21:21 darbelo ;)
21:21 Coke pmichaud: ah, but $+7 is parsed as a literal and not interpreted.
21:21 pmichaud Coke: not according to the syntax it's not a valid variable
21:22 Coke % set +7 8 ; puts ${+7}
21:22 Coke 8
21:22 pmichaud it has to be letters, digits, underscores, or namespace separators
21:22 theory_ joined #parrot
21:22 pmichaud ${...} is different
21:22 Coke (that from an an 8.4 tcls)
21:22 pmichaud variable should learn to parse ${...}
21:22 Coke right, {} is special.
21:22 pmichaud we don't want to treat it as separate $ and {...} words
21:23 Coke my problem right ATM is that '$' all by itself is allowed. (just trying to get through tcl_misc.t)
21:23 pmichaud okay
21:23 Coke pushing...
21:23 purl i guess pushing is the answer
21:23 pmichaud but I suspect we want to add it to quoted_atom and bare_atom rather than a separate word
21:24 pmichaud because it can be a part of a larger word
21:25 Coke once we can pass some tests, it'll be more obvious how to fix the edge cases, I think.
21:25 pmichaud oh, I think I have the answer
21:25 pmichaud editing/pushing
21:26 pmichaud ah, yes, it's pretty much what you did
21:26 Coke set a [] is legal.
21:27 Coke pretty sure it's the same as ;;
21:28 pmichaud pushed.
21:28 payload joined #parrot
21:29 pmichaud I'm guessing that
21:29 pmichaud token quoted_atom:sym<[ ]> { '[' ~ ']' <command> }
21:29 pmichaud should be
21:29 pmichaud token quoted_atom:sym<[ ]> { '[' ~ ']' <script> }
21:29 pmichaud perhaps.
21:29 pmichaud are semis allowed in the brackets?
21:30 Coke % puts [;;;;;;]
21:30 Coke
21:30 pmichaud aha
21:30 pmichaud "To do this it invokes the Tcl interpreter recursively to process the characters following the open bracket as a Tcl script.
21:30 pmichaud *script* is right :)
21:30 pmichaud I'll let you make that change.  Don't forget to update the Actions.pm file
21:31 pmichaud (haev to go pick up daughter)
21:31 pmichaud bbiab
21:31 Coke ... otherwise it'll blow up when you try to run a null command. =-)
21:35 payload joined #parrot
21:39 pmichaud (back)
21:40 pmichaud Coke: I also think I've come up with a scheme to precompile (constant) proc definitions at compile-time.
21:40 Coke pmichaud: that would be spiffy, keeping in mind we need to allow non-compiling procs to explode only at runtime.
21:41 Coke pmichaud: (I made a change from <command> to <script> and am now trying to find where the AST is going blam.
21:41 Coke Method 'ast' not found for invocant of class 'Undef'
21:41 Coke current instr.: 'parrot;PmTcl;Actions;bare_atom:sym<[ ]>' pc 10186 (src/gen/pmtc
21:41 Coke l-actions.pir:650)
21:42 pmichaud did you also change
21:42 pmichaud token quoted_atom:sym<[ ]> { '[' ~ ']' <command> }
21:42 pmichaud ?
21:42 pmichaud and
21:42 pmichaud token bare_atom:sym<[ ]> { '[' ~ ']' <command> }
21:42 pmichaud oh, wait, I'm in wrong file
21:43 pmichaud method quoted_atom:sym<[ ]>($/) { make $<command>.ast; }
21:43 pmichaud method bare_atom:sym<[ ]>($/) { make $<command>.ast; }
21:43 pmichaud those need to e changed also
21:43 pmichaud *be
21:43 pmichaud (in general each rule in the grammar has a corresponding method in the actions)
21:44 Coke ah, and that is exactly where the parrot backtrace was pointing, now that I read it right.
21:45 PerlJam pm: What's with the load_bytecode at the top of pmtcl's Grammar.pm?
21:45 pmichaud it's loading in the HLL compiler library
21:45 Coke how do you say defined() in nqprx?
21:46 pmichaud you shouldn't need to test for defined()
21:46 pmichaud you should just be able to s/command/script/
21:46 Coke I'm getting an error that an Undef is being passed in, so I'm trying to check for definedness.
21:46 pmichaud the problem is that $<command> no longer exists, because we changed <command> to <script> in the rule
21:46 pmichaud so now we need to look in $<script>
21:46 Coke ... OH
21:46 Coke [headplant]
21:47 PerlJam pm: sure, but what does that mean?  :)  what requires HLL.pbc in that file?
21:47 pmichaud PerlJam: what line immediately follows the load_bytecode ?
21:48 PerlJam okay, then why doesn't Actions.pm also need such a line?
21:49 pmichaud because it was already loaded by Grammar.pm, which comes first.
21:49 pmichaud we could put it in Actions.pm also, but it'd be redundant.
21:49 PerlJam okay, so you are relying on load order
21:49 pmichaud yes.
21:50 diakopter Coke: pir::isa__IPS($obj, 'Undef')
21:50 PerlJam or you could put it in PmTcl.pir, right?
21:50 pmichaud PerlJam: yes, I could do that
21:51 pmichaud eventually I'm hoping to find a good way to eliminate the .pir file, though.
21:51 PerlJam make it all nqp?
21:51 pmichaud haven't decided if the answer is pir::include(...), or what.
21:51 pmichaud yes, make it all nqp
21:54 pmichaud (non-compiling procs explode at runtime)   yeah, that part's a bit tricky I guess
21:54 dalek winxed: r181 | julian.notfound++ | trunk/examples/parser.winxed:
21:54 dalek winxed: first step of register allocator in parser example
21:54 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=181
21:55 Coke pmichaud:  set a [;] yields set("a", ) # BOOM. where do I want to make an empty word return "" instead of nothing?
21:55 pmichaud what should it yield?
21:56 pmichaud oh, I see.
21:56 pmichaud inside of method script($/)
21:56 pmichaud we probably want
21:56 pmichaud (typing)
21:57 nopaste "pmichaud" at 72.181.176.220 pasted "handle empty script (for Coke)" (8 lines) at http://nopaste.snit.ch/18778
21:58 pmichaud which puts commands into the Stmts node if there are any, otherwise it puts in a constant "" (which means the result of the stmts will be a constant "")
21:58 Coke pmichaud++
22:00 PerlJam pm: What happens if you just don't do the push?
22:01 pmichaud then the stmts node doesn't have a result, and you get what Coke mentioned above
22:01 pmichaud "set"("a", )   # BOOM
22:01 PerlJam ah
22:01 pmichaud with the result, we'll get   "set"("a", "")  # no BOOM
22:02 Coke that gets us through everything up to the {*} syntax in tcl_misc.t
22:03 pmichaud nice
22:03 pmichaud okay, let me look at {*} a bit
22:03 pmichaud (scary to think that Perl 6 also has a {*} )
22:03 particle there are no new ideas.
22:03 Coke pushed
22:04 Coke pmichaud: it's kind of a compile time eval. sort of.
22:05 Coke http://www.tcl.tk/man/tcl8.5/TclCmd/Tcl.htm#M9
22:05 pmichaud yeah, that's what I'm reading now
22:05 Coke whee!
22:06 pmichaud okay, stepping through this one piece at a time...
22:06 * PerlJam wonders what the consequences of lowering the barrier to creating compilers will be.
22:06 pmichaud if a word starts with {*}, then we remove the {*} and parse the rest
22:06 pmichaud that part I get
22:07 pmichaud the substitutions happen immediately?
22:07 pmichaud so that   {*}[eval 3+5]   is the same thing as {8}  ?
22:07 Coke s/eval/expr/, and yes.
22:07 pmichaud er, yes, expr
22:08 pmichaud and having done the substitution, we re-parse that for words?
22:08 pmichaud but we don't substitute it
22:08 pmichaud so we just split it up into whitespace
22:08 NotFound PerlJam: You mean the new nqp, or parrot in general?
22:09 PerlJam NotFound: both really.  Parrot could be the universal substrate, and NQP the build-a-language tool.
22:09 dalek winxed: r182 | julian.notfound++ | trunk/examples/parser.winxed:
22:09 dalek winxed: add operator * to parser example, to see precedence working
22:09 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=182
22:10 pmichaud Coke: I can't seem to get it to work in tclsh.... I must not know what I'm doing.
22:10 Coke pmichaud: it's an 8.5 thing.
22:11 Coke if you're using 8.4, it'll fail.
22:11 Coke ./tclsh \n % echo $tcl_version
22:11 viklund joined #parrot
22:11 pmichaud ah, 8.4 on my laptop.  I have 8.5 on my desktop - just a sec.
22:12 PerlJam If parrot were embedded into browsers, word processors, spreadsheets, databases, photoshop-like software, window managers, etc. and we could use NQP to target "any" language to it, even one of our own creation ...  I think that would be awesome.
22:12 pmichaud oh wait, it's 8.4 there too :-(
22:12 pmichaud I thought for sure I installed 8.5
22:12 Coke puts [llength [list {*}"There are four lights"] ]
22:12 pmichaud well, I need to upgrade kubuntu anyway... maybe I'll get the new tclsh then :)
22:12 Coke pmichaud: often "tclsh8.5" is an alias.
22:13 Coke (even if primary tcl is 8.4)
22:13 pmichaud installing.
22:13 purl installing is one thing, using it is another. or in the 'famous last words' category
22:13 Coke heading out, back later.
22:14 NotFound PerlJam: I think the consequence can't only be one: lots of new languages, and new compilers for old languages.
22:14 PerlJam I'm not sure how I'd feel about the resurgence of old, presumed-dead languages.
22:16 NotFound PerlJam: old languages never die.
22:16 NotFound Even if you need a emulator to run them.
22:17 joeri left #parrot
22:20 darbelo fortran and lisp are both still alive. It doesn't get much more older than that ;)
22:22 NotFound darbelo: the depends if you count from birth or from losing most of his users.
22:23 NotFound With the second, fotran and lisp are still zero old.
22:24 darbelo I was counting from birth. FORTRAN is basically the first compiled 'High level' language.
22:26 Whiteknight joined #parrot
22:27 NotFound darbelo: yes, but I don't think a lot of recent fortran programs can be compilled with the first dialects.
22:27 pmichaud Coke: {*} is just ... weird.
22:29 NotFound Here you have a possible usage for poweful compiler writing tools: reconstructing old languages evolution.
22:30 PerlJam I talked with the owner of the skid-o-can company a couple of weeks ago.  He has some software written in Clipper (that thing that came in between dBASE and FoxPro) that needed updating.  I guess I should have sold him on writing a parrot based version that executes all the old code and can be extended with more modern libraries.  :)
22:30 pmichaud that would seem eminently doable :)
22:30 NotFound You just need to link some library for dbase files.
22:31 PerlJam I don't really want to walk in Dan's footsteps even with more modern tools at my disposal
22:32 NotFound But take into account that lots of Clipper problems link parts written in C or assembler.
22:32 NotFound s/problems/programs
22:33 darbelo PerlJam: Wasn't there a open source clipper compiler written a few years back or so?
22:33 PerlJam Hmm.   I wonder what the market is like there.  (taking old software and making it viable into the future on newer hardware)
22:33 PerlJam darbelo: dunno.  I haven't used clipper in nigh on 20 years
22:33 * pmichaud takes a short break
22:33 pmichaud bbl
22:34 NotFound PerlJam: you may be surprised. I wrote some years ago a Basic interpreter '80 style, and there are people around the whole world using it.
22:34 NotFound (not a lot, of course)
22:34 PerlJam NotFound: not much surprises me any more  :)
22:35 PerlJam I wouldn't be surprised if I ran into a business still storing critical data on an 8" floppy disk.
22:35 NotFound But if for 'market' you mean money.... not much ;)
22:36 PerlJam NotFound: yeah, I think the reason these people are still using these antique systems is that they have no money to switch
22:36 PerlJam The software does what they need; they're able to keep it running; why change?
22:36 NotFound PerlJam: I've heard about industrial machinery still working using a Sinclair Spectrum mainboard.
22:37 PerlJam (except the skid-o-can guy wanted to add google-maps style mapping to his app.  He had a reason to change)
22:38 NotFound PerlJam: or just they learned that basic style in his day, and never programmed again.
22:42 NotFound I think I have somewhere a Linux Journal article about a guy that updated the systems of a supermarket by porting a foxpro application to a dbase clone on linux.
22:42 japhb NotFound, the leader of our local Perl Mongers owns a guitar factory, and he seems to specialize in using ancient machinery.  He even has an industrial belt sander so old he couldn't find anyone who even knew how to forge the original style bearings for it.
22:43 japhb Once of his metal cutting machines is controlled by a patched-in Commodore (Vic-20? C64? I forget), because the paper tape reader eventually wore completely out.
22:43 chromatic Nice guitars, too.
22:44 japhb HELL YEAH.
22:45 NotFound Paper tape reader? Sigh, I've never seen one working.
22:45 darbelo japhb: When speaking of guitars and related stuff, you have to say 'vintage'.
22:45 Tene darbelo: is it still "vintage" if he's manufacturing new guitars?
22:46 chromatic Why, are they made by vintners?
22:46 japhb http://alembic.stores.yahoo.net/guitinstocno.html
22:46 Tene Guitar *does* start with the same letter as "Grape"
22:46 NotFound A GUI for tar?
22:47 darbelo Tene: Of course! There's a lot of monewy in making new old guitars!
22:48 NotFound darbelo: Specially if the buyer doesn't know about the "new" part? ;)
22:48 szabgab joined #parrot
22:50 darbelo NotFound: Yeah, that too. But there's a lot of market for 'traditionally made' guitars. Sort of like the people who spend fortunes on old unreliable tube amps.
22:51 NotFound I like making bad jokes mixing guitarrero (guitar maker in spanish) and guitar-hero.
22:55 jan joined #parrot
22:56 nopaste joined #parrot
23:01 fperrad_ joined #parrot
23:06 PacoLinux joined #parrot
23:06 nopaste joined #parrot
23:15 lucian joined #parrot
23:16 Zak joined #parrot
23:21 kthakore chromatic: hi
23:21 purl salut, kthakore.
23:26 kid51 joined #parrot
23:40 cotto_work joined #parrot
23:51 cconstantine joined #parrot

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

Parrot | source cross referenced