Camelia, the Perl 6 bug

IRC log for #parrot, 2009-09-29

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 purl: bacek?
00:00 purl bacek is THE MANIAC or some sort of magical coding robot
00:01 bacek_at_work who blaming me?
00:02 * darbelo points a ttbot
00:02 bacek_at_work No one can confirm failing on win32 :/
00:02 darbelo cotto_work was having different fail on win32.
00:07 kid51 joined #parrot
00:09 nopaste joined #parrot
00:10 kid51 kyle_l5l ping
00:10 kyle_l5l kid51, pong?
00:10 kid51 Your post in https://trac.parrot.org/parrot/ticket/1067:  what OS/platform are you experiencing failure on?
00:11 kyle_l5l x86 (32 and 64bit), linux
00:12 kid51 And the test is dying at the same point as it did for me on darwin/ppc?
00:15 kid51 If so, could you post that info in the TT?  I want to make sure whiteknight knows full scope of problem.
00:15 kyle_l5l hm, no, I'm not seeing failures on objects.t
00:15 kid51 So was your post in TT #1067 intended for some other TT?
00:16 kyle_l5l perhaps I was too hasty - I've run into bugs with HLLs because of Parrot_gc_mark_PMC_alive_fun(), and that patch helped
00:17 kid51 well, if you could clarify that in the TT, that would be good.
00:18 kid51 Or, perhaps, open a separate ticket with the failures of Parrot_gc_mark_PMC_alive_fun() that you have experienced elsewhere.
00:18 Zak joined #parrot
00:19 kyle_l5l aye
00:54 zerhash joined #parrot
01:02 ash_ so, Lorito, is that still in planning
01:02 ash_ ?
01:03 chromatic Yes.
01:04 ash_ is the plan for a sort of meta-circular approach?
01:05 chromatic Yes.
01:05 ash_ or, are you guys still considering linking to an already made jit?
01:05 ash_ ah, okay
01:05 chromatic We won't write our own JIT.  That way lies madness.
01:05 chromatic Otherwise, metacircular.
01:06 ash_ but i am confused, if your not writing your own jit, whats the meta-circular approach for then? (probably missing the point of meta-circular stuff)
01:07 chromatic We'll write our PMCs and ops (all but the Lorito ops) in a little language parsed by PCT and emit Lorito ops.
01:08 chromatic We'll either execute Lorito ops directly with a standard op dispatch system, where each op is a small chunk of C code, or JIT them, as they'll be easy to JIT.
01:09 ash_ okay, i see now
01:09 darbelo dukeleto: ping
01:10 ash_ but your JIT system could influence this a bit i'd think, for instance, if you used the llvm then you could just  compile the current op codes as llvm-ir codes and jit them right now, it can translates C into its jit bytecode
01:11 chromatic That works great for platforms with LLVM.
01:12 ash_ but you don't want to require the llvm as a jit then?
01:12 chromatic Right.
01:12 chromatic We may want to run in places where LLVM is not available or where a JIT is not appropriate.
01:13 TiMBuS joined #parrot
01:14 ash_ but you can still have it written in plain C so you can just compile the same code as statically compiled code instead of leaving it as llvm-ir code
01:14 chromatic You mean compile the Lorito ops with LLVM instead of emitting LLVM IR manually?  That's an idea.
01:17 ash_ I think what I am trying to say is you can do that with the current runcore though, sorta of skipping the Lorito step in the process
01:17 chromatic Right, but that doesn't help as much as you might think.
01:18 ash_ compile the current PASM ops as llvm-ir code (when the system supports it) then you can load them in through the llvm jit system, and if you don't have it, just compile the C code statically
01:18 ash_ oh
01:18 chromatic You can't JIT across the boundary between PIR and C right now.
01:19 ash_ but doesn't pir translate into pasm opt code calls?
01:20 chromatic It does.
01:20 * purl stays quiet
01:20 chromatic Those PASM ops call a lot of C code.
01:20 chromatic Some of that C code calls back into PASM ops.
01:22 ash_ but if you got it to translate the PASM into the IR Form using the llvm builder functions you could call it at that point as llvm-ir and run it directly with the jit along with the other stuff that might of been left in llvm-ir form
01:22 chromatic We'd have to compile all of Parrot into LLVM-IR for that to help.
01:23 ash_ wouldn't you only need the PMC's for that to help?
01:23 ash_ the PMC's are turned into the PASM op codes, i thought
01:23 chromatic Nope.
01:23 chromatic We have ~70 PMCs written in C.
01:25 ash_ yeah, i see what you mean now
01:26 chromatic You get some benefit from JITting just ops, but it won't be much more than our previous attempt at a JIT.
01:27 ash_ So, which parts would you have to re-implement in lorito?
01:29 chromatic PMCs and ops, to start.
01:29 chromatic Ultimately everything.
01:29 purl ultimately everything is digital
01:29 darbelo left #parrot
01:30 * kid51 is amazed at how many source code files have been touched in the last 24 hours.
01:30 kid51 ... and yet there were 0 posts to the list
01:32 ash_ so, i guess your going to be keeping backwards compatability for a while, till you have time to re-do everything
01:32 Zak joined #parrot
01:32 chromatic In theory, there should be no backwards compatibility concerns with this approach.
01:33 chromatic ... except for having a nicer language in which to write ops and PMCs, true.
01:33 japhb joined #parrot
01:34 ash_ so you'd have to reimplement an awful lot of C though, i'd think, since PMC's have C's syntax, how would you do calls to external libraries?
01:34 chromatic Some sort of FFI/NCI system.
01:36 ash_ how is this going to be compiled? just wondering, like pmc2c? will it be pmc2lorito, then have a lorito compiler?
01:37 chromatic I'm planning to have src/ops/lorito.ops, then reimplement everything else in terms of that.
01:37 chromatic pmc2lorito sounds right.
01:39 ash_ so, will it be HLL -> pir -> pasm -> lorito at this point?
01:42 rhr joined #parrot
01:42 chromatic There's really no conversion from PIR -> PASM, but basically yes.
01:42 ash_ well, then HLL -> pir -> lorito then?
01:43 chromatic Yes.
01:44 ash_ Will lorito run dynamically or be compiled?
01:46 chromatic I don't understand the question.
01:47 ash_ like, lorito code, is it going to be compiled code? or will say the parrot executable be able to run it?
01:47 cotto ash_, yes ;)
01:47 ash_ lol, so both?
01:47 cotto for jitting purposes, it'll be compiled into native instructions
01:48 cotto without jitting, Parrot will run some C code for each op
01:49 cotto (the idea is to have a single implementation of each op that can be automagically translated into C, llvm ir or whatever)
01:50 ash_ i guess i am missing something, i still don't see why thats not possible now
01:50 dalek parrot: r41544 | jkeenan++ | trunk (6 files):
01:50 dalek parrot: Remove config step auto::funcptr, associated probe and test file.  Per https://trac.parrot.org/par​rot/attachment/ticket/1058.
01:50 chromatic It's indeed possible now.
01:50 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41544/
01:50 chromatic It doesn't help us much now is the problem.
01:52 ash_ I guess i am missing how lorito helps, what purpose does this intermediate representation server thats all
01:52 cotto once lorito is working, we want to write as much of Parrot as possible in it
01:52 chromatic We have ~1200 ops.
01:52 chromatic Slang (the bootstrapping layer for Squeak Smalltalk) has ~40.
01:53 chromatic Most of our ~1200 ops call into C code.  We can't JIT or inline or optimize across that boundary.
01:53 ash_ if they are in llvm-ir form you can
01:53 chromatic Only if we compile all of Parrot into LLVM-IR.
01:54 chromatic That strategy doesn't accomplish all of our goals for the long term.
01:54 ash_ okay, i think i get it a bit more now
01:55 chromatic The less code we have written in C, the better our JIT can perform.
01:56 cotto once we have a sufficiently powerful lorito, we can start rewriting C code in (something that compiles to) lorito and analyzing/optimizing it
01:57 cotto since anything that Parrot compiles will compile to lorito, there's potential for some really nice self-hosting to occur, even for HLLs
01:58 ttbot Parrot trunk/ r41544 MSWin32-x86-multi-thread make error http://tt.ro.vutbr.cz/file/cmdout/108325.txt ( http://tt.ro.vutbr.cz//buil​dstatus/pr-Parrot/rp-trunk/ )
02:00 * cotto remembers that he wanted to check out PyPy
02:03 kid51 Has anyone been able to reproduce that build failure that ttbot is reporting?
02:04 chromatic Not me.
02:05 cotto I'll play with it some at work, but I think the win32/gcc build worked fine for me there.
02:10 ash_ If  i wanted to learn more about JIT systems and the approach you guys are taking with parrot is there any recommended reading I should look into? I have been looking for the smalltalk squeak stuff about slang
02:12 Tene cconstantine: ping
02:13 cotto Interesting.  It looks like PyPy has some overlap with our goal as a vm for dynamic languages.
02:13 Tene japhb: I just committed my downloader library draft and a little wget-alike that uses it.  invoke it from the main plumage dir, not the probes/ dir.
02:14 chromatic ash_, some of the resources and papers around Mozilla's TraceMonkey may be very enlightening.  "Trace Trees" is a good subject.
02:14 japhb Tene, Cool, looking ....
02:14 Tene japhb: also, I'm not sure if probes/ is a good place for it.  Just wanted to save it somewhere.  It'll go away after I tie it into plumage.
02:14 japhb Tene, nodnod
02:16 japhb Tene, ah, nice, real exporting and all.
02:16 Tene cconstantine: They're for libraries... 'library' defines a library, 'export' lists a symbol in a library as available for being imported, import loads a library, and there's nothing called 'hll' in steme.  There's 'hllimport', though, which loads a library from a different HLL.
02:16 Tene japhb: I should add 'use' to Glue.pir. ;)
02:23 japhb Tene, yes, definitely.  load_bytecode is ... not as cool.  :-)
02:23 rhr joined #parrot
02:25 japhb Tene, oh, did you ever figure out the performance problem?
02:28 Tene japhb: I'm not sure if I can replicate them or not.  It seems to work okay now.
02:34 rhr joined #parrot
02:40 cconstantine Tene: thanks.  Sorry I keep using you as a reference manual
02:41 janus joined #parrot
02:46 Tene cconstantine: that's fine.
02:46 Tene cconstantine: did I answer your question?
02:48 Austin joined #parrot
02:48 cconstantine I think so, when I get a chance I'll play around with them
02:49 ash_ joined #parrot
02:55 rg1 joined #parrot
03:01 zerhash joined #parrot
03:01 nopaste "tene" at 12.190.38.210 pasted "library/import example for cconstantine" (8 lines) at http://nopaste.snit.ch/18107
03:06 Austin Is that based on 'Exporter' pmc?
03:11 payload joined #parrot
03:12 Tene Austin: no.  I didn't even know there was an Exporter pmc.
03:12 Austin :)
03:12 Tene Is it new?
03:13 Austin It's experimental, per the docs. I have no idea how new.
03:13 Austin But I don't think so.
03:13 Tene It uses the HLL interop conventions.
03:13 Austin I don't suppose you have a good nqp export/import package, do you?
03:14 Tene Austin: No, but I could add one very quickly if I had approval from pmichaud.  Last I remember, I was waiting on feedback on where to implement it.
03:14 Austin I was thinking less "changes to syntax" and more "code that works right now."
03:16 Tene Austin: Sure, just tell me wha tinterface you want, and I'll get something for you tonight.  Post an NQP example that you'd want to work, or something.  Look at http://gitorious.org/parrot-plumage/parrot-plumag​e/commit/30d64b34f04020805a798b92bd9ce1e0bc83de0f for a corresponding example in PIR.
03:16 shorten Tene's url is at http://xrl.us/bfov6p
03:17 Austin how about 2 import Foo::Bar: # get functions from foo:bar nsp  ??
03:17 Tene It's... blue?
03:18 Tene Why is it blue?
03:18 Austin Separate code from text.
03:18 Tene Ah.
03:18 Austin %C2 .... %O
03:18 Tene How would you feel about import('Foo::Bar'); instead?
03:18 Austin At least in chatzilla
03:18 Austin That would work just fine.
03:18 Tene and for exporting?  export('sub1 sub2 sub3 sub4'); ?
03:19 Austin I hadn't aspired to exporting. I'd settle for bringing in everything.
03:19 Austin But your way looks fine.
03:19 Tene Okay, I'll work on it tonight.  AFK dinner.
03:20 Austin So I see 2  c.'import'('Plumage::Downloader')  in your nopaste.
03:20 Austin *nopaste = git blob
03:20 Tene Right.
03:20 Tene also look at .sub 'load' in Downloader.pir
03:21 Tene that's where I list the exported sub.
03:21 Tene If I hadn't done that, it would just import everything.
03:21 Austin Okay.
03:21 Tene (which is okay sometimes, sure)
03:21 Austin I've got a bunch of functions, like ASSERT and NOTE and DUMP that I want to import into a gajillion namespaces.
03:22 ash_ left #parrot
03:22 Austin Is that all in Glue.pir?
03:22 Tene if you look at runtime/library/languages/parrot/parrot.pir, you'll see that it supports specifying the namespace to import to.
03:23 Tene No, it's in the 'parrot' langauge, so that it can be used from *any* language.
03:23 Tene That's how the following works in rakudo: use Foo:from<parrot>;
03:23 Austin ah
03:24 Tene That fetches the 'parrot' compiler, calls the 'load_library' method on it, and it returns a hash containing symbols etc.
03:24 Tene see the 'import' method in parrot.pir
03:25 Austin *library/languages = languages
03:26 Tene yeah
03:26 * Tene getting dressed to go get dinner, isn't typing accurately. :P
03:26 Tene actually, *library/languages = parrot/languages
03:26 Tene but close enough
03:27 Tene any other questions before I really go afk?
03:27 Austin Nope. Thanks. That's enough for me to work with.
03:27 Austin Is that your code?
03:28 Tene Yes.
03:28 Tene Also the corresponding code in Rakudo, Cardinal, etc.
03:29 Austin Today's worthless word for the day is, "tralatitious"
03:29 Tene afk
03:49 dalek parrot: r41545 | pmichaud++ | branches/pct-rx (8 files):
03:49 dalek parrot: [pct-rx]:  Updates to add greedy + ratchet quantifiers; improve alt.
03:49 dalek parrot: Add some example code to review the output.
03:49 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41545/
04:15 theory joined #parrot
04:58 dalek parrot: r41546 | pmichaud++ | branches/pct-rx (2 files):
04:58 dalek parrot: [pct-rx]:  Add frugal quantifier.
04:58 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41546/
05:45 Austin Is there any way from PIR to cache the getinterp stack, in such a way as to know in my sub if a particular caller is still on the stack? (In essence, to cache the stack frame?)
05:50 bacek_at_work Austin: parrot is CPS-style VM. So, technically speaking, there is no stack
05:50 Austin Okay.
05:50 Austin s/stack/list-of-recent-invokers/
05:51 cotto There's not a stack, but there is a "stack".
05:52 Austin Sure.
05:52 Austin How can I tell if caller[$n] is the same thing it was last time?
05:53 Austin Ideally, without rolling back up the "stack" to figure out $n
05:54 Austin Hmm. That's it.
06:00 fperrad joined #parrot
06:10 uniejo joined #parrot
06:26 dalek lua: 58f2fb2 | fperrad++ | src/pmc/luauserdata.pmc:
06:26 dalek lua: more robust curr_func()
06:26 dalek lua: review: http://github.com/fperrad/lua/commit/58​f2fb2f396ff75d47361fa9845d94ab11e1e2cd
06:26 shorten dalek's url is at http://xrl.us/bfoxkf
06:29 jrtayloriv Austin, all three of these do exactly the same thing, right: http://pastebin.com/d2864d939 ...
06:29 Austin Yes.
06:30 jrtayloriv ok, thanks
06:30 jrtayloriv (just making sure I'm understanding correctly)
06:30 Austin Hmm. No.
06:30 Austin The second one does not.
06:31 Austin I think the default HLL is parrot, and the default namespace is $HLL/
06:31 Austin So #2 is twice wrong.
06:31 Austin (I think)
06:31 japhb Tene, are you still working on integrating the HTTP fetcher into plumage tonight?  Or did that get pushed off to tomorrow?
06:31 dalek lua: 8d8cdb8 | fperrad++ | src/pmc/lua (5 files):
06:31 dalek lua: refactor with PMC_IS_NULL
06:31 dalek lua: review: http://github.com/fperrad/lua/commit/8d​8cdb83a29694b2608c895f823c881a86bace6d
06:31 shorten dalek's url is at http://xrl.us/bfoxp4
06:34 jrtayloriv Austin, sorry -- I meant to have .HLL 'phemer' at top of second, but I don't understand the second part -- i.e. I thought get_global looked in currently selected namespace, and that get_hll_global is what used .HLL
06:34 Austin Right.
06:35 jrtayloriv so, if I do .namespace [], doesn't get_global look in 'parrot' namespace as default, not $HLL?
06:35 Austin So if #2 was in .HLL phemer, then it would be accessing $ROOT/phemer/phemer/Grammar/Actions
06:35 jrtayloriv oh, I see now. OK
06:35 jrtayloriv oops!
06:36 Austin FWIW, I hate this part of the namespace stuff.
06:37 jrtayloriv I think I'm getting close to grokking it finally, though. I'm having more troubles with lexicals (but understanding that *way* better, as well)
06:37 Austin Cool.
06:37 Austin So let's talk about symbols.
06:39 Austin How's your grammar?
06:41 jrtayloriv Sorry -- afk for a second. My grammar is complete (I think)
06:41 Austin And the actions?
06:41 purl i guess the actions is what it's all about
06:42 dalek lua: 6b82566 | fperrad++ | src/pmc/luauserdata.pmc:
06:42 dalek lua: typo
06:42 dalek lua: review: http://github.com/fperrad/lua/commit/6b​82566554c2118d0ab96e35a7f3b52b0f858cc3
06:42 shorten dalek's url is at http://xrl.us/bfoxyi
06:42 jrtayloriv Austin, actions do just about nothing. All it is doing at this point is evaluating string and integer constants.
06:42 jrtayloriv I got blocked on symbols.
06:43 Austin Well, let's unblock you.
06:43 jrtayloriv I really need to have that figured out properly, so that I can implement lists/pairs/cons cells properly
06:43 jrtayloriv By all means :)
06:44 Austin What's a function that defines variables internally?
06:44 Austin What's the name of a scheme function that creates name->value bindings inside its scope. Is that 'let'?
06:45 jrtayloriv let creates a new block AND adds lexicals in it.
06:45 Austin Okay.
06:45 Austin Is that a good starting point?
06:47 jrtayloriv Austin, Not really, because let is really derived from more primitive functions.
06:47 Austin Such as?
06:47 Austin (This is me not knowing scheme...)
06:47 jrtayloriv Austin, lambda
06:47 dalek lua: 4696621 | fperrad++ | src/pmc/luathread.pmc:
06:47 dalek lua: more robust getcurrenv
06:47 dalek lua: review: http://github.com/fperrad/lua/commit/46​96621f8dd472f0d76ff3cedde7e6d654503a36
06:47 shorten dalek's url is at http://xrl.us/bfox3q
06:47 Austin okay. And what does lambda do?
06:48 mikehh All tests PASS (pre/post-config, smoke (#28282), fulltest) at r41546 - Ubuntu 9.04 amd64
06:49 Austin okay, got it.
06:49 Austin (lambda (args...) (expr...))
06:49 jrtayloriv Austin, lambda creates a closure around current env. at time it was created
06:49 Austin Returns an anon sub
06:49 jrtayloriv yes
06:50 Austin Is lambda fundamental, or is there anything below it?
06:50 jrtayloriv I wanted to write a builtins.scm that had let defined in terms of lambda( which would be in primitives.pir)
06:50 jrtayloriv Austin, fundamental
06:50 Austin Okay.
06:51 Austin So what does it do?
06:51 jrtayloriv lambda?
06:51 purl i heard lambda was a variable or an anonymous function in Lisp
06:51 Austin The args to lambda are two lists, right?
06:52 jrtayloriv a list and an expression
06:52 Austin Can I do meta-lambda ing?
06:52 jrtayloriv the expression can be a list
06:52 jrtayloriv but it doesn't have to be
06:52 jrtayloriv it can be any s-expr
06:53 jrtayloriv what do you mean by meta-lambda'ing?
06:53 Austin (define X "(args)") (define Y "(display args)") (lambda X Y)
06:53 Austin Or some such...
06:55 jrtayloriv Austin, One moment ... working on an example
06:55 chromatic Ergh....
06:55 purl it has been said that ergh is swahili for "Look!  In the sky!  It's a... awe shit.  It fell down."
06:57 jrtayloriv Austin, You mean, define X to be a list containing the args, and define Y to be the procedure (display args)?
06:58 jrtayloriv Austin, Because you'd have to use lambda to return the procedure (display args) to store in in Y with define
06:58 Austin I think what I really mean is, "Is lambda itself a function?" in the sense of being callable with parameters?
06:58 jrtayloriv no -- it's a special form. At least, that's what I understand.
06:59 Austin So we don't have to worry about somebody doing (define foo lambda) (foo (args) expr) ?
06:59 barney joined #parrot
07:00 mikehh partcl r745 builds on parrot r41546 - make test PASS (smolder #28283) - ubuntu 9.04 amd64
07:01 jrtayloriv Austin, Don't think so -- I'm working on making sure of that.
07:01 jrtayloriv brb
07:02 jrtayloriv Austin, No, I'm pretty sure you can't do that.
07:03 Austin So lambda is something you can implement in the parser, yes?
07:04 chromatic The parser needs to understand it specially.
07:04 jrtayloriv Austin, I'm going to ask someone really quickly about this. I was told that dealing with words like "define" and "lambda" in the parser will cause you to get warts on the backs of your hands.
07:04 Austin chromatic: Thank god. I was wondering when the turtles were going to run out.
07:04 chromatic There are some seven special forms, but I can only remember def, lambda, let, if, and quote.
07:04 jrtayloriv Maybe I misunderstood though ... wait ...
07:05 jrtayloriv They were probably talking about the grammar. Never mind. Yes, you could do it in the parser.
07:06 jrtayloriv chromatic, let can be defined in terms of lambda, I believe. Let me doublecheck that. Pretty sure I saw that in one of my scheme books here ...
07:06 mikehh rakudo (0331d60) builds on parrot r41546 - make test / make spectest_smolder (up to r28490 -> #28284) PASS - Ubuntu 9.04 amd64
07:06 chromatic That may be true, but I don't see an easy way to do that at the moment.
07:09 jrtayloriv chromatic, http://www.scheme.com/tspl2d/binding.html  ... search for string "shows the typical derivation of let from lambda. "
07:09 jrtayloriv anyhow, I really think that the best place to start would be with lambda, set!, and define.
07:10 chromatic I bet no production-worthy Scheme implements let that way though....
07:10 jrtayloriv true.
07:11 * jrtayloriv goes off to see how PLT scheme implemented let ...
07:11 Austin Whoa. I'm not smart enough to read that.
07:13 Austin Ah. It "transforms" (let (name value) (stuff)) into (call (lambda (name) stuff) args)
07:13 Austin *args = value
07:13 jrtayloriv Austin, chromatic has a very good point. I guess my brain was set in stupid-mode ... i.e. "because you can define let in terms of lambda, you should ..."
07:14 Austin The plus side is that if you implement lambda, you can just type "The remainder is left as an exercise for the interested reader..."
07:15 Austin Anyway, let's talk about adding lambda to the grammar.
07:15 Austin (which should be trivial)
07:15 jrtayloriv The think is, regardless of how I implement let, I still think that I should start with lambda, set!, and define, since they are really the most fundamental special forms
07:15 Austin And about adding lambda to the compiler.
07:15 jrtayloriv Austin, ok.
07:16 skv joined #parrot
07:16 Austin It's going to be a declaration-block, right? Because this is a subroutine that can be stored and invoked later?
07:16 Austin (BTW: Is your svn tree up-to-date with whatever work you've put in lately?
07:17 Austin )
07:17 jrtayloriv Yes. a lambda expression should just return a reference to an anonymous sub, that is a closure around the current lexical environment at the time of the sub's creation.
07:17 jrtayloriv Austin, let me check (on svn)
07:19 jrtayloriv yes, it is
07:19 Austin So, go thou and parse lambda!
07:19 jrtayloriv it compiles and runs, but there's a lot of 'me experimenting with PAST/NQP' in there right now
07:26 iblechbot joined #parrot
07:26 jsut_ joined #parrot
07:29 dalek parrot: r41547 | dukeleto++ | trunk (2 files):
07:29 dalek parrot: [t] Add coverage for ExceptionHandler objects in a new PIR test file
07:29 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41547/
07:30 jrtayloriv Austin, The meaning of lambda can be changed with define-syntax.
07:30 Austin But can some other name become lambda?
07:33 jrtayloriv (define lambda 5)
07:33 jrtayloriv lambda
07:33 jrtayloriv 5
07:33 Austin Okay. That's fine.
07:33 Austin But what about this:
07:35 Austin (define lambda 5) (let ((a (lambda () 1))) a)
07:35 Austin Or maybe it has to be (a) at the end?
07:37 ttbot Parrot trunk/ r41547 MSWin32-x86-multi-thread make error http://tt.ro.vutbr.cz/file/cmdout/108394.txt ( http://tt.ro.vutbr.cz//buil​dstatus/pr-Parrot/rp-trunk/ )
07:37 jrtayloriv Austin, no, that would try to call the procedure stored in a
07:37 jrtayloriv Austin, but lambda breaks in your example
07:37 jrtayloriv It's just a miserable little integer now
07:38 Austin Which argues that lambda isn't a special form.
07:38 jrtayloriv This is why I wanted to initialize a symbol table of some sort with lambda, define, etc mapped to anonymous subs.
07:38 Austin Sure. But what does the sub DO?
07:38 chromatic It is a special form, but you can override the name binding.
07:39 Austin Okay, so the parser just assembles a bunch of lists, and it falls to lambda to compile them?
07:40 Austin More f*****g turtles.
07:40 jrtayloriv Austin, the sub would return a reference to an anonymous subroutine that can be stored in another symbol, by using define and set!
07:40 chromatic Welcome to Lisp.
07:41 Austin Well, bacek has been doing some interesting work with generating PBC files from PIR...
07:47 Austin Okay, jrtayloriv. It looks like you're boned.
07:47 Austin Let's take it from the other end.
07:48 Austin Pretend there's a builtin called _phemer::lambda. What args does it take?
07:48 chromatic Two cons.
07:48 Austin What's a con?
07:48 purl i heard a con was french for cunt. A very derogative word or short for convention
07:48 chromatic A list.
07:48 Austin ResizablePMCArray?
07:48 chromatic Sure.
07:48 Austin Okay.
07:49 Austin And the first cons is full of 'symbol's, no?
07:49 jrtayloriv chromatic, It takes a list and an sexpr, I think. For instance: (lambda () 5)
07:50 jrtayloriv the sexpr can be a list, but also a symbol or a constant
07:50 Austin But ultimately, Jesse, that second part is "expr1 expr2 expr3..", which is a list.
07:51 jrtayloriv (lambda () '(expr1 expr2 expr3)) would be it taking a list ... or am I not understanding something?
07:52 Austin (lambda (a b c) 1 2 3)
07:52 Austin Returns 3, right?
07:53 jrtayloriv no, but ((lambda () 1 2 3)) does
07:53 jrtayloriv which is what I think you meant, anyway
07:53 Austin Okay.
07:54 Austin So you've got two lists there: the parameters list, and the expressions list. The expressions list cannot be empty, can it?
07:54 chromatic I don't see why not.
07:54 Austin chromatic: What would it evaluate to?
07:55 Austin Silly me. Undef, of course. :(
07:55 jrtayloriv a procedure that does something like .sub foo .return() .end, right?
07:55 Austin yep
07:55 jrtayloriv it would not be undef, it would be a sub PMC that does nothing
07:55 chromatic I say it'd be an empty cons, but that's my bias showing.
07:56 jrtayloriv chromatic, what do you mean?
07:57 chromatic That depends on what you mean.
07:58 chromatic (lambda () ()) evaluates to a Sub that evaluates to an empty cons, I think.
07:58 Austin Okay.
07:58 Austin But what does (lambda ()) evaluate to?
07:58 chromatic An error.
07:58 purl chromatic: Too many links
07:58 Austin So the expressions list can't be empty.
07:58 jrtayloriv chromatic, I see now.
07:58 jrtayloriv thanks
07:58 chromatic Right.
08:00 Austin So, jrtayloriv, here's your mission: write a sub, in NQP, called 'lambda'. It should accept two lists as parameters, and (for now) return a past block with the parameters from the first list declared.
08:00 chromatic Also, destroy IMCC with fire.
08:00 jrtayloriv :)
08:01 Austin That's on you and pmichaud, c
08:02 chromatic I don't think I can add your .lex redeclaration without rewriting a lot of IMCC's symbol handling code.
08:02 chromatic redeclaration ERROR that is
08:03 Austin Really? I just doesn't notice?
08:03 Austin *It just...
08:03 chromatic Oh, it's easy to notice.
08:04 chromatic The problem is the way IMCC stores information about symbols.
08:04 chromatic It doesn't store symbols conveniently attached to individual compilation units, oh no.
08:04 jrtayloriv Austin++, thanks for spending the time to explain things to me ... again
08:04 jrtayloriv and chromatic++ for bringing me one step closer to grokking lisp
08:05 chromatic I can give you the error if anyone in the current *file* has declared a lexical with the same name.
08:05 chromatic You may guess that such behavior would be unwelcome in many corners.
08:05 Austin jrtayloriv: Don't thank me yet.
08:05 Austin chromatic :)
08:07 chromatic I'd explain exactly how and why it's wrong, but you don't want to know and, despite my reputation for barbaric and unprovoked hostility, I respect your blissful ignorance of this small evil.
08:08 Austin Thank you.
08:08 Austin Plus, I'm afraid to reopen the subject.
08:09 bacek joined #parrot
08:09 Zak joined #parrot
08:09 chromatic An error makes a lot of sense.  I'll add a TODO test, file a TT, and put my hate into pirc instead.
08:09 Austin The last time I brought it up, Patrick threatened to rewrite PCT.
08:10 masak joined #parrot
08:15 dalek tracwiki: v38 | moritz++ | ParrotQuotes
08:15 dalek tracwiki: Evilness comment by chromatic++
08:15 dalek tracwiki: https://trac.parrot.org/parrot/wiki/Pa​rrotQuotes?version=38&amp;action=diff
08:15 shorten dalek's url is at http://xrl.us/bfozqr
08:18 dalek TT #1073 created by chromatic++: Lexical redeclarations in subs should throw exceptions
08:20 dalek parrot: r41548 | chromatic++ | trunk/t/compilers/imcc/syn/clash.t:
08:20 dalek parrot: [t] Added TODO test for exception when redeclaring a lexical in the same sub.
08:20 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41548/
08:26 ttbot Parrot trunk/ r41548 MSWin32-x86-multi-thread make error http://tt.ro.vutbr.cz/file/cmdout/108438.txt ( http://tt.ro.vutbr.cz//buil​dstatus/pr-Parrot/rp-trunk/ )
09:02 jrtayloriv Austin, http://pastebin.ca/1584007 ... basically, I should have the lambda sub accept a '$formals' parameter as well, correct?
09:03 jrtayloriv Since if i do (lambda x (doo some ting to x)), then I can have any number of args passed in and it will store them in a list in x
09:03 Austin That's not relevant.
09:04 jrtayloriv versus if i do (lambda (x) (+ 1 x)), ... note parens around formal 'x', which says I can only pass in one arg, and it will be stored locally in 'x'
09:04 Austin Right now, all I want is a lambda sub in NQP that takes a list of args, and declares them lexical, then returns the PAST::Block
09:05 Austin Should take you 20 minutes.
09:05 jrtayloriv http://pastebin.com/d1dd11b7f
09:05 jrtayloriv something similar to that, right ... but actually working, of course :)
09:05 Austin You win.
09:06 Austin Except for sigils.
09:07 Austin Now for the fun part.
09:07 Austin Change the lexical to parameter, add :isdecl.
09:07 purl Austin: that doesn't look right
09:07 Austin Never mind, purl.
09:07 purl Austin: excuse me?
09:10 kyle_l5l left #parrot
09:11 jrtayloriv Austin, What did you mean "except for sigils", was  @($arg_list) wrong? (i wasn't sure if I did that right)
09:12 Austin Just change $arg_list to @arglist
09:12 Austin +_
09:12 Austin for @arg_list { ... }
09:13 jrtayloriv http://pastebin.ca/1584017
09:13 jrtayloriv (oops, forgot to change $expr_list to @expr_list ...
09:14 Austin Okay. Change $expr_list, to be consistent, and then move on: After the args are declared, insert code that prints each one out.
09:14 purl Austin: that doesn't look right
09:14 Austin Sorry, purl.
09:14 purl It's okay, Austin.
09:18 Austin To be clear: that's PAST code that prints the params, not in-line NQP that prints 'em
09:19 jrtayloriv I think I understood -- You meant a PAST::Op node of pasttype 'call' that calls some sort of 'say' function, correct?
09:19 Austin correct
09:19 Austin And the default builtins.pir provides a say function, so that'll work
09:21 Austin Now that you've declared the parameters as :scope('parameter'), be aware that all subsequent references need to be :scope('lexical')
09:22 dalek TT #1074 created by carlin++: Parrot fails to build with gcc when using --optimize on OpenSolaris
09:22 jrtayloriv How can I call something in a different namespace from a PAST::Op node? do I just add a :namespace attribute to it?
09:22 Austin Put it in a lower node as a Past::Var, with a namespace
09:23 Austin (Op pasttype=call (Var name=say namespace=...) (Val returns=String value=Hello, world))
09:25 jrtayloriv Just to make sure I understand what's happening: So the op node will take in the Var node, and look for the symbol "say" in the namespace provided, and call that as a sub, and then the following values are just the args as usual, correct?
09:30 bacek jrtayloriv: nope. PCT will just generate PIR with call to "say"
09:30 pdcawley_ joined #parrot
09:30 bacek and "following values" will be handled by ".sub 'say'"
09:31 bacek o hai, btw
09:31 jrtayloriv bacek, got it, thanks
09:31 jrtayloriv and OHHAIHOWRUDOIN?
09:32 Austin jrtaylor: You had it right the first time.
09:32 Austin jrtayloriv:
09:33 jrtayloriv Austin, Is this close? : http://pastebin.com/df1e77ee
09:33 jrtayloriv actually, I don't think that's right.
09:33 Austin Is phemer an HLL or a namespace?
09:35 Austin The push of ~ $_ is dodgy. I'd rather that be a Val node. And you don't want to do $op.ast, just $op. It *is* an ast.
09:35 jrtayloriv Austin, here's one area where I was fuzzy on namespaces: say.pir has .namespace [] at top in say.pir, but it's included in gen_builtins.pir in .namespace [ 'phemer::Compiler' ] in phemer.pir
09:36 Austin The PIR compiler will see the namespace[] and reset to root.
09:36 jrtayloriv so would I just do :namespace(''), instead?
09:36 Austin Sure.
09:36 jrtayloriv ok
09:37 jrtayloriv Why would you rather it be a Val node, by the way?
09:37 Austin Because pushing strings inline bit someone, I think it was cconstantine, recently.
09:37 Austin Plus, if it's a node, I can attach things to it.
09:39 jrtayloriv $op.push(PAST::Val.new(:returns('String'), :value(~ $_) ) ); ... right? But do I need :returns String, really?
09:39 Austin It's the default.
09:39 Austin And you don't need to stringify $_, since they're symbols.
09:39 clinton joined #parrot
09:40 jrtayloriv ok, I see. So :returns('Integer') just does int->string conversion ...
09:40 jrtayloriv other way :)
09:40 Austin string->int
09:40 Austin :)
09:40 * jrtayloriv is having the do the 36 hour marathon right now to get his sleep schedule back to normal ...
09:43 jrtayloriv Austin, OK, so now I have --> http://pastebin.com/d5bcce73 ... brb -- coffee refill and checking-on-my-qemu-build time
09:44 Austin Sweet.
09:48 dalek parrot: r41549 | bacek++ | trunk/t/pmc/exception.t:
09:48 dalek parrot: [t] Add one more test to exception.t and file coda.
09:48 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41549/
09:50 Austin Next step: call your compiler's post, pir, and evalpmc phases on the result of lambda.
09:54 ttbot Parrot trunk/ r41549 MSWin32-x86-multi-thread make error http://tt.ro.vutbr.cz/file/cmdout/108514.txt ( http://tt.ro.vutbr.cz//buil​dstatus/pr-Parrot/rp-trunk/ )
09:55 Austin Bacek, is there any way to attach data to a Sub in a running Parrot?
09:56 bacek Austin: no. And I don't think that it should be any. Subs are constants
09:56 Austin Well, can I use them as keys in something?
10:04 bacek Austin: hm. Yes.
10:04 bacek At least in Hash.
10:04 bacek Not sure about default Subs stringification, btw.
10:05 Austin Bacek, they stringify wrong - to the subname - so that doesn't work.
10:05 Austin Aha. Properties.
10:06 mikehh bacek: what is the url of those cover reports?
10:10 bacek Hm... It doesn't work across namespaces.
10:10 bacek Ok, what are you trying to do?
10:10 * bacek wave from dark land of GC failures related to "constant" PMCs...
10:10 bacek TapTinder?
10:10 purl somebody said TapTinder was software development tool - http://taptinder.org . For Parrot project running on http://tt.perl6.cz/ and reporting build failures to #parrot channel as ttbot.
10:10 bacek purl: TapTinder?
10:10 purl TapTinder is software development tool - http://taptinder.org . For Parrot project running on http://tt.perl6.cz/ and reporting build failures to #parrot channel as ttbot.
10:11 bacek Hey, where is this lazy girl?
10:11 mokurai left #parrot
10:11 Austin Trying to cache debug settings for caller
10:11 bacek mikehh: http://tapir2.ro.vutbr.cz/cover/cover-results
10:11 Austin Right now I look up the stack, find the caller, decode the sub's name and namespace, look in a hash, return an array.
10:11 mikehh bacek: thanks
10:12 Austin I want to store the array on the caller, so I can stop with the other stuff.
10:15 bacek Austin: you can attributes to Context (if it suitable)
10:15 Austin Context?
10:16 Austin Very short perldoc. :(
10:16 Austin Is that like stack frame?
10:16 bacek Ah. Sorry. It's not exposed yet
10:16 bacek Yes, Context is something like stack frame
10:17 Austin jrtayloriv: Your coffee done yet?
10:18 bacek Austin: are you ready to pay upgrade taxes? I can expose Context PMC very quickly.
10:19 bacek Actually I'm doing it now.
10:19 Austin bacek: Not for a while, I'm afraid.
10:19 jrtayloriv yes. sorry, been trying to figure out how to use the lambda function (unsuccessfully) -- here, have a look: http://pastebin.com/dac97a56
10:20 jrtayloriv For some reason, (lambda 1 2 3) parses correctly, but I only get an PAST::Node in --target=past
10:20 jrtayloriv oops
10:20 jrtayloriv nm -- yep, I'm doing something stupid :)
10:21 jrtayloriv (as in, nevermind I didn't figure it out. I thought I saw why it wasn't working, but didn't)
10:21 Austin Grab this piece of code:     2  my $compiler := Q:PIR { %r = compreg 'phemer' };  and save it someplace.
10:21 bacek Austin: you shoudn't be afraid! You should be scared! :)
10:21 Austin Bacek: Paranoid.
10:21 purl Why do you ask, Austin
10:23 Austin jrtayloriv: Inject a call to "TEST()" at the top of your TOP action.
10:24 jrtayloriv Could not find non-existent sub TEST
10:24 Austin Progress.
10:24 purl rumour has it progress is progress
10:24 Austin Now write test.
10:24 Austin Call lambda(  (a, b, c), null)
10:25 Austin PCT::HLLCompiler.dumper() on the result.
10:28 Austin I want to see something that works!
10:30 jrtayloriv You lost me at "Now write test".
10:30 Austin Write the test sub
10:30 jrtayloriv right
10:30 Austin Have it call lambda
10:30 jrtayloriv why the test sub? why not just call lambda directly?
10:30 Austin pass three strings for args, null for exprs
10:31 Austin Because I don't want to totally clutter up your TOP action, just insert a little hook
10:31 Austin Store the result, and dump it.
10:34 bacek joined #parrot
10:34 bacek Austin: where is Close hosted?
10:35 Austin google code
10:35 purl google code is http://code.google.com, run by Chris DiBona.
10:35 Austin close?
10:35 purl it has been said that close is close file (or pipe or socket) handle or bad on sockets, use shutdown() instead or horseshoes or grenades or nuclear weapons or http://code.google.com/p/close/
10:36 mj41 cover reports?
10:36 purl hmmm... cover reports is http://cv.perl6.cz
10:37 dalek parrot: r41550 | bacek++ | trunk/t/pmc/parrotinterpreter.t:
10:37 dalek parrot: [t] Add more tests for ParrotInterp
10:37 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41550/
10:37 dalek parrot: r41551 | bacek++ | trunk (2 files):
10:37 dalek parrot: [core] Expose Context from ParrotInterp
10:37 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41551/
10:39 ttbot Parrot trunk/ r41551 MSWin32-x86-multi-thread make error http://tt.ro.vutbr.cz/file/cmdout/108571.txt ( http://tt.ro.vutbr.cz//buil​dstatus/pr-Parrot/rp-trunk/ )
10:40 bacek mj41: what is configuration of this failing windows box?
10:41 mj41 bacek: WinXP 32bit, mingw32, on 64 bit Intel
10:41 bacek mj41: Strawberry or ActiveState?
10:42 mj41 bacek: strawberry
10:42 purl it has been said that strawberry is a Perl for Windows that works just like Perl everywhere else. See http://win32.perl.org/wiki/in​dex.php?title=Strawberry_Perl or well where is RAWBERRY
10:43 bacek mj41: yak... I have no idea why my commit broke it :-/
10:52 bacek Austin: #   Failed test 'sanity-1: output of program'
10:52 bacek # sh: ./parrot: No such file or directory
10:52 Austin :(
10:52 Austin Don't go there. Nothing works.
10:56 bacek As you wish. JFYI, Close built successfully on bleeding-edge Parrot
10:57 Austin Sweet.
10:57 Austin Thank you
11:05 mikehh All tests PASS (pre/post-config, smoke (#28296), fulltest) at r41551 - Ubuntu 9.04 amd64
11:08 mj41 bacek: I have no idea too.I run build process manually and it finished ok.  I just restart tt clients and we will see.
11:09 bacek mj41: ok. Thanks anyway. ttbot is really annoying. Which is good :)
11:13 jrtayloriv Austin, Sorry, I went away for a bit to work on my qemu install, to try to give my brain a break. No luck. You said to use PCT::HLLCompiler.dumper, but I can't make it work. I've looked at the sources for it, and it should take a ResizablePMCArray, or a Match object. But lambda returns a PAST::Block. How am I supposed to use dumper() on it? Here's what I tried: http://pastebin.com/d1bc2ee1f ...
11:13 mikehh partcl r745 builds on parrot r41551 - make test PASS (smolder #28299) - ubuntu 9.04 amd64
11:14 Austin Where's the rest of the backtrace?
11:14 jrtayloriv that's all I got
11:15 jrtayloriv here, threw in lambda for reference: http://pastebin.com/d464ea9a9
11:15 Austin I always pass two args, an object and a string label. But even with just one it should work.
11:16 jrtayloriv I tried with a string too.
11:16 jrtayloriv oops -- got it.
11:17 Austin What was it?
11:17 jrtayloriv This is why Jesse's are supposed to sleep. I did :name('foo'), instead of just "foo" as the string arg to dumper. Why? Who knows .....
11:17 jrtayloriv Where did :name come from 8\
11:18 Austin Whoops.
11:18 jrtayloriv but here is the output: http://pastebin.com/d593aabaf
11:18 Austin Okay, do you have a PAST tree?
11:19 Austin Rock on.
11:19 purl The rock is jammed at the 'puree' setting.
11:19 Austin For your next trick, compile the past.
11:19 Austin my $compiler := Q:PIR { compreg 'phemer' };
11:20 Austin $compiler.post($past)
11:20 Austin $compiler.pir($post)
11:20 jrtayloriv In test()?
11:20 Austin Sure.
11:20 Austin (See why I didn't want to do this in TOP?)
11:21 mikehh rakudo (0331d60) builds on parrot r41551 - make test / make spectest_smolder (up to r28494 -> #28300) PASS - Ubuntu 9.04 amd64
11:21 jrtayloriv yes, I do now :)
11:21 * moritz is currently very please with parrot development - no major rakudo breakages in the last few weeks
11:21 moritz everyone++
11:28 jrtayloriv Austin, I'm getting an error from that inline PIR http://pastebin.com/d37f43f85 ... And how should I eval the PIR output from $compiler.pir($post) ?
11:29 Austin Dump it
11:29 Austin Maybe a space before the } ?
11:30 Austin And, is that the name of your language?
11:30 Austin According to phemer.pir, which registers the name?
11:30 jrtayloriv $P1.'language'('phemer')
11:30 Austin Okay.
11:30 jrtayloriv And I've tried spaces
11:30 jrtayloriv And Q:PIR {{ ... }}
11:32 Austin Extra parent in call to lambda
11:32 Austin paren
11:32 Austin ((  )  ))
11:33 Austin my $pir := $compiler.pir(...) ; say($pir)
11:34 jrtayloriv grrrr :)
11:34 Austin It's what teh interwebs is for
11:42 jrtayloriv http://pastebin.com/d4ea0f7a5
11:42 jrtayloriv I think it must be a problem in the way I did lambda.
11:42 bacek joined #parrot
11:42 Austin That's a compilation problem, because there's no scope on say.
11:43 Austin Assign say :scope('package')
11:43 Austin (Guess who has made this mistake a whole bunch of times?)
11:44 * jrtayloriv is reading the docs on :scope('package') ...
11:44 Austin Package = function, or global variable.
11:44 quek joined #parrot
11:45 jrtayloriv right -- anything that I want to grab out of another namespace basically, right?
11:45 Austin yes
11:45 jrtayloriv ok
11:45 Austin If it has a namespace, it must be package. The other scopes don't have namespaces.
11:47 dalek parrot: r41552 | bacek++ | trunk (2 files):
11:47 dalek parrot: [core] Expose some Context fields into PIR.
11:47 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41552/
11:47 jrtayloriv Right.
11:47 jrtayloriv Sweet --> http://pastebin.com/d4fe1a4bd
11:47 bacek_ joined #parrot
11:47 Austin ugh. say is better than dump for this.
11:47 bacek_ moritz: just because I was quite busy last few weeks :)
11:48 * Austin cheers!
11:48 jrtayloriv OK. .... Sweet --> http://pastebin.com/d6fcef81e
11:48 Austin Congratulations, Jesse. You can has cheezburger.
11:48 jrtayloriv mmmm
11:48 moritz s/s/z/ please :-)
11:48 Austin But I notice no namespace in there.
11:49 bacek_ "s/s/z/ pleaze"? :)
11:49 jrtayloriv Austin, How do you mean?
11:49 Austin On the "say" lookups, there's no namespaces. Did you mean to specify that say was in a different namespace?
11:50 bacek_ mj41: looks like reboot didn't help...
11:51 jrtayloriv Austin, Oh, yeah -- that's leftovers from earlier ... here --> http://pastebin.com/d2bd4f19c
11:51 jrtayloriv wait.
11:51 jrtayloriv It was correct before.
11:51 Austin :)
11:53 mj41 bacek: didn't? http://tt.ro.vutbr.cz/buil​dstatus/pr-Parrot/rp-trunk
11:54 bacek mj41: ah! Good. r41552 finally built!
11:54 bacek mj41++
11:58 Austin jrtayloriv: Next question: Within the context of a lambda, does (x) always mean "run x as a subroutine" ?
11:59 jrtayloriv Austin, as in (lambda () (x))?
11:59 Austin Yes.
11:59 jrtayloriv yes
11:59 jrtayloriv (anything) without a ' before the left paren is always a procedure call
12:00 jrtayloriv (inside the body of lambda)
12:00 Austin So there's your next step. Parse the expressions list, generating calls.
12:00 jrtayloriv ok
12:00 bacek jrtayloriv: not quite true.
12:01 Austin Of course not. Here comes more turtles.
12:01 jrtayloriv bacek, Really?
12:01 bacek (...) produces S-Expr. lambda just evaluate it
12:01 Austin When is it not true, bacek?
12:01 bacek 'a is quoting.
12:01 jrtayloriv right, but without the quotes, doesn't a bare s-expr always mean procedure call?
12:01 kid51 joined #parrot
12:01 jrtayloriv (foo bar baz) is always calling foo right?
12:01 bacek that's what I mean by "no compile time"
12:02 bacek jrtayloriv: nope.
12:02 * jrtayloriv lights his hair on fire and carves parentheses into his chest
12:02 Austin LOL
12:03 bacek http://people.csail.mit.edu/jaffer/r5rs_6.html
12:03 whiteknight joined #parrot
12:03 Ron joined #parrot
12:04 dalek parrot: r41553 | bacek++ | trunk (2 files):
12:04 dalek parrot: [core] Expose Context.current_HLL into PIR
12:04 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41553/
12:04 jrtayloriv Oh, I could define syntax such that it's not a procedure call ...
12:04 jrtayloriv fun
12:05 bacek whiteknight: good evening
12:05 whiteknight good evening bacek
12:05 Austin Sorry, bacek, I must be slow.What counter-example did I miss?
12:05 whiteknight I got a submission for the challenge I put on my blog: a NCI frame builder using libJIT
12:06 whiteknight and it's impressive
12:06 Austin whiteknight: Woot! And how does it look?
12:06 bacek jrtayloriv: S-Expr is what lisp about. You can construct them in run-time and then evaluate it. Or do whatever you want with them
12:06 whiteknight Austin: the patch is like 2500 lines, and it's hot
12:06 bacek whiteknight: how many beers for first prize?
12:07 Austin 24 Yuenglings, but you have to come here to collect.
12:07 whiteknight bacek: I've only got one submission right now, so I haven't considered "first place" or "prize" yet
12:09 whiteknight if Parrot had T-Shirts or something for sale, I would send one of those
12:09 whiteknight but NO! Parrot apparently doesn't want a merchandise-based revenue stream
12:10 Austin jrtayloriv: Assume each entry in the expr list is an array, and generate a call to the first item in the array, with the remainder as args.
12:10 moritz whiteknight: that could easily be changed. pmichaud currently has a spreadshirt.com shop (and on other sites too) for selling rakudo and Perl 6 goodies (t-shirts, ties)
12:11 moritz whiteknight: all you need is a large image or vector graphic of the parrot, and maybe a good idea or two for a nice text
12:11 moritz and then start the shop, and if you have a bit of an income you just donate it to parrot foundation
12:11 whiteknight That's really not such a bad idea
12:12 Austin "Sure, it's buggy and slow, but at least there's poor documentation."
12:12 moritz and then advertise on your blog, on the parrot homepage etc.
12:13 ruoso joined #parrot
12:13 whiteknight is spreadshirt.com a good place? I've only dealt with cafepress in the past
12:15 moritz whiteknight: best talk to pmichaud about that (he also has a cafepress and a zazzle store)
12:16 whiteknight pmichaud: ping!
12:18 payload joined #parrot
12:19 iblechbot joined #parrot
12:21 mj41 bacek: I just deleted bad client sessions related data.
12:22 mj41 bacek: Nobody can blame you :-).
12:23 bacek mj41: THANK YOU VERY MUCH! :)
12:26 jrtayloriv Austin, like so? --> http://pastebin.com/d128324b0
12:28 dalek parrot: r41554 | bacek++ | trunk (2 files):
12:28 dalek parrot: [core] Implement Context.backtrace
12:28 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41554/
12:33 Austin jrtayloriv: It's a good start. How does it run?
12:38 Austin Moo. I needed to scroll down.
12:40 pmichaud whiteknight: pong
12:40 pmichaud I've already been told it's okay to set up a shop for parrot goodies
12:40 pmichaud I just need a good vector graphic
12:40 whiteknight pmichaud: where would you recommend a shop be set up?
12:40 whiteknight I'm willing to do legwork, just looking for suggestions
12:41 whiteknight I just posted a blog post where I am offering free T-Shirts as prizes, so I need to get a T-Shirt supplier!
12:42 Austin You should have offered beer.
12:42 whiteknight I live in PA. Beer+Mail doesn't mix
12:42 whiteknight and most applicants aren't close enough to drive
12:42 Austin It mixes great.
12:42 Austin And D.G.Yeungling's Sons makes some fine brew.
12:44 bacek joined #parrot
12:45 dalek parrot: r41555 | bacek++ | trunk/src/pmc (2 files):
12:45 dalek parrot: [core] Implement Exception.backtrace in terms of Context.backtrace
12:45 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41555/
12:45 pmichaud whiteknight: I've made storefronts at spreadshirt, cafepress, and zazzle
12:45 pmichaud I haven't actually ordered anything yet, though.
12:45 whiteknight yeah, I heard. Which one is best do you think?
12:45 whiteknight or are they equivalent?
12:45 pmichaud rumor has it that spreadshirt is the better one
12:46 whiteknight unfounded rumor you say? That's all I need to hear
12:46 moritz http://wardley.org/computers/parrot/logo.html <-- maybe contact that person if he would make vector graphics (or high resolution images) available...
12:48 whiteknight his logos are available for non-commercial use only
12:48 whiteknight although I will ask him if he would make an exception?
12:49 pmichaud why not the parrot that is at parrot.org ?
12:49 whiteknight pmichaud: of course, we'll use that one first
12:49 whiteknight but we want more then just one design!
12:50 bacek "Everything pluggable"!
12:50 purl "everything pluggable" is, like, a good goal
12:53 dalek tracwiki: v2 | bacek++ | ContextPMCUses
12:53 dalek tracwiki: Context.backtrace is implemented now
12:53 dalek tracwiki: https://trac.parrot.org/parrot/wiki/Co​ntextPMCUses?version=2&amp;action=diff
12:53 shorten dalek's url is at http://xrl.us/bfo6rx
12:56 elmex_ joined #parrot
13:01 Austin pmichaud: In NQP, if I call $node.foo(), and within that method I call self.foo, what is being called?
13:02 pmichaud I think that would be a recursive call
13:02 pmichaud because inside of $node.foo(), self is $node
13:02 Austin Because I think I've been doing it, but I haven't been overflowing the stack.
13:03 bluescreen joined #parrot
13:03 Austin Are you sure you don't automatically go on to the next higher caller?
13:03 Austin Sorry.
13:03 Austin To the next higher superclass.
13:03 pmichaud it shouldn't, no
13:05 pmichaud my simple test case gives me "maximum recursion depth exceeded"
13:05 Austin (Speaking of which, is there a way to do a super call in nqp?)
13:06 pmichaud I don't think nqp supports it yet.  When it does, it's likely to be    self.SuperClass::foo()
13:06 Austin Hmm.
13:06 Austin Does self.Package::sub() work now?
13:06 pmichaud not likely
13:06 pmichaud but it will get added, undoubtedly
13:08 dalek parrot: r41556 | bacek++ | trunk (2 files):
13:08 dalek parrot: [core] Implement Context.current_hll to fetch stringified current_HLL
13:08 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41556/
13:09 dalek rakudo: 9792a2e | moritz++ | :
13:09 dalek rakudo: Merge branch 'master' of git@github.com:rakudo/rakudo
13:09 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​792a2e49e7e5cec9392e9b1c86208d935585835
13:09 shorten dalek's url is at http://xrl.us/bfo7eq
13:20 whiteknight eventually NQP will be just QP, and then it will be P6
13:21 pmichaud nah
13:21 pmichaud NQP will always lack the library
13:21 pmichaud and it's unlikely that it will implement P6's multimethod model, unless Parrot adopts it at core
13:21 whiteknight you say that now, but whiney compiler-writers like Austin and myself will always be begging for the next new feature
13:22 pmichaud the question about what NQP gets versus doesn't get is dependent on what Parrot supports at native core
13:22 whiteknight There are some places where Parrot could use a significant capability enhancements
13:24 * bacek thinking about weird things.
13:24 bacek Like... implementing PCC in PIR
13:24 bacek :)
13:24 Austin bacek++
13:25 Austin Solves a bunch of problems.
13:25 Austin Every sub takes one arg. Build whatever data structure you want.
13:25 whiteknight After the PCC refactor, if CallSignatures are visible from PIR and subclassable, there's no reason why you wouldn't be able to handle all your own argument processing
13:25 bacek Austin: you've spend too much time with lisp :)
13:26 Austin NFW. No turtles over here.
13:26 payload joined #parrot
13:26 Austin That's jrtayloriv's baby.
13:27 bacek whiteknight: it's already visible, btw.
13:27 whiteknight bacek: CallSignature?
13:27 bacek whiteknight: yes
13:27 whiteknight Are CallSignatures even in Trunk?
13:29 bacek whiteknight: yes.
13:29 whiteknight okay, what I mean is that the call signatures used in an actual call be visible
13:29 whiteknight you can create an empty one, but you can't really access the current one
13:29 whiteknight and most PCC calls don't generate them anyway
13:30 bacek you can. Starting from next commit you can read it :)
13:30 ash_ joined #parrot
13:30 whiteknight bacek: you can read it maybe, but it isn't used in trunk yet for anything
13:32 bacek whiteknight: it's not true.
13:32 bacek it IS used
13:32 dalek parrot: r41557 | bacek++ | trunk/src/pmc/context.pmc:
13:32 dalek parrot: [core] Expose Context.results_signature into PIR.
13:32 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41557/
13:33 bacek whiteknight: check Parrot_pcc_get_results_signature usage
13:33 cconstantine joined #parrot
13:35 Austin pmichaud: Any chance of getting some unspace into nqp?
13:38 whiteknight bacek: it is used from Parrot_pcc_invoke_sub_*, but that isn't used in a lot of places
13:39 whiteknight and it's definitely not used in PIR->PIR calls
13:39 bacek whiteknight: indeed. But it's used  at least somewhere :)
13:39 whiteknight eventually it will be used everywhere
13:39 whiteknight and then it will be good
13:40 bacek "and on seventh day..." :)
13:41 whiteknight the biggest problem I've found on the pcc_testing branch is that there is no support for :slurpy return values
13:41 whiteknight if we add that, a LOT of tests will pass
13:41 whiteknight :named returns too, I think
13:47 pmichaud Austin: unspace, yes.
13:47 pmichaud NQP is getting a major makeover.
13:47 pmichaud but I need protoregexes first
13:47 pmichaud and that's what I'm working on now
13:48 bacek pmichaud: did you see my msg about POST::Macro?
13:48 Austin "I need protoregexes." Hmp! That's what they all say.
13:48 pmichaud bacek: I did, but I'm not sure I agree with it.
13:48 pmichaud macro doesn't seem to belong in POST
13:49 bacek But they are in it. Something like '.lex "foo"'
13:49 pmichaud that's not a "macro"
13:49 pmichaud that's a declaration or a directive
13:50 moritz other failures in hll_unify: t/pmc/fixedintegerarray.t uses parrot;Test;More;throws_like which needs PGE, but PGE isn't built yet
13:50 bacek Oookey. Let's call it POST::Decl
13:50 moritz (at least not with 'make corevm')
13:50 pmichaud I think POST::Var  or POST::Reg would make more sense
13:50 bacek pmichaud: What about .const?
13:51 pmichaud that's just declaring a register also
13:51 pmichaud .lex, .local, .const all declare register symbols
13:51 bacek .get_results?
13:51 pmichaud .lex has a side effect of populating the LexInfo
13:52 pmichaud allison thinks .get_results was a mistake (I agree) -- we shouldn't bring that into POST
13:52 pmichaud sorry, .get_results is a mistake for exceptions; perhaps not in general
13:52 bacek How to handle exceptions without it?
13:52 pmichaud at any rate, I would think that .get_results should end up being opcodes.
13:53 bacek we don't have "PCC style" opcodes, afaik
13:54 bacek like "get_results $P0 :slurpy"
13:54 pmichaud I'd wait to see how the new pcc branch ends up before trying to exactly mimic the existing PIR
13:55 bacek ok, fair enough
13:55 bacek Let's wait till after Christmas...
13:57 bacek anyway, $bedtime
13:57 * bacek wave from tomorrow
14:02 AndyA joined #parrot
14:03 whiteknight purl msg bacek eventually exception handlers will be Subs, not labels, and we will be able to use normal .param to get the exception object.
14:03 purl Message for bacek stored.
14:07 masak whiteknight: sounds like a fairly substantial change.
14:07 whiteknight masak: yes, but it will help to solve some fairly substantial problems
14:08 allison joined #parrot
14:08 whiteknight ...and cleanup some fairly ugly code and corner cases
14:09 quek left #parrot
14:09 whiteknight good morning allison
14:11 masak whiteknight: when I think about it, a sub sounds much more reasonable than a label.
14:12 whiteknight masak: a sub forces you to explicitly resume, die, or rethrow
14:12 moritz it sounds like it will make handling of exceptions inside exception handlers much saner
14:12 whiteknight that's what I was hoping
14:12 masak aye.
14:14 Austin Man, the problem with named args is that I keep forgetting to close the parens.
14:14 Austin Something about them just short-circuits my brain...
14:14 whiteknight yeah, if it weren't for the stupid syntax we could have all sorts of working programs
14:15 whiteknight Austin: what are you doing this weekend?
14:15 Austin Your hours are flexible! Even better, so are the women you're undressing...     <Ooooh!>
14:16 Austin (Mr. Department Store Mannikin Dresser-upper)
14:16 whiteknight haha, nice
14:16 Austin Bud Light. A million commercials, all funny. (Except for like two.)
14:16 Austin Shame about the beer.
14:16 whiteknight Bud Light: Great commercials, lousy beer
14:17 Austin This weekend, I'll be hacking close. And barbecuing at my buddy's house. And doing lawnwork.
14:17 Austin You?
14:17 purl You is very bed in engrish too
14:17 Austin yuk foo, purl.
14:17 purl Austin: excuse me?
14:17 whiteknight Wife is booked solid, baby shower then bachelorette party. I'm free to hack all day
14:18 Austin What are you working on now-a-days?
14:18 whiteknight no idea, really
14:18 Austin :?!
14:18 Austin How is that possible?
14:18 whiteknight I have a todo list that's so long that I don't even bother writing it down
14:19 Austin :>
14:19 Austin That's better
14:19 Austin brbxsft
14:19 whiteknight Matrixy stuff that I've been avoiding, GC stuff, PCC stuff, JIT stuff, documentation, book, etc
14:19 whiteknight and that's just Parrot, I do a lot of MediaWiki-related development too, under contract
14:20 moritz PCC!
14:20 whiteknight moritz: I think I have the root causes of a bunch of test failures in that branch figured out, just haven't been able to put a fix together
14:21 whiteknight not all failures, of course, there is some weirdness with exception handlers that I don't understand yet
14:21 Austin I remember you mentioning something about the mediawiki thing at yapc.
14:22 Austin Maybe that's why you're the DBA, too.
14:22 whiteknight yeah, great
14:26 Austin Why haven't the bash guys added ** as a directory matching operator for globs, yet?
14:28 Psyche^ joined #parrot
14:28 pdcawley__ joined #parrot
14:50 ash_ joined #parrot
14:56 bluescreen joined #parrot
15:06 dalek parrot: r41558 | mikehh++ | trunk/src/pmc/context.pmc:
15:06 dalek parrot: codetest failure - trailing whitespace
15:06 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41558/
15:14 dalek parrot: r41559 | pmichaud++ | branches/pct-rx (3 files):
15:14 dalek parrot: [pct-rx]:  Infrastructure for inlined cursor operations, reduce actions.
15:14 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41559/
15:31 dalek rakudo: c8181aa | masak++ |  (5 files):
15:32 dalek rakudo: Moved <, >, <=, and >= into the Setting
15:32 dalek rakudo: In order for such a move to work, all declarations outside of the Setting
15:32 dalek rakudo: had to be removed. This includes the nice autogeneration of subs in
15:32 dalek rakudo: gen_whatever_pir, which unfortunately translates to eight quite similar
15:32 kjeldahl_ joined #parrot
15:32 dalek rakudo: methods in the Setting. Improvements welcome.
15:32 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​8181aad2670fb74f7aaa1c905205e34e83101bd
15:32 shorten dalek's url is at http://xrl.us/bfo8db
15:33 mikehh All tests PASS (pre/post-config, smoke (#28314), fulltest) at r41559 - Ubuntu 9.04 amd64
15:43 dalek parrot: r41560 | NotFound++ | trunk/DEPRECATED.pod:
15:43 dalek parrot: [cage] add deprecation notice for use of undocumented variables in class_init, TT #918
15:43 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41560/
15:43 mikehh partcl r745 builds on parrot r41559 - make test PASS (smolder #28315) - ubuntu 9.04 amd64
15:47 jrtayloriv bacek_at_work, ping
16:04 mikehh rakudo (c8181aa) builds on parrot r41559 - make test / make spectest_smolder (up to r28496 -> #28316) PASS - Ubuntu 9.04 amd64
16:05 mikehh messages
16:05 dukeleto messages
16:16 theory joined #parrot
16:18 dukeleto 'ello
16:25 janus joined #parrot
16:29 darbelo joined #parrot
16:31 whiteknight hello dukeleto
16:34 darbelo dukeleto: ping
16:40 japhb whiteknight, In your blog post: "give me your shit size"
16:41 whiteknight ...well that doesn't seem too polite
16:42 moritz in the t/pmc/complex.t tests, is there a good reason to to use 'set' instead of = in many places?
16:43 whiteknight moritz: probably just a bad translation from old PASM
16:43 moritz whiteknight: ok, thanks
16:44 cotto_work I'm seeing some failures in t/pmc/object-meths.t on ubuntu x64
16:47 moritz imcc++ # an awesome error message for once
16:48 moritz "Bareword method name 'new' not allowed in PIR"
16:48 moritz karma imcc
16:48 purl imcc has neutral karma
16:48 moritz karma IMCC
16:48 purl imcc has neutral karma
16:48 * moritz is mildly surprised
16:49 whiteknight imcc--
16:49 darbelo IMCC is an unholy entity. Such things are not allowed to have karma.
16:49 cotto_work That must be a recent addition.  It used to be allowed.
16:51 moritz i have a Perl 6 class called Complex, and a PIR class also called Complex
16:51 moritz (erm, the PIR class is the one from parrot, actually)
16:51 moritz in a piece of PIR code, how can I obtain both of them?
16:52 treed via namespace?
16:52 cotto_work left #parrot
16:52 moritz I assume the custom one works with get_hll_global 'Complex'
16:52 treed rakudo;Complex vs parrot;Complex ?
16:52 cotto_work joined #parrot
16:52 treed ISTR having to do something like that in Cardinal.
16:52 moritz treed: I'll try that, thanks
16:52 * treed nods.
16:52 treed Let me know if that works.
16:53 mberends joined #parrot
16:53 treed Pretty sure it will.
16:53 moritz Class '[ 'parrot' ; 'Complex' ]' not found
16:54 treed http://github.com/cardinal/cardinal/​blob/iss41/src/builtins/classes.pir
16:54 shorten treed's url is at http://xrl.us/bfo8v3
16:55 treed Check out the !get_parrot_class function
16:55 treed Unsure if it's the best method, but it works.
16:56 nopaste "cotto" at 131.107.0.72 pasted "test failures on x64" (42 lines) at http://nopaste.snit.ch/18119
16:58 moritz treed: uhm, where does that function live? I ack'ed for it didn't find it anywhere
16:59 treed It's not in the master branch
16:59 treed it's in iss41
16:59 treed src/builtins/classes.pir
16:59 treed The file I linked above
16:59 moritz oh, I didn't see that link
16:59 moritz thanks
17:00 * moritz blind
17:00 treed heh
17:03 treed The $S0 = name dodge I think has to do with hll_mapping cardinal's string to parrot's
17:03 treed It didn't like getting a cardinal;String there OSLT
17:03 treed (It's been a while since I've dealt with this code.)
17:05 treed So.
17:05 treed You may not need that
17:05 treed but the get_root_namespace and get_class should do it for you
17:12 chromatic joined #parrot
17:14 moritz right, they work for me
17:15 moritz treed++ thank you
17:15 treed No problem. :-)
17:15 moritz now I'm struggling with different problems
17:15 treed Heh.
17:15 treed Tell me about it.
17:15 purl i heard it was sad I recognize Jon's laptop/keyboard combo
17:15 treed I wanted iss41 wrapped up like a month ago.
17:16 pdcawley_ joined #parrot
17:22 uniejo joined #parrot
17:32 * whiteknight expected pmichaud to add "travel to the moon" in his long list of accomplishments and todo items
17:33 pmichaud can't squeeze it in this week.
17:35 cotto_work gonna fly this bird to the moon somehow
17:36 cotto_work I'm *really* looking forward to having all my stuff unboxed so I can spend my tuits on stuff I want to do.
17:37 whiteknight pmichaud: I think if you switch from solar to siderial days you might gain some time
17:37 whiteknight ...or maybe you lose time. It's been a while since astrodynamics
17:38 chromatic What?  I added a box opcode for you a year ago, and now you don't want it?
17:38 whiteknight boxed kitchen utensils make for sloppy dinner time
17:39 whiteknight no, I'm wrong, sidereal days are shorter
17:39 NotFound We can add some machinery for lazy unboxing
17:39 * japhb decides to stop watching demo scene nostalgia (YouTube playlist at http://www.youtube.com/view_​play_list?p=00284B871DF71C1C ) and get back to hacking Plumage
17:39 cotto_work autounboxing would be pretty sweet
17:39 japhb Tene, you about?
17:39 cotto_work the lazy approach isn't working so well for me ;)
17:40 whiteknight cotto_work: "couch = $P0" does unboxing
17:40 * cotto_work wonders what kind of box whiteknight puts his couches in
17:41 Austin If I refer to $<foo> in a grammar action, what is the word for foo? It's a ___ of the match object.
17:41 particle knowing whiteknight like i do, probably a refrigerator box
17:42 moritz Austin: it's a named capture you're accessing
17:42 Austin subpattern?
17:43 Austin Thanks, moritz.
17:43 moritz and the <foo> you have called was a sub rule (or sub pattern)
17:44 Tene japhb: yes, for another couple of minutes
17:44 whiteknight Austin: and the way you write it is the "antipattern"
17:44 japhb Tene, any last minute stuff to push before I go hacking on plumage?
17:44 Tene japhb: No.
17:44 japhb OK, thanks.
17:44 Austin I thought that was $<!foo>, whiteknight
17:45 whiteknight Austin, I was joking: http://en.wikipedia.org/wiki/Antipattern
17:46 * whiteknight really needs to work on his delivery
17:46 Austin I know, Andrew.
17:46 Austin :)
17:46 whiteknight YAY! I told a joke that somebody understood!
17:46 whiteknight personal best
17:47 chromatic "joke" anyway....
17:49 mokurai joined #parrot
17:52 allison joined #parrot
17:58 * darbelo thinks about declaring October the 'PIRC love month' so that we can give IMCC the fiery death it deserves.
17:58 pmichaud I'd like October to be the 'PCC love month'
17:59 pmichaud Rakudo is blocking on PCC.  PIRC is a distant "nice to have"
17:59 * darbelo can live with that.
17:59 pmichaud Also, PCC should give us the ability to get more speed improvements.  imcc doesn't seem to be a performance bottleneck at the moment.
18:00 whiteknight the current refactor branch needs to land soon, and I think (hope) that a lot of other necessary changes will land soon thereafter
18:00 whiteknight pmichaud: if PCT could output PBC directly, we could bypass all compilers as a speed issue
18:00 pmichaud whiteknight: that would be very nice also :)
18:01 whiteknight well, bypass IMCC and PIRC
18:01 pmichaud if someone can write a POST->PBC translator, we're good to go.
18:01 whiteknight although I suspect PCT will have to call IMCC to do the parsing though
18:01 NotFound Building a pbc from file Package PBCs is already working?
18:01 NotFound s/PBCs/PMCs
18:02 dalek TT #1075 created by whiteknight++: Add Configure probes for LLVM
18:02 pmichaud whiteknight: oh, if you're asking to have PCT be the basis for a pir compiler, then yes.
18:02 pmichaud but having POST->PBC is useful even by itself
18:02 Util NotFound: Yes, see examples/pir/make_hello_pbc.pir
18:02 NotFound Nice :)
18:02 darbelo pmichaud: I think bacek was doing something related to that.
18:03 pmichaud sure
18:03 pmichaud anyway, writing a pir parser probably won't be all that difficult
18:03 Util bacek++ for that piece of niceness.
18:04 whiteknight I don't know a lot about the packfile PMCs.
18:05 pmichaud ps in #25.  bb in 24.
18:05 pmichaud er, #ps in 25.  bb in 24.
18:05 whiteknight bb?
18:05 purl i think bb is big brother, a terrifying crappy monitoring system written in /bin/sh or Brigitte Bardot
18:06 PerlJam be back
18:06 whiteknight Brigitte Bardot? Awesome
18:16 whiteknight chromatic: "found more evil in IMCC"? So that means you opened any of it's files and accidentally looked anywhere?
18:16 Andy joined #parrot
18:16 chromatic I found evil I didn't know existed.  I have a good catalog of its existing evil, but it continues to surprise me.
18:16 whiteknight "find evil in IMCC" would be the most uneventful, boring scavenger hunt we ever organized
18:17 whiteknight In fact, it would be so boring as to be evil in itself
18:18 joeri joined #parrot
18:20 dalek tracwiki: v3 | coke++ | ContextPMCUses
18:20 dalek tracwiki: https://trac.parrot.org/parrot/wiki/Co​ntextPMCUses?version=3&amp;action=diff
18:20 shorten dalek's url is at http://xrl.us/bfo9gy
18:22 barney joined #parrot
18:30 mikehh #ps time
18:31 Tene OH MAN ITS PS TIME IM SO EXCITED!!!!!
18:31 Tene What will happen this week?!?!?!
18:43 Topic for #parrotis now http://www.parrot.org | Parrot 1.6.0 "half-pie" released: The JIT is dead! | Testing priorities: the new PCC branch
18:44 Util Pretty pictures are helping my fuzzy brain: http://learn.github.com/p/rebasing.html
18:51 jjore joined #parrot
18:51 Topic for #parrotis now http://www.parrot.org | Parrot 1.6.0 "half-pie" released: PCC branch hackathon all $localtime Saturday | Testing priorities: the new PCC branch
18:52 kurahaupo joined #parrot
18:53 japhb pmichaud, how do you throw and catch exceptions in NQP?
18:53 pmichaud japhb: nyi
18:54 japhb frack.  I've got Parrot libs that want to show failure be throwing exceptions, which I can't catch.
18:54 Tene japhb: inline PIR. :)
18:54 Tene japhb: my code?  I could make it do something else...
18:54 pmichaud yes, inline PIR works.
18:54 * japhb ruminates on whether to 1) do inline PIR, 2) write some more builtins, 3) reimplement the Parrot libs.
18:54 Tene japhb: or if you con pmichaud into allowing exception and EH stuff into NQP, I'll implement it tonight.
18:55 pmichaud I'm really wanting to hold off on significant NQP changes until I get the grammar refactors done
18:55 pmichaud every feature that goes into NQP means the refactor is harder.
18:55 Tene grammar refactors interact with NQP how?
18:56 japhb pmichaud, if you tell us what *basic* syntax you would use for the exception handling down the road, I can write "similar looking" glue, so that it will be less painful to convert when the NQP changes are ready.
18:57 * japhb would very much like to be not blocked on NQP changes, since pmichaud has several major tasks higher up on the list ....
18:57 pmichaud japhb: the basic syntax is always P6
18:57 pmichaud if it's not P6, it's not NQP.
18:57 pmichaud so I would expect     try { ... }
18:57 pmichaud but I'm not quite sure how to manage the CATCH blocks in that case
18:58 Tene japhb: I could add a little PIR function to glue.pir that accepts a closure to invoke, and a sub to invoke with any caught exceptions.
18:59 japhb Tene, that's a decent idea.  And a simple throw and/or die wrapper would be nice, too.
18:59 Tene japhb: I'll add them after lunch.
18:59 japhb pmichaud, Fair enough.
18:59 japhb Sometimes I forget that NQP is intended to be a strict subset.
19:00 japhb Tene, you rock.
19:00 pmichaud I like the idea of the PIR function, fwiw.
19:00 pmichaud that's a nice clean interface.
19:00 Tene optional second arg, just returns failure on exception throw if no second arg.
19:01 japhb "returns failure"?
19:01 Tene AFK; I need to lunch now, before I run out of time. :P
19:01 Tene Dunno... just tell me what you'd like.
19:01 japhb OK, have fun at lunch!
19:01 darbelo dukeleto: Do you know what the GDB_* functions in debug.c are supposed to be doing?
19:02 darbelo I want to convert them to return STRINGs instead of poking into them. But they look like some sort of external interface.
19:03 dukeleto darbelo: i somewhat understand them
19:03 dukeleto darbelo: they are being called by the embedded parrot in the debugger, iirc
19:04 whiteknight japhb: I have some libraries, CBLAS and CLAPACK from the Matrixy project that I would like to package separately and have in Plumage
19:04 dalek tracwiki: v102 | chromatic++ | WikiStart
19:04 dalek tracwiki: weekly status update
19:04 dalek tracwiki: https://trac.parrot.org/parrot/wiki/W​ikiStart?version=102&amp;action=diff
19:04 shorten dalek's url is at http://xrl.us/bfo9s9
19:05 darbelo dukeleto: Is it sane for them to return a STRING * instead of a char * ?
19:05 japhb whiteknight, cool, the more the merrier.
19:05 japhb Do you want a Plumage commit bit?
19:06 japhb You've got the CLA done, so all you need is a Gitorious login.
19:06 whiteknight japhb: Maybe, I think I need to lurk a little bit more first
19:07 dukeleto darbelo: i am not quite sure, i haven't looked at the debugger in a few weeks. i will look and let you know. do you want to refactor them to do that?
19:07 japhb whiteknight, np.  Any time, just let me know
19:07 whiteknight will do. What's the gitorious link for plummage?
19:08 japhb hold
19:08 japhb whiteknight, http://gitorious.org/parrot-plumage/parrot-plumage
19:08 darbelo dukeleto: I can throw a patch your way. It fails a few tests, but shows what I want to do.
19:09 dukeleto darbelo: the debugger is a huge ball of improperly abstracted things touching internals
19:09 dukeleto darbelo: sure, want to make a TT for it?
19:09 Austin plumage?
19:09 purl plumage is the future Parrot module ecosystem.  It will include tools to search metadata, handle dependencies, install modules, and so forth. or git://gitorious.org/parrot-​plumage/parrot-plumage.git or see https://trac.parrot.org/pa​rrot/wiki/ModuleEcosystem
19:10 Austin Anyone know how to edit purl?
19:11 nopaste "darbelo" at 200.49.154.173 pasted "half-assed STRING patch for dukeleto." (150 lines) at http://nopaste.snit.ch/18120
19:11 japhb Austin, what do you want to do?
19:11 Austin Correct the plumage url.
19:11 darbelo purl: this is wrong
19:11 purl ...but this is different or dynamically...
19:11 dukeleto Austin: with a hammer
19:11 Austin :)
19:11 japhb Austin, you say 'purl, no, plumage is ...'
19:11 darbelo purl, no this is rithgt
19:11 purl ...but no this is on freebsd...
19:11 darbelo purl: no, this is rithgt
19:11 purl okay, darbelo.
19:11 dukeleto Austin: what is incorrect?
19:12 pdcawley__ joined #parrot
19:12 Austin The git-url should probably be japhb's last cited http url.
19:12 japhb parrot plumage?
19:12 japhb purl, parrot plumage is <reply>See plumage
19:12 purl OK, japhb.
19:12 japhb parrot plumage?
19:12 purl See plumage
19:13 Austin Hello, piers.
19:14 chromatic Piers Cawley, in the virtual flesh?  Adult swim, everyone!
19:14 japhb Austin, are you going to edit purl, or shall I?
19:14 Austin Good luck, japhb.
19:14 moritz purl: edit
19:14 purl it has been said that edit is what i use
19:14 Austin purl help
19:14 purl #perl is not a help channel, and I'm not a help bot.  If you want Perl help, try #perl-help or #metallica. or (see the 'help channel' factoid as well) or
19:15 Austin purlhelp
19:16 Austin Goodbye, piers.
19:16 japhb purl, no plumage is the future Parrot module ecosystem.  It will include tools to search metadata, handle dependencies, install modules, and so forth. The repository is at http://gitorious.org/parrot-plumage/parrot-plumage and the design docs are at https://trac.parrot.org/pa​rrot/wiki/ModuleEcosystem
19:16 purl OK, japhb.
19:16 japhb plumage?
19:16 purl plumage is the future Parrot module ecosystem.  It will include tools to search metadata, handle dependencies, install modules, and so forth. or git://gitorious.org/parrot-​plumage/parrot-plumage.git or see https://trac.parrot.org/pa​rrot/wiki/ModuleEcosystem
19:17 japhb purl, no, plumage is the future Parrot module ecosystem.  It will include tools to search metadata, handle dependencies, install modules, and so forth. The repository is at http://gitorious.org/parrot-plumage/parrot-plumage and the design docs are at https://trac.parrot.org/pa​rrot/wiki/ModuleEcosystem
19:17 purl okay, japhb.
19:17 pmichaud allison, chromatic:  is the book worth purchasing or should I wait for the library copy to come back and read it?
19:17 japhb plumage?
19:17 purl plumage is the future Parrot module ecosystem.  It will include tools to search metadata, handle dependencies, install modules, and so forth. The repository is at http://gitorious.org/parrot-plumage/parrot-plumage and the design docs are at https://trac.parrot.org/pa​rrot/wiki/ModuleEcosystem
19:17 japhb purl, forget no plumage
19:17 purl japhb: I forgot no plumage
19:17 chromatic pmichaud, it's a decent book with some good ideas, but I found the writing style annoying.
19:18 chromatic It's not great enough that it's a must buy, but if it's on sale for $10 maybe....
19:19 chromatic http://wiki.jvmlangsummit.com/Da_Vinci_Machine
19:19 chromatic http://wiki.jvmlangsummit.com/Trace-based_JIT
19:19 chromatic http://wiki.jvmlangsummit.com/Anti-Optimizations
19:19 chromatic http://wiki.jvmlangsummit.com​/Invokedynamic_Deep_Dive_-W-
19:19 chromatic http://wiki.jvmlangsummit.co​m/Shared_JVM_Infrastructure
19:19 chromatic Now you don't have to find the gems in the JVM summit.
19:20 japhb Go chromatic, go chromatic
19:23 mberends japhb: if you still have a few plumage commit bits to give away, I might find a use for one.
19:25 japhb mberends, Let me see if I have any left ... (pulls something sticky from between toes) ... oh wait, here's one!  ;-)
19:25 japhb Seriously, what's your Gitorious id?  mberends there too?
19:26 japhb mberends, you've done the signed CLA thing, yes?
19:26 dalek tracwiki: v1 | chromatic++ | Potential%20Blockers
19:26 dalek tracwiki: https://trac.parrot.org/parrot/wiki/Poten​tial%20Blockers?version=1&amp;action=diff
19:26 shorten dalek's url is at http://xrl.us/bfo9vy
19:28 mberends that's the id, yes. I've submitted a Perl Foundation CLA for Rakudo, is Parrot a different one? (Probably, in that case not).
19:28 chromatic It's a different one.
19:29 mberends I'll get tuit and send in
19:29 japhb mberends, great.  As soon as that's in, I'll be happy to add you to Plumage.
19:30 mberends :)
19:30 whiteknight is there a way on gitorious to add something to like a watchlist or something?
19:30 japhb whiteknight, you mean, see when commits happen?
19:31 dalek lua: 6df18b2 | fperrad++ | src/pmc/luauserdata.pmc:
19:31 dalek lua: refactor/merge curr_func & getcurrenv
19:31 whiteknight i don't know. Github has a way to create a watchlist of projects I like
19:31 dalek lua: review: http://github.com/fperrad/lua/commit/6d​f18b2a80427cf5c296ee354c30e38ba2b70568
19:31 shorten dalek's url is at http://xrl.us/bfo9xw
19:31 dalek lua: e2e4a89 | fperrad++ | src/pmc/lua (7 files):
19:31 dalek lua: full refactor with PMCNULL & PMC_IS_NULL
19:31 dalek lua: review: http://github.com/fperrad/lua/commit/e2​e4a896271a5d72a4d958ad7a49b68e48bc3d29
19:31 shorten dalek's url is at http://xrl.us/bfo9xy
19:31 chromatic whiteknight et al, diakopter will be at the LLVM dev summit and has agreed to ask a list of questions we give him.
19:31 whiteknight where is the LLVM dev summit, and when?
19:32 chromatic Friday at Apple.
19:33 whiteknight the only answer I would have really cared about were "Philadelphia" and "sometime when Whiteknight is free"
19:33 japhb whiteknight, My Gitorious fu is weak (I used it because github was a world of FAIL for a while there), but so far Gitorious seems less "social" than github.  I don't see any obvious way to do that.
19:33 chromatic I'm sorry, the cultural ghetto in which you live is different from the kind of cultural ghetto that holds events like this.
19:33 whiteknight okay, I'll put together some questions ASAP
19:34 pdcawley_ joined #parrot
19:34 whiteknight using "cultural" as an adjective on Philadelphia's ghetto is a bit generous
19:34 whiteknight it's more accurate to call philadelphia a "murder hole"
19:34 whiteknight or "where young people go to die"
19:35 chromatic Or "IMCC".
19:35 japhb Now that there is a local cheesesteak shop that understands proper ingredients, Philadelphia culture is less important to me than it used to be.  ;-)
19:35 whiteknight whoa there! That's my city you're talking about!
19:35 chromatic It's all fun and games until I invoke the O(n^12) register allocator.
19:35 whiteknight is it really that bad?
19:36 chromatic I think I cut it down to O(n^8).
19:36 whiteknight I mean, I don't think it can be
19:36 whiteknight that's retarded
19:36 Austin whiteknight, please. Philadelphia has nothing on Trenton, violent crime-wise.
19:36 bacek joined #parrot
19:36 whiteknight Austin: It's all part of the same socioeconomic FAIL
19:37 Austin too few arguments passed (1) - 2 params expected
19:37 Austin I really liked the part about the extra tax.
19:39 Austin Time to have dinner with my surrogate daughter.
19:39 japhb whiteknight, FWIW Philadelphia is my wife's home town.  :-)
19:44 ash_ joined #parrot
19:45 whiteknight I do want to set up a Parrot store for T-Shirts and stickers and other branded garbage
19:45 whiteknight so if anybody has any suggestions of where/how to do that, I would appreciate
19:47 szabgab joined #parrot
19:50 kurahaupo chromatic: how does it get to be O(n^12) ? (what are contributing coefficients?)
19:50 Util whiteknight: see http://irclog.perlgeek.de/​perl6/2009-09-02#i_1457757
19:51 chromatic It could be merely O(12n).
19:51 whiteknight Util: yeah, I've seen those and talked to pmichaud abut them already
19:51 chromatic For every register you want to allocate, you walk through the list of all SymReg structures.
19:51 chromatic A SymReg represents anything with an name in PIR or PASM: a sub, a global constant, a register, a lexical name, a label, everything.
19:51 whiteknight yeah
19:51 chromatic They all get stored in one hash.
19:52 whiteknight oh damn
19:52 whiteknight that's horrible
19:52 chromatic If you want to allocate integer registers, you walk the entire hash, looking for SymRegs of register type int.
19:52 chromatic We have four register types, so you have to walk that hash four times already.
19:52 chromatic There were also (if I recall correctly) three times we walk that hash for each register type.
19:52 chromatic I think I removed one of them.
19:52 Tene I have a girlfriend living in philadelphia right now.
19:53 whiteknight oh man, I feel myself getting stupider by the minute
19:53 dukeleto whiteknight: stickers++
19:53 Util dukeleto: for price comparision with your shop: http://www.zazzle.com/custom/stickers
19:54 chromatic That's why I think refactoring IMCC is a dead end.
19:54 whiteknight I know it's a dead end. That's why I want PIRC
19:54 kurahaupo That's a lot of extra work, for sure, but I only count O(n^2) or thereabouts so far (with a very large "k")
19:54 chromatic We'd have to touch almost every part of it to fix the "Everything is a SymReg" problem.
19:55 chromatic kurahaupo, one of those "walk the entire hash for each of four register types" might be nested in another.
19:55 kurahaupo Sounds painful, and probably pointless now we have PIRC
19:55 * kurahaupo groans
19:55 dukeleto Util++ for the sticker link
19:56 Tene Stickers!
19:56 purl stickers are a bad idea. They scrape them off to see if they're covering up stamps or other notes.
19:56 * japhb is beginning to violently hate JSON's pickiness about trailing comma
19:56 chromatic I didn't perform a formal algorithmic analysis, but I worked it out in my head enough to know that it was at least quadratic.
19:57 chromatic (and not quadratic with merely the number of each register type)
19:57 pmichaud I figured that stickers weren't cost-effective through cafepress/zazzle
19:57 pmichaud but I'll gladly put some into my storefronts if people want them:)
19:57 pmichaud I'd like to get a vector or large-format copy of the parrot logo, though.
19:57 whiteknight who cares about cost effective? I needs me some damn stickers at any price!
19:58 allison pmichaud: that I can give you, any preferred format?
19:58 Tene whiteknight: I'll give you stickers if you give me async IO. ;)
19:58 pmichaud any format is fine.  eps/ai probably works best, but whatever the "most native" format is
19:58 Util pmichaud: (re: cost-effective) doesn't that depend on how many raving Parrot/Rakudo fanatics we end up with?
19:58 pmichaud Util: it does, yes.
19:58 pmichaud if we start buying lots of 100+ then we're probably in okay shape
19:59 pmichaud but I figure I can print small runs on my inkjet here if I'm not worried about runny ink :)
19:59 bacek Good morning...
19:59 purl And good moroning to you, bacek.
19:59 dukeleto allison: i would like a png of the parrot logo, if ya got it
19:59 dukeleto allison: bigger the better, i guess
20:00 dukeleto bacek: good localtime()
20:00 zerhash joined #parrot
20:00 pmichaud I can easily convert images to .png and the like, too :)
20:00 dukeleto allison: any format will do, actually
20:00 bacek dukeleto: I'm not sure about "good" part...
20:00 pmichaud and I do have photoshop :)
20:01 allison pmichaud: PSD is the native format
20:01 Tene allison: can I also has the psd?
20:01 * moritz would like to have a copy as SVG or another open vector graphics format
20:01 dukeleto allison: i think a PSD can be saved as xcf (gimp) and then converted to any other format
20:02 dukeleto allison: sounds like the file should go in the repo :)
20:02 allison dukelego: ugh, no massive images in the repo
20:02 allison it's in the shared Dropbox store, though
20:02 dukeleto dropbox?
20:02 purl dropbox is an Internet/Intranet Email Server that runs on Windows NT. The software runs as an NT service on Windows NT. or a desktop-integrated Internet file sharing application or http://getdropbox.com
20:02 allison pmichaud: you should have access to that
20:02 chromatic Austin_away, jrtayloriv, http://evanfarrer.blogspot.com/​2009/09/essence-of-scheme.html
20:02 shorten chromatic's url is at http://xrl.us/bfo97u
20:03 dukeleto allison: is there info about the shared dropbox somewhere?
20:03 allison dukeleto: it's a board thing, mainly legal documents
20:03 jrtayloriv chromatic, Thanks -- I already realized earlier thanks to you and bacek, that I'm obviously still missing something fundamental, and decided to take a few days off from writing the compiler, until I've learned the language I'm trying to write a compiler for ;)
20:04 japhb purl, dropbox is also available on Linux
20:04 purl okay, japhb.
20:04 jrtayloriv Going to do a lot of reading of PLT docs and SICP and others ...
20:04 chromatic jrtayloriv, one good book to start is "The Little Schemer".
20:05 chromatic SICP is a bit detailed.  I never finished the "Can you make change?" example.
20:05 jrtayloriv chromatic, I picked up a copy of the Little Lisper before and browsed through it. Same author?
20:06 jrtayloriv yes, google is my friend ...
20:06 * whiteknight leaves. Goodnight
20:06 NotFound japhb: There is some absolute minimal example of plumage metadata?
20:06 chromatic Yes, same author.
20:06 jrtayloriv night white night
20:07 jrtayloriv chromatic, Thanks for the recommendation (and the link) -- I'll see if I can get my hands on a copy from one of the libraries around here.
20:08 allison dukeleto/Tene: will email you png and psd respectively
20:08 japhb NotFound, check in metadata/ directory of plumage repo.  The only sections that are currently required by the *implementation* (as opposed to the spec, which requires considerably more) are "meta-spec", "instructions", and "resources"
20:08 japhb "general" and "dependency-info" are NYI, but do no harm.
20:09 allison moritz: you're welcome to convert to svg, but I don't have one
20:09 moritz allison: if you give me anything I can convert from, sure
20:10 allison moritz: what can you convert from?
20:10 moritz allison: most everything, if it has either high resolution, or is a vector graphics format
20:11 allison The parrot head is in a vector form (Illustrator), but the rest of the logo isn't
20:11 moritz that'll be a good start
20:11 allison moritz: I can give you the true type font, and you can play with recreating it in a vector form
20:12 allison it's V.A.G. Rounded OT
20:12 moritz allison: I'll do my best
20:12 kurahaupo chromatic: thanks for help
20:12 allison moritz: not critical, just there if you want it
20:13 dalek TT #1076 created by dukeleto++: Smoking Git Branches
20:14 nopaste "NotFound" at 213.96.228.50 pasted "Attempt of parrot-mysql json metadata" (28 lines) at http://nopaste.snit.ch/18121
20:14 NotFound japhb: Like this?
20:14 purl Like this is probably ok?
20:15 japhb NotFound, looking
20:16 japhb NotFound, a bit hackish, but yes, that should mostly work.
20:16 japhb Trailing comma on fetch block must die
20:16 japhb Want commit bit?
20:16 darbelo japhb: ISTR json allows a trailing comma.
20:17 dukeleto allison: i got your email, but no attachment :(
20:17 moritz json does not.
20:17 NotFound japhb: there will be some way of saying: "This is one file pir module, just put it on the lib dir and compile it to pbc"?
20:17 moritz dukeleto: I frequently stumbled over this
20:17 japhb darbelo, most browsers do, but IE does not, therefore JSON does not.  :-(
20:17 moritz sorry, meant darbelo
20:17 japhb NotFound, eventually, yes.
20:17 moritz the javascript standard allows it, but json does not
20:18 darbelo Ah. That's what I get for not reding the spec.
20:18 japhb darbelo, the spec is really, REALLY picky.
20:18 japhb annoyingly so.
20:18 NotFound And our reader?
20:18 japhb NotFound, AFAICT, it's slavishly correct.
20:18 NotFound Good
20:19 allison dukeleto: yah, I noticed right after I pressed the send button, resent
20:20 dukeleto allison: got it, thanks
20:21 NotFound japhb: cleaned a bit and added to the parrot-mysql repo.
20:21 japhb NotFound, OK, good
20:22 japhb WANTZ COMMIT BITZ?
20:22 NotFound Ofcough
20:23 NotFound Uh, no, is git.
20:23 diakopter mtsql
20:23 darbelo japhb: don't ask him. Force it on him.
20:23 dukeleto darbelo: all hunks failed to apply for me with your debugger patch against trunk
20:23 dukeleto darbelo: can you generate a new diff against trunk?
20:23 diakopter NotFound: mtsql in your json
20:24 NotFound Ops, fixed only one copy
20:24 darbelo dukeleto: I'm on it.
20:24 NotFound Fixed now
20:24 japhb darbelo, can't force it on him without having his Gitorious ID ....
20:25 NotFound Hard to have that, don't have an account.
20:25 fperrad bacek, today, Lua looks better. Many thanks for your help.
20:26 NotFound japhb: Do you want it on parrot-mysql? I need to learn how to use google code.
20:26 bacek fperrad: you welcome! It's just my little payment for my previous changes which broke Lua :)
20:27 * kurahaupo volunteers for a small coding/testing job; any suggestions?
20:27 nopaste "darbelo" at 200.49.154.173 pasted "repasted, in all of it's test-failing glory!" (152 lines) at http://nopaste.snit.ch/18122
20:27 chromatic Oh, don't get him used to that kind of payment....
20:27 chromatic Anyone have any small tasks for the interested?
20:27 darbelo dukeleto: http://nopaste.snit.ch/18122
20:27 bacek kurahaupo: you can convert some Perl based tests to PIR
20:28 kurahaupo Any in tests particular, or pick-some-at-random?
20:28 chromatic dukeleto was picking at some tests... any suggestions there?
20:28 japhb NotFound, hmmm, not a bad idea, if I can find my google code id ...
20:29 japhb NotFound, give me a couple minutes, I'm in the middle of hacking this.
20:29 chromatic kurahaupo, look at t/pmc/namespace.t and t/pmc/namespace-old.t
20:30 bacek bacek@icering:~/src/parrot$ grep -r '#!.*perl' t|wc -l
20:30 bacek 396
20:30 japhb W00t!  Plumage successfully reaches configure stage for a project!
20:30 japhb s/reaches/completes/
20:31 darbelo japhb: Ship it!
20:31 bacek kurahaupo: select some PMC with low coverage and test written in Perl5. Convert test to PIR and improve coverage.
20:31 bacek code coverage?
20:31 purl well, code coverage is http://cv.perl6.cz
20:32 NotFound japhb: no urgence
20:32 bacek kurahaupo: test for foo.pmc placed in t/pmc/foo.t
20:33 bacek kurahaupo: resizableintegerarray looks like good choice for this task
20:34 kurahaupo bacek: I've been lurking here for several years, 'bout time I got pushed into doing something. PIR test for resizableintegerarray it is then.
20:35 bacek kurahaupo: welcome aboard :)
20:36 fperrad bacek, if you've more time for Lua.
20:36 fperrad Try 'make spectest' which works well with an installed Lua.
20:36 fperrad But crashes in build tree (see alternate version under comments in Makefile).
20:37 bacek fperrad: ok, I'll take a look.
20:39 bacek fperrad: "foo: staging"?
20:41 fperrad bacek, I don't understand
20:42 bacek fperrad: I can't figure out how to switch from "installed Lua" to "build tree"...
20:43 bacek fperrad: I actually never install Lua...
20:46 nopaste "bacek" at 122.110.34.44 pasted "Lua "make spectest" on my box for fperrad++" (76 lines) at http://nopaste.snit.ch/18123
20:46 fperrad bacek, in config/makefiles/root.in
20:46 fperrad uncomment lines 377-379
20:46 fperrad comment lines 380-382
20:47 bacek fperrad: So, "foo: staging" :)
20:48 fperrad bacek, your output looks good, few error because missing native Lua and other lib
20:49 darbelo fperrad: The lua Makefile makes BSD make cry.
20:49 bacek fperrad: same output with changed makefile. But I running it from parrot/languages/lua if it related.
20:50 darbelo The "export LUA_PATH" and "export LUA_INIT" need to be inside a target.
20:52 nopaste "bacek" at 122.110.34.44 pasted "full output from make spectest" (95 lines) at http://nopaste.snit.ch/18124
20:54 bacek fperrad: got it. make realclean is mandatory in this case.
20:55 bacek sigh... PCC...
20:56 fperrad darbelo, when export is a part of commands of one target, export is handled by the shell and not directly by make.
20:56 fperrad And export is not a shell command on Windows. So gmake is fine.
20:57 fperrad bacek, rm -rf install/tree && make install-dev is enough
20:57 darbelo I don't have gmake. I have BSD make, and it cries :)
20:59 darbelo You'll also have problems with makes that don't support ':=' as LD_RUN_PATH becomes circular.
21:00 darbelo Which you can kill, as it's unused.
21:02 dalek parrot: r41561 | pmichaud++ | branches/pct-rx/compilers/pct/src (2 files):
21:02 dalek parrot: [pct-rx]:  Add some Cursor methods.
21:02 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41561/
21:04 Tene NotFound: There *will* be a simple way to say "Here's a one-file PIR library; put it in the right place." as well as "Here's a .tar of PIR files; put them in the right place."
21:05 NotFound Tene: let's start with the easiser
21:05 joeri left #parrot
21:06 fperrad darbelo, in config/makefiles/root.in there are only :=
21:06 fperrad and in your generated Makefile, all are replaced by =,
21:06 fperrad except one which comes from a conditional line #IF(....  LD_RUN_PATH := ...
21:06 fperrad Is it correct ?
21:13 bacek fperrad: ok. It some shenanigans in PCC. And my pcc-fu isn't good enough to investigate and fix it...
21:13 darbelo conditionals get replaced too.
21:14 dukeleto kurahaupo: still need help with deciding on a small project?
21:15 darbelo But that only matters for LD_RUN_PATH, and you don't need that.
21:17 japhb Tene: incoming parrot-plumage commits
21:17 fperrad bacek, thanks. I'll wait for new ppc branch merge.
21:18 Tene japhb: yay!
21:19 japhb Tene: I've got some more refactoring to do, and then I'll go on to the next stage
21:21 dalek parrot: r41562 | pmichaud++ | branches/pct-rx/compilers/​pct/src/Regex/Cursor.pir:
21:21 dalek parrot: [pct-rx]:  Oops, naming fossil!  s/RX/Regex/g
21:21 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41562/
21:22 nopaste "bacek" at 122.110.34.44 pasted "Small patch for Lua for fperrad++" (230 lines) at http://nopaste.snit.ch/18125
21:23 bacek fperrad: patch doesn't fix problem anyway
21:23 Tene japhb: 'k
21:27 fperrad bacek, why declare param which are not used ?
21:29 dalek parrot: r41563 | coke++ | trunk/config/gen/makefiles/root.in:
21:29 dalek parrot: "Fix" deps for parrot_nqp
21:29 dalek parrot: See issue #1070
21:29 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41563/
21:31 dalek TT #1070 closed by coke++: building parrot with the make -j option fails after r41514
21:39 dukeleto darbelo: are you generating that debugger diff from trunk? all the hunks are still failing for me, this is odd
21:39 dukeleto all hunks are being rejected, that is
21:40 darbelo that was just a svn diff from my working copy.
21:40 darbelo And it aplies cleanly to my other checkout too.
21:41 dukeleto darbelo: it is really odd. I am attempting to patch it against the same rev that you made the diff from
21:42 darbelo Maybe it's becuse I'm copypasting from an xterm into a web page. gimme a sec.
21:42 dukeleto darbelo: i was wondering about line-endings or somesuch
21:42 hercynium joined #parrot
21:43 darbelo http://web.fi.uba.ar/~darbelo/patch
21:43 darbelo that's about as plain-text as it gets.
21:44 Tene I've got a friend getting segfaults when trying to build PGE: http://paste.lisp.org/display/87920
21:45 Tene anyone seen that before?
21:46 darbelo what platform is he on?
21:46 darbelo CAN I HAZ BACTRACE?
21:46 Tene trying to harass him into making one now.
21:47 darbelo Oh! Wait. I know, he forgot to configure with --make=make.
21:47 darbelo Or he forgot to use gmake to kick his build off.
21:48 darbelo Tell him to use 'gmake' instead of 'make' to start the build. Configure should have instructed him to do that too, but it's easy to miss.
21:49 Whiteknight joined #parrot
21:49 darbelo dukeleto: did it help?
21:51 Tene http://paste.lisp.org/display/87920#1
21:51 Tene -- backtrace
21:51 Tene darbelo: Um... Configure tells me to use gmake, but I use make, and it works fine...
21:52 * Tene tells him to do it anyway.
21:53 dukeleto darbelo: trying
21:54 dukeleto darbelo: yes, that works
21:54 dukeleto darbelo: have you tried the nopaste.pl to directly nopaste from a file?
21:55 Tene darbelo: any ideas about that bt?
21:55 dukeleto darbelo: tools/dev/nopaste.pl, iirc
21:55 darbelo Tene: gmake vs native make has caused broken builds for me before.
21:55 Tene darbelo: he says gmake is a symlink to make on his platform.
21:56 Tene He's on x86 fedora linux
21:56 Tene darbelo: gmake doesn't change anything.
21:57 darbelo Hmm. He's getting a mis-linked parrot somehow.
21:57 cotto_work old libparrot floating around?
21:57 Tene he's coming here.
21:57 Tene afk class
21:57 darbelo tell him to reconfigure with --buildframes=0
21:57 chromatic We'd better tidy up then.
21:58 darbelo Fedora x86 dying deep in Parrot_NCI_invoke sounds like the good ol' SELinux stuff again.
21:58 clsn joined #parrot
22:00 bacek_at_work fperrad: it's in PDD03. I have no idea how it affects whole PCC.
22:00 darbelo dukeleto: That script wants perl modules I don't have.
22:02 dukeleto darbelo: which modules?
22:02 purl hmmm... which modules is that?
22:02 dukeleto darbelo: ... don't you have ?
22:03 darbelo WWW::Mechanize
22:03 purl WWW::Mechanize is good or frequently fails tests.
22:03 dukeleto darbelo: what kind of box are you on?
22:04 fperrad darbelo, the line with LD_RUN_PATH exists in the Makefile of many languages and in mk_language_shell.pl.
22:04 fperrad I don't understand it. I don't know which platform really needs it.
22:04 fperrad Seems come from rurban's code.
22:04 fperrad Maybe it's obsolete since Parrot is installable and installed.
22:05 dukeleto darbelo: it wouldn't be hard to write the script without WWW::Mechanize, but that is a pretty useful module to have
22:06 darbelo fperrad: nobody needs it afaict. I loked into that when I built the decnum-dynpmcs build infrastructure, mk_language_shell.pl is pretty non-portable.
22:07 darbelo dukeleto: Okay, I'm sold. I'll see if it's in ports.
22:08 dukeleto darbelo: should be
22:08 darbelo indeed, p5-WWW-Mechanize-1.20
22:08 dukeleto it is quite nice to redirect output of commands to a file and then nopaste it from the command line. the less I have to use a slow-ass browser, the better
22:11 japhb Is there any way to flatten an array into a list in NQP?
22:12 darbelo dukeleto: So, delivery aside, does the patch make sense to you?
22:12 japhb Or in particular, any way to flatten array into subroutine arguments in NQP?
22:14 dukeleto darbelo: seems to make sense. get rid of raw C strings in favor of STRINGs and get rid of ->strstart . can you nopaste what your test failures looks like, so I can compare them to mine ?
22:16 darbelo Sure. Gimme a sec. I noticed that I should Parrot_str_free_cstring(unescaped) out of the conditional.
22:19 jrtayloriv japhb, Does this help? http://irclog.perlgeek.de/​parrot/2008-12-05#i_740011
22:19 jrtayloriv (I don't know the answer, but I found that, at least)
22:20 japhb I think that
22:20 japhb 's for Rakudo, not NQP
22:20 japhb But thank you for teh reference.  :-)
22:21 jrtayloriv np
22:21 dalek parrot: r41564 | fperrad++ | trunk (4 files):
22:21 dalek parrot: [languages] remove useless LD_RUN_PATH
22:21 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41564/
22:21 cotto_w0rk joined #parrot
22:22 dalek lua: 1bf9069 | fperrad++ | config/makefiles/root.in:
22:22 dalek lua: remove useless LD_RUN_PATH
22:22 dalek lua: review: http://github.com/fperrad/lua/commit/1b​f906997889c68aacc21f38c2e658f7abc34776
22:22 shorten dalek's url is at http://xrl.us/bfpazi
22:22 ascent joined #parrot
22:23 dalek wmlscript: 49ce43e | fperrad++ | config/makefiles/root.in:
22:23 dalek wmlscript: remove useless LD_RUN_PATH
22:23 dalek wmlscript: review: http://github.com/fperrad/wmlscript/commit​/49ce43e74801f32a448a1cb96446a9b8fbdfcccd
22:23 shorten dalek's url is at http://xrl.us/bfpazn
22:24 darbelo dukeleto: revised patch at http://nopaste.snit.ch/18127
22:24 jrtayloriv japhb, It's not NQP, but you might be able to find a way to do it with inline PIR from NQP by looking at Array::Flatten in Cardinal
22:25 jrtayloriv Anyhow, I'm done for the day ... 36 hours of awake time ... I'm now officially resynchronized with US/Eastern.
22:25 * jrtayloriv zzzzzzzzz
22:26 japhb jrtayloriv, thanks
22:26 nopaste "darbelo" at 200.49.154.173 pasted "This is the fail" (85 lines) at http://nopaste.snit.ch/18129
22:26 darbelo dukeleto: The fail is at http://nopaste.snit.ch/18129
22:27 dalek markdown: 69c3ca9 | fperrad++ | config/makefiles/root.in:
22:27 dalek markdown: remove useless LD_RUN_PATH
22:27 dalek markdown: review: http://github.com/fperrad/markdown/commit​/69c3ca9d5bcdbeeccafcb1480922f25150033953
22:27 shorten dalek's url is at http://xrl.us/bfpa2b
22:27 dalek xml: f5d1e4b | fperrad++ | build/Makefile.in:
22:27 dalek xml: remove useless LD_RUN_PATH
22:27 dalek xml: review: http://github.com/fperrad/xml/commit/f5​d1e4b04f90395447533c5833744dd895cd9103
22:27 shorten dalek's url is at http://xrl.us/bfpa2f
22:28 dalek blizkost: f8b96dd | fperrad++ | build/Makefile.in:
22:28 dalek blizkost: remove useless LD_RUN_PATH
22:28 Austin_away japhb: You can't flatten an array in nqp. You can use inline pir, which I what I've been doing.
22:28 dalek blizkost: review: http://github.com/jnthn/blizkost/commit/​f8b96dd8ce4cecde200c1805f9bd75fa3eaf43ce
22:28 shorten dalek's url is at http://xrl.us/bfpa2u
22:28 japhb Austin_away, nodnod
22:28 dukeleto yay, dalek learned about blizkost commits
22:29 nopaste "Austin" at 98.235.55.43 pasted "Array-flattening sub in NQP+PIR" (22 lines) at http://nopaste.snit.ch/18130
22:29 darbelo dalek needs to learn gitorius
22:33 japhb darbelo, yes indeed
22:33 japhb Austin: thanks!
22:33 Austin Probably the least I could do. What problem are you solving?
22:33 dukeleto darbelo: i will attempt to make the tests pass with your patch later today
22:34 darbelo dukeleto: Excellent, as I'm rapidly running out of today!
22:35 dukeleto darbelo: which TZ are you in again?
22:36 darbelo GMT-3, I think. I can never remember if it's DST time or not.
22:36 bacek_at_work clock?
22:36 purl bacek_at_work: LAX: Tue 3:36pm PDT / CHI: Tue 5:36pm CDT / NYC: Tue 6:36pm EDT / LON: Tue 11:36pm BST / BER: Wed 12:36am CEST / IND: Wed 4:06am IST / TOK: Wed 7:36am JST / SYD: Wed 8:36am EST /
22:37 dukeleto darbelo: central tz ?
22:37 darbelo Midnight was like 19 and a half hours ago. If it's clearer that way :)
22:38 Austin GMT-3 is like the canary islands, no?
22:40 Tene dukeleto: nopaste.pl reads from stdin
22:40 Austin 19:40 would be bermuda, halifax.
22:41 nopaste "NotFound" at 213.96.228.50 pasted "A simple idea to avoid Parrot_str_free_cstring, using it in two important places" (113 lines) at http://nopaste.snit.ch/18131
22:41 japhb Austin: Trying to merge explicit arguments, plus generated arguments, into argument list for run()
22:41 japhb (in Plumage)
22:41 Tene dukeleto: I have the following set as a shell alias: "perl ~/src/parrot/tools/dev/nopaste.pl -t "$1" -c '#parrot' -n tene $2", so I can specify a file, or just pipe a command to it.
22:42 NotFound Can someone take a look at this patch?
22:42 darbelo NotFound: +1
22:42 purl 1
22:42 Austin japhb: That's as good a way as any. Flatten them all in an arglist, collect them on the other side...
22:43 chromatic NotFound +1
22:45 dukeleto Tene: looks similar to what I have. i defaulted the username and channel in my script so I don't have to specifiy them :)
22:45 dukeleto Tene: yes, it can read from stdin, but since it spams the channel, I like seeing what I am nopasting before I nopaste it :)
22:46 NotFound I'll fill a ticket tomorrow, I'm tired now.
22:47 dalek parrot: r41565 | darbelo++ | trunk (2 files):
22:47 dalek parrot: Remove t/tools/pmc2c.t
22:47 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41565/
22:48 dukeleto purl: Inf-Inf
22:48 purl dukeleto: what?
22:50 darbelo NaN * Inf
22:50 dukeleto purl: learn to do math
22:50 purl dukeleto: excuse me?
22:50 dukeleto purl: 10-Inf
22:50 purl dukeleto: excuse me?
22:51 dukeleto yeah, I give up
22:52 Austin Has anyone here spent any time using Padre ?
22:52 Austin If so, any impressions?
22:53 dalek TT #1063 closed by darbelo++: pmc2c tests need review.
22:55 Whiteknight Padre is very good. It's very perl5-centric, and doesn't quite have all the options I need, but it's nice
22:56 Austin Do the high-level editing functions work for NQP?
22:56 Austin And, what do you feel is missing?
22:57 dalek parrot: r41566 | allison++ | branches/pcc_reapply:
22:57 dalek parrot: Creating branch for refactoring calling conventions, reapplying the changes from pcc_arg_unify to a fresh branch of trunk.
22:57 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41566/
23:00 cconstantine joined #parrot
23:01 cconstantine Tene: ping
23:02 cconstantine Tene: nothing big, thinking about how to add macro support, and I think I need to add another compilation phase that generates a tree of lisp lists and then have the compiler walk that tree.  Just seeing if you had given macros for stene any thought, or had a different idea
23:04 Tene cconstantine: pong
23:04 Tene cconstantine: I think that's a great solution.
23:04 cconstantine yay!
23:04 Tene cconstantine: also, my language is "steme", not "stene"
23:04 cconstantine oh, oops
23:05 cconstantine I thought it was a pun of tene and scheme
23:05 cconstantine I guess it still could be
23:06 cconstantine so, how would I go about importing/including a pir file in a nqp?
23:07 cotto_w0rk darbelo++
23:08 Tene cconstantine: the right way, or the easy way? ;)
23:08 cconstantine oh no
23:08 coke joined #parrot
23:08 Coke ~
23:09 Coke msg mikehh if the only thing using a thing is a configure test, that's a pretty good indication it's not used.
23:09 purl Message for mikehh stored.
23:09 cconstantine I'm thinking I only want to define my list (cons) type once... would it make more sense to go from pir to nqp?
23:09 Tene I'm not sure what you mean.
23:09 Tene Also, I hate cons lists.
23:10 cconstantine I don't ;)
23:10 darbelo cotto_work: not complainin' at all but, what did I do to get that ++?
23:10 Tene Also, make sure that your cons type supports all the parrot array vtable functions.
23:10 Tene push, pop, shift, unshift, and positional access.
23:10 cotto_work remoing those silly pmc2c tests
23:10 Tene so tha tother langauges can actually use the bloody thing
23:10 cconstantine I do think cons lists are used to solve problems they aren't good for
23:10 cotto_work s/mo/mov/
23:11 Tene and make sure your language can actually work with data types passed to it or returned ot it by other languages.
23:11 darbelo Removing code is what I'm best at.
23:11 cconstantine Tene: right
23:11 Coke (work with other data types) good luck with that. =-)
23:11 cconstantine Tene: I'm ultimately going to go the clojure way and have non-destructive vectors and maps
23:11 cotto_work It might be beneficial to have a document delineating what should and shouldn't be tested.
23:11 cotto_work and it might not
23:12 Coke cotto_work: kid51 has done a lot of work to test existing code. More work needs to be done to remove unnecessary code.
23:12 Coke (we just need to make sure that we don't count coverage tests as making something necessary.)
23:13 Coke (and it woudl be nice to remove things before testing them, in general, but hey.)
23:13 cconstantine Tene: anyway, right now I'm only concerned with building the AST with a cons lists, and then compiling it
23:14 cconstantine so, the cons type needs to be accessible from both 'runtime' and 'compiletime'
23:23 dalek parrot: r41567 | allison++ | branches/pcc_reapply (33 files):
23:23 dalek parrot: [pcc] Reapplying changes from pcc_arg_unify to fresh branch of trunk, so others
23:23 dalek parrot: can contribute more easily.
23:23 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41567/
23:31 * cotto_work goes home
23:35 * dukeleto goes to crazy town
23:37 * chromatic leaves the office
23:42 * bacek_at_work enters the building
23:42 ruoso joined #parrot
23:43 * darbelo wanders into the room.
23:44 mikehh Coke: probably - I am not sure in what context?
23:50 TiMBuS joined #parrot
23:50 Whiteknight allison has the branch made. Now Whiteknight is going to work
23:51 darbelo Whiteknight++
23:52 * Whiteknight is very tired of waiting. The time to kill this beast is now
23:55 Whiteknight miniparrot is segfaulting in the branch now, didn't last time I looked at it
23:56 japhb Major pushes to parrot-plumage today.
23:56 Tene yay
23:56 Tene I'm excited to look.
23:56 Tene going home shortly.
23:57 japhb Can actually go through a full fetch .. install cycle.
23:57 japhb Except that blizkost fails to build on my box
23:57 japhb And Close has failing tests.
23:57 Tene hehe
23:57 japhb But if we could fix those, everything else would be golden.
23:59 japhb dangit, I keep /msg'ing someone who isn't online
23:59 japhb purl, msg Austin Close has failing tests ... which I know because Plumage is now ready to go all the way through installing it, but bails out when the tests fail.  :-)
23:59 purl Message for austin stored.

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

Parrot | source cross referenced