Parrot Sketch: Oct 3

jesse on 2005-10-03T20:08:13

Day changed to 03 Oct 2005 13:33 -!- leo [~lt@feather.perl6.nl] has joined #parrotsketch 13:56 -!- mdiep [~matt@bursley-221-209.reshall.umich.edu] has joined #parrotsketch 13:57 -!- chromatic [~chromatic@sub17-30.member.dsl-only.net] has joined #parrotsketch 13:57 I may have just blown our cover in #parrot 13:57 for some reason my client sent my /join through 13:58 it had a ^P in front it seems 13:58 odd 14:00 -!- autrijus [~autrijus@feather.perl6.nl] has joined #parrotsketch 14:00 greetings gentlefolks. 14:01 hi lambdacamel 14:01 'afternoon, all. 14:01 glad I made it on time 14:01 well, the logs that have been posted all have the channel name ;) 14:02 have they been posted publicly somewhere? 14:02 Not all of them and not consistently 14:02 indeed, havn't read about them publicly 14:02 autrijus had some up for a bit. And leon was going to post a couple of them for us at one point 14:02 I've asked robert to automate this for us 14:02 autrijus: you are back @home? 14:02 so we don't have to think about it 14:03 obra and I talked once about making this a moderated channel if necessary. 14:03 leo: no, at finland 14:03 Yeah. basically, if the peanut gallery starts showing up for meetings, they will keep quiet ;) 14:04 heh 14:04 I have no problem with people watching, but distracting isn't ok ;) 14:04 We're distracting enough. 14:04 *g* 14:04 We'll give the rest of the gang another 2-3 minutes 14:04 anyone who has questions should list them off now. But NO ANSWERS AND NO DISCUSSION ;) 14:04 Just a preview ;) 14:04 while we wait 14:05 What's the status of the Ponie and Parrot smoketest systems? 14:06 is there a plan to add a event/notification system to Parrot somewhere down the road? http://www.sidhe.org/user/dan/blog/archives/000414.html 14:06 how is the static lexical pad coming along? what will the PIR level look like and, is it workable or emulatable now? 14:07 when do DEPRECATED/DELETED opcodes actually get removed? 14:07 How far along is the AST model in Pugs and when is it possible to start porting it to PIR? 14:08 who, if any, is going to port UUAG or Luke's L::AG to Parrot? 14:08 is there any rubric for determining if something becomes a VTABLE method? there is currently add_method but not add_sub 14:09 How far can we push HLL complexity into vtable methods for things such as method dispatch and namespaces? 14:09 Wow, abstract. 14:10 Ok. 14:10 If each PMC is to carry their own HLL metaobject protocol, how should we encode the existing Perl6-MetaModel protocol? 14:10 anyone else got stuff before we go for reports? 14:10 I'm going to pick on... autrijus first. 14:11 Autrijus: what's new? 14:11 yo. 14:11 been looking at parrot 0.3.0. breaks plenty of PGE tests pugsside 14:12 at least one infinite loop, which has been commented out temporarily 14:13 (but pmichaud is not here, so moving right along...) 14:13 looked at the new callconv. seems mostly sane. plan to push 6.2.10 asap and focus on the metaobject protocol, aka metamodel. 14:14 at which point we'd need to encode them on top of the parrot object model. I assume no design changes on that area yet -- woudl be nice to know if there's any to come. 14:15 found a neat way to implement full continuations on non-CPS engines. paper author claims will give traditional exception-only VMs the same speed for continuations as the full-CPS VMs such as parrot 14:15 . o O {But it's a bit too complex to describe on an IRC channel right now} 14:15 which is great news to perl5 and javascript backends. 14:15 yup. 14:16 I think that's it for now. 14:16 many more besides, but those are the vaguely parrot related :) 14:16 ok. 14:16 leo? 14:17 wellknown: merged the trunk or better: Robrt + clkao + svk did it 14:17 released 0.3.0 14:18 implemented utf8 substr aka get_codepoints ak c = u[i] 14:18 started coding towards variable sized register frames 14:18 update DEPRECATED 14:19 a lot of people are looking for a better config/make/install scheme 14:19 rafl got ci bits for /debian 14:19 Does parrot currently use autoconf? 14:19 that's it so far 14:20 ok. 14:20 no autoconf et al - its perl only + make 14:20 mdiep? 14:20 tcl's [expr] command, which is a significant portion of the language, is now compiled instead of interpreted 14:21 tcl itself is on its way to being compiled as well 14:21 code has been checked in, but some tests are failing 14:21 some of the failures have to do with confusion over pads 14:22 that's "it" for this week 14:22 chromatic: what'snew? 14:23 I'm going to clean up the one bit in the embedded function generation patch that Leo pointed out and apply that. 14:23 I'm also going to check in the BROKEN document to the repository in the next couple of days. 14:24 I haven't heard about anyone running CPD over the C code; I'd like to see that (but I don't really have a box that can do it.) 14:24 CPD? 14:25 Copy & Paste Detector. It finds identical or very similar code. 14:25 url? 14:26 http://pmd.sourceforge.net/cpd.html 14:26 Thanks 14:26 Anything else exciting? 14:27 Not here, unless you want to write a hack. 14:27 I do. But that's neither here nor there ;) 14:27 Ok. Did I miss anybody? 14:27 Oh. I bet nick's on the erl whirl. As might chip. 14:28 Right then. who asked a question that someone here can anser? 14:28 I just start answering 14:28 Go for it, leo 14:28 first Q during report 14:28 -!- autrijus_tw [~autrijus@220-133-92-49.HINET-IP.hinet.net] has joined #parrotsketch 14:29 add autrijus : PGE 14:29 hey sorry, my keyboard is drinking tea right now 14:29 so lost track of the previous ~5min of discussion 14:29 <- using some other laptop 14:29 autrijus_tw: I 14:29 so, what about PGE? 14:30 just started your PGE answering 14:30 it works in 0.3.0 and did work in the branch 14:30 that means we are lacking tests 14:31 can pugs PGE-related tests be converted to parrot tests? 14:31 nod. there was an effort before that converted the pugs/t/rules/rules.t into spec-based tests 14:31 because that'sa parrot core feature, tests should be in parrot 14:31 i.e. instead of coding them as code, code them as data 14:31 yup 14:31 I fully agree. 14:32 okie - anymore wrt PGE? 14:32 no more... you know who will likely be versed in parrot testing and pge to help with the importing? 14:33 or should I simply commit the specs (string, regex, expected) into somewhere (where?) in parrot tree 14:33 drop a request at #pugs, #parrot, and p6i please 14:33 code is still better ;-) 14:33 Perhaps post an example of the data to p6i. 14:33 -!- autrijus [~autrijus@feather.perl6.nl] has quit [Ping timeout: 260 seconds] 14:33 sure, will do. 14:34 -!- autrijus_tw is now known as autrijus 14:34 a short note WRT mdiep / tcl/ pads: 14:34 it's an issue of compile vs. runtime 14:34 the initial pad is/was in the compiler so runtime failed 14:35 autrijus: what's the less 'sane' part of new call conv? 14:36 leo: I'm thinking about where nameds will/can fit in. 14:36 as you know, the majority of pugs's test case used nameds. 14:36 ok - a todo item, chip is pondering alreay 14:37 and also related to lexical handling 14:37 okay, I'll stay tuned. in any case a sane pad is far more important. 14:37 right, in a sense named parameters can be seen as prebound slots in pads 14:37 ok - that's what I have from the reports 14:37 general questions now? 14:37 sure! 14:37 Unless someone codes the implementation backwards and they end up post-bound slots... d'oh. 14:38 chromatic: smoke tests 14:38 chromatic: that is the state now, I gather? :) 14:38 -!- Nicholas [~nwc10@colon.colondot.net] has joined #parrotsketch 14:38 parrot has some tests now 14:38 $ grep smoke Makefile 14:38 No, that was me in Pugs. 14:38 make smoke does it all 14:39 Are there automatic smoke reports coming from anywhere? 14:39 Sorry, not able to make meeting porperly this week. I'm on pay-through-the-nose wireless on ship. Sitting in Allison's talk. I assume that she's not making it either :-) 14:39 We talked somewhere, somewhen about stealing something like the Test::TAP::HTMLMatrix idea from Pugs. 14:39 not yet - or parially 14:39 but it's just a matter of 'make smoke' 14:39 which can easilyrun bycron 14:40 end results are: 14:40 http://smoke.parrotcode.org/smoke/ 14:40 Nicholas: is the talk fun? :) 14:40 Excellent. 14:41 -!- chip [~chip@feather.perl6.nl] has joined #parrotsketch 14:41 need some refinement still, like more ENV vars 14:41 Heya chip. 14:41 So I've recently discovered that my brain is malfunctioning, and I have to bring it in to the shop 14:41 hi chip, Nicholas 14:41 hey chip. I'll send full logs as soon as we're done. 14:41 sorry guys 14:41 thanks. pls carry on 14:41 in the meantime, let's jump back to reports. 14:41 What's new, chip? 14:42 I'm still on 'go' WRT PDDs. It's still a good plan, I just haven't managed to work it into RL. 14:42 Very hopeful for this week, though. 14:42 ok. what can we do to help? 14:43 I can't think of anything offhand, not for this stage... 14:44 autrijus: I am having trouble staying awake, but that's beacuse I'm jetlagged. I think that Allison is having fun 14:44 Well, Hm. 14:45 -!- Nicholas [~nwc10@colon.colondot.net] has left #parrotsketch [] 14:45 Ok. if that's it for the last week, we've got 15 more minutes for questions. 14:45 What's on the for-chip list from the start of the cchat? 14:45 the lexical pad PDD ;-) 14:46 and nameds. 14:46 name arguments 14:46 argh named 14:46 Start asking full questions ;) 14:47 Named arguments didn't have a lot in common between Perl 6 and Python ... is the request that the arg passing should support the Python style? 14:47 or has Perl 6 moved away from the magical pair handling? 14:47 I think the consensus is that magical pair is not parrot's business 14:48 it may go away together or become the compiler's burden. 14:48 autrijus: OK ... would Python style named args be helpful for Perl 6, then? 14:48 yes. 14:48 OK then. 14:48 Curious: How? 14:49 except for perl6, both named and positionals are to be allowed for regular arguments 14:49 so if parrot can do that natively, the better. 14:49 I overhufmanned my question. 14:49 "except for perl6"? 14:49 "except for the fact that perl6..." 14:50 Well, no matter. If python style is a better base than perl5 style, then it shall be so. 14:51 aye. 14:51 ok 14:51 also, is the idea that defaulting is to be handled by the compiler? 14:52 yes, you'll just get a flag that says it was passed or not 14:52 I vaguely remember in Leo's place it was said so, not sure if it had changed. 14:52 right. 14:52 sure, that works. 14:52 ok 14:52 so will nameds andpositionals be simply bound into the static lexical pad? 14:52 the existing feature is good for working on that, you can't pass by name, but you can currently generate default-value assignment 14:52 our current design is taking that as basic assumption. 14:53 autrijus: I'm still thinking that the pad binding is the compiler's job; the arg passing will go into registers as now. 14:53 okay, but then I'd like a way to name those registers :) 14:53 autrijus: .local .param ... ? 14:53 name as in walkable padlike things 14:54 but ::CALLER::* support can wait, I guess. 14:54 well, consider that if you get a bunch of registers, you can store them yourself, and there's no loss (or gain :-)) of %CALLER support 14:55 ah right, but that kind of requires var-sized register frames 14:55 which is the plan already. right. :) 14:55 that's it for this stage I think... we'll see what comes when during targeetting. 14:57 (eof) (but I'd like to ask chromatic what he meant by 'porting' PIL) 14:58 Making native Parrot datastructures. 14:58 PMCs or PMC Objects. 14:58 (And after that, I'd like to wrap up unless there's something else) 14:58 er I did post that. 14:59 I must have missed it; I'll look for it again. 14:59 I mean, there's a dumper from haskell structure to PIR in pugs tree, and I posted the ParrotObject notation for PIL during YAPCNA 15:00 PIL or PIL2 or is there a difference now? 15:01 there is. PIL is the one currently targetting JS/P 15:01 JS/perl five 15:02 it's the "dynamic" part of perl6 15:02 and I think I'll not tweak it too much for this current runcore 15:02 it does not have the notion of types. 15:02 not more than a label, that is 15:03 so is insufficient to represent type-annotated perl6 15:03 but should otherwise be fine. 15:03 Anybody got anything else burning? 15:04 chromatic: even if you get the PIL objects, it's unlikely you can do anything with it :) 15:05 awwww 15:05 without some sort of visitor / tree manipulation engine -- otherwise known as AG 15:06 (you can also write them all by hand, but it's not advised) 15:06 not with PIR assembly anyway. 15:06 but if you'd like to take a try, you can start by adding DrIFT.ParrotObject 15:07 so you can take Perl6 code and emit object trees. 15:07 that will give the PIR-side something to play with 15:07 eof. 15:08 I still have a longish list of answers - should I continue? 15:08 leo: go for it 15:08 We like answers 15:08 chromatic: final note WRT 'make smoke': 15:08 it's of course stolen^Wborrowed from pugs 15:09 and is using Test::TAP::HTMLMatrix 15:09 thx to nothingmuch 15:09 mdiep: events 15:10 parrot has already event handling at least on POSIX 15:10 it's used e.g. for C (NCI) callback functions 15:10 because you don't know, when C calls parrot 15:10 events are also used for C and timers 15:11 but it's all experimental 15:11 does that cover it? 15:12 ok next Q in my list: 15:13 mdiep: when will DEPRECATED be resolved 15:13 RSN - that's it ;-) 15:13 Ok :) 15:14 Q: autrijus UUAG ? L::AG - who does it? 15:14 I think it's molstly a compiler thingy 15:14 Luke Palmer wrote the P5 version. Patrick and I are watching in anticipation. 15:14 parrot classes are created during runtime 15:14 so whatever the compiler produces, it should work 15:14 leo: http://www.cs.uu.nl/wiki/Center/AttributeGrammarSystem 15:15 it's the Haskell AG system that luqui is modelling the L::AG after 15:15 I've to go through it 15:16 I'm inclined to use it for pugs compilation 15:16 I don't think that folks want to write L::AG in PIR 15:16 I think it's like a lib 15:16 because then the compiler code will be more portable to perl6, if it supports AG natively and well. 15:16 I prefer to write in PIR than C, for most things. 15:16 but you can't link in Perl libraries. 15:16 not easily anyway. 15:17 I also think linking in C is an attractive optin (there are code in antlr and other plces) 15:18 and runtime in parrot is also compile time, *if* a sub is marked with IMMEDIATE, which could help during compilation 15:18 but if chromatic and pmichaud prefers coding it up again with PIR, it's fine with me too, but hopefully we'll get reasonable efficiency. 15:18 (we had to recommend against using PGE in ext/* code mostly due to efficiency reasons.) 15:18 I think Allison wants the option to have these tools in PIR, at least. 15:19 *nod*. I'll leave it at that. :) 15:19 I've to look at the p5 code first, but it's probably not too easy to write all in just PIR 15:20 Dunno. I've ported well-designed P6 code to PIR and it wasn't too bad in most places. 15:21 yep, but when it comes to expressions it's ugly and boring 15:21 OO code works fine 15:21 ok to go to next Q? 15:22 Okay by me. 15:22 mdiep: add_sub vs. add_method - the former doesn't exist, the latter is an opcode 15:22 add_sub is covered by store_global / store_lexical 15:23 and: 15:23 .sub foo 15:23 does the right thing 15:23 it stores the sub 'foo' in the active namespace 15:23 I think that should cover all use cases 15:24 .sub foo :anon 15:24 and you don't get the namespace entry 15:25 I think it's just a compiler issue 15:25 and related final 2 on my list: 15:26 HLL abstraction / MetaModel and such 15:26 parrot's primary target is Perl6 15:26 the metamodel should cover a lot of p6, e.g. MMD 15:27 if we need different core behavior for e.g. p6 vs python, we can still event HLL PMCs where we abstract the differing thingies 15:27 (eof) 15:28 Ok. 15:28 any more? 15:29 Right then. 15:29 s/event/invent/ above pls 15:29 I'll catch you all next week. Same bat-time.