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