% mdiep has joined #parrotsketch when's the meeting? in an hour? yep great, thanks. wtf? oh yeah, it stuck to UTC. I forgot! * chip updates his kalendar * chip should probably leave it, it'll increase chance of being early heh audrey won't be around today, but I have her report canned % Coke has joined #parrotsketch % allison has joined #parrotsketch Hi gang! 'lo first up is audrey she's not here hel' so, I'll paste in her report 12:46 Oh. parrot sketch in 75 min 12:46 can't stay up for that 'mfraid 12:46 ok. 12:47 is there anything you want to report? 12:48 yes... mostly that librules, a C-based implementation of op table and its match/token/parser structure, has been started today under pugs/src/rules/ % pmichaud has joined #parrotsketch 12:48 in an attempt to enhance PGE::OPTable's performance and provide common layer for P5/PIR/Hs 12:48 -based rules implementations 12:49 ok. 12:49 some tests would be most welcome - it could just be tests for the Parrot PGE::OPTable checked in parrot tree, and I'll pickup from there. 12:49 is this your code? 12:49 yes. 12:50 *nod* 12:50 pmichaud said he would like to see the slow PGE::Match Cified 12:50 and would also be happy to see the bottom layers dePIRized 12:50 Judy proved to be a pretty good data structure API for C-land porting 12:51 so I'm working with Judy for now, but if parrot later wants to link against it 12:51 then parrot can either NCI Judy, or embed it, or provide an adapter API based on ResizablePMCArray and ParrotHash 12:51 but I think Judy makes a lot of sense for sparse mappings and arrays. 12:52 *nod* 12:52 url for Judy? 12:52 judy.sf.net 12:54 Thanks er. going to restart that paste so patrick sees it first up is audrey. she's not here. I'll paste in her report 12:46 Oh. parrot sketch in 75 min % chromatic has joined #parrotsketch 12:46 can't stay up for that 'mfraid 12:46 ok. 12:47 is there anything you want to report? 12:48 yes... mostly that librules, a C-based implementation of op table and its match/token/parser structure, has been started today under pugs/src/rules/ 12:48 in an attempt to enhance PGE::OPTable's performance and provide common layer for P5/PIR/Hs 12:48 -based rules implementations 12:49 ok. 12:49 some tests would be most welcome - it could just be tests for the Parrot PGE::OPTable checked in parrot tree, and I'll pickup from there. 12:49 is this your code? 12:49 yes. 12:50 *nod* 12:50 pmichaud said he would like to see the slow PGE::Match Cified 12:50 and would also be happy to see the bottom layers dePIRized 12:50 Judy proved to be a pretty good data structure API for C-land porting 12:51 so I'm working with Judy for now, but if parrot later wants to link against it 12:51 then parrot can either NCI Judy, or embed it, or provide an adapter API based on ResizablePMCArray and ParrotHash 12:51 but I think Judy makes a lot of sense for sparse mappings and arrays. 12:52 *nod* 12:52 url for Judy? 12:52 judy.sf.net 12:54 Thanks 12:57 other than that... p6ast draft#0 is produced with Lit, Undef, Code, Capture, Signature, Object, Call, Apply, Var, Sym, Magic, Bind, Assign, Exp, Stmt forms 12:58 the draft is currently a mess, but next week I'll work on something suitable for more serious code analysis. 12:59 then we'll see how much, or all, of this can be translated to POST, and I think it helps to give that a concrete syntax too (as in the AbsPIR) 13:01 nod 13:01 also, pugscapture.pmc may be an interesting start to be a PMC-level (instead of PIR-level) Capture/Match object implementation. cognominal said he'd like to see it as part of base PMCs 13:02 though I'd like more input from pm and leo re the applicability of this arrayhashscalarmonster implementation. 13:02 we have some tests for it in capture.t though. 13:02 ok, I think that's all 13:03 oh, and I told pm that he can mv language/pugs/* into language/perl/* 13:03 I mean language/perl6/* 13:03 anytime he wants, and I agree there should just be a single language/perl6/ codebase in the parrot tree. 13:03 *nod* 13:04 though I'm not sure how to refer to that :) 13:04 I mean, language/tcl is known as partcl 13:04 I've been using "Parrot/Perl6" 13:05 or "PGE/Perl6" 13:05 nod 13:06 but a codename (like punie, pugs, lrep, etc) may reduce confusion :) And that's it (Did I manage to get myself kicked for pasting too much?) [End of audrey's report] who wants to go next? * obra picks [on] chip you're still here, obra :) What's new? oh good. ok. if ENOCHIP, patrick, what's new? I have a longish report also, so will paste =pod REPORT -> The perl6/perl6.pbc parser is now a compiler -> Many people are now contributing tests and code (and I still need to make announcements to the various lists) -> Lots of things actually work, including [if|unless]/elsif/else, chained ops, short-circuit ops -> The full list is in http://svn.perl.org/parrot/trunk/languages/perl6/lib/grammar_optok.pge -> In fact, the grammar_optok.pge file is used to generate the operator precedence parser from a perl6-like syntax -> It also can specify the inline PIR to generate for each operator (if not specified, it generates a sub call) -> The "rulec.pir" compiler has now become "pgc.pir", which can create generate the PIR for parse rules and operator precedence tokens from files using a perl6-like syntax. -> Thus the Perl 6 parsing grammar is almost completely specified by grammar_optok.pge and grammar_rules.pge. -> The current codegen goes straight from PAST->PIR; this will likely change in the future but I felt it was an easier baby step to take than going through POST. -> Some people will likely start to run into problems if they do not have ICU available in Parrot, because some string ops will not work on unicode strings w/o ICU -> I sent a message to chip and leo last week regarding passing "is rw" params -- some help there will be worthwhile -> The changes to namespace implementation will require a lot of refactoring of PGE code; overall this will be an improvement, but there will be a "break point" where existing users of PGE will have to convert. =end REPORT wow I should clarify "The Perl 6 parsing grammar..." I mean there to say that the specification is performed mostly in those two files, not that I have most of the grammar specified :-) die "Okay, really done now." Ok. so, how can folks best help you? tests and code are all welcomed I'm drinking from a firehose a bit because it's now at a level where many can participate, and there's a lot of low-hanging fruit *nod* where arre folks sending contributions? we're targeting the pugs test suite -- however, the bulk of the suite relies on "Test.pm", which itself seems to want junctions and sub calls so, we'll be implementing some other tests on the side and somewhere, Damian is smiling at the moment the contributors all already have parrot repo commit access I wonder how much Test.pm has evolved since I last poked at it. after that contributions can come through p6c or directly to me pm: we can port Test.pm to a friendlier subset of perl6, if desired (Is it feasible to drop in an alternate Test.pm until you have junctions and sub calls) heh that would likely be very worthwhile, if someone wants to implement it * leo was just thinking the same sub calls should be available reasonably soon junctions ... well... * pmichaud punts heh. Ok. Anything before I turn to chip? I bet someone could shim Test.pm to run on the PIR Test::Builder pretty easily... I'll be very glad for someone to do that I'm generally trying to keep the perl6/STATUS and perl6/README files up to date -- they tend to say what I'm focused on but it's all happening very quickly * pmichaud done woot. chip? woot indeed. It's been a good week I've brought pdd21 and the namespace TODO into agreement with the code, i.e. the TODO is the definitive delta I'm starting to think about making RT entries for the TODO entries that may take a while you can likely automate that with a grep|mail And the feedback has been of the good kind (I'm doing this and it almost works, etc.) obra: yes modulo metadata. even that though maybe. gotta learn RT really as in really learn The morphing question still remains. next time we're in the same place, I'm happy to give you a crash course. If i haven't learned by YAPC, you can first beat me severely about the head and shoulders, then teach The issue with morphin is that although it's clear that we can do without it if we have to, I'm not sure yet that removing it is a good idea, if that makes sense. Removal is pretty much irrevocable. What's the bitrot status of Ponie? I'm not sure nick is around, but the last I heard the bitrot was composed of two things (I ask because Ponie would be the hardest-hit by any PMC revision, esp. something serious like antimorph) 1) They were on 5.9.2 or so and 2) nick was a little worried about PMC revisions but. ponie isn't getting active dev. Parrot should do what parrot needs to do. Yes, (2) is on my mind. Indeed. I've pinged nick. not sure if he's around he's technically retired from ponie, but he's the best source of knowledge, still * leo is not thinking about removing morph - Parrot core PMCs don't morph I'll be happy to have him chime in on irc, but mail is OK too. % Nicholas has joined #parrotsketch leo: Let's have that discussion at end of #sketch or maybe over in #parrot - it's important but others must report Hi okie - hi Nicholas oh, well, visiting dignitaries trump procedure Nicholas: chip had a question for you Nicholas: thanks for dropping in Nicholas: Leo's PMC proposals would have had a significant affect on Ponie as is/was. What was the reason why there would be upheavel - what effects would there be exactly, what would have to be redone? The proposals related to heads and bodies, and generational GC? Nicholas: yeah. replacing PMC + PMC_EXT + PMC_data() with variable-sized PMC (i.e. a PMC with a char data[] at the end) (including the stuff currently in PMC_EXT) It was really that I had a reasonably good idea of how to bend Perl 5's data structures into the existing PMC framework and the timing was a spectacularly bad coincidence { not surprising, as parrot 0.0 was influenced by topaz, which was designed to implement perl 5 } as in the very next task (give or take merging 5.9.3 release in) was starting on the PMC stuff so it was mostly a timing thing, w.r.t. stability I didn't want to be aiming at a moving target that was all OK (as to the general question) You were planning to morph PMCs to implement e.g. tying, right? PMC do already morph to implement typing Right but I thought further and didn't mail p6i (or maybe I did) there's quite a difference between a PMC that is "I say I'm a Perl 5 scalar" which swaps vtables and internal represenation but presents a consistent API (and wants you to think that it's still the same) and morphing from "I'm a Scalar" to "I'm an Array" and really actually only the former is needed Heh. the ability to swap vtables and represenation from a bounded group of options OK. (side note: other languages have different boundaries on what's swappable.) #sketch is for everyone and I've monopolized too much time. Ok. we can come back later. Nicholas: I'll ask more involved Qs in mail but this has been very helpful The only other thing that was potentially useful was to be able to find out if a PMC is in a bounded set, so that you know if this is "something that behaves in a sufficiently Perl 5 way" chip: you blocking on anything? which I was wondering if it could be done by cheating, by saying "you must have this function pointer in this slot in your vtable" (er, sorry, done) obra: Nope. I'm having a lot of fun, btw. :-) Nicholas: {stored} woot ok. next up, allison On punie, I finished up else/elsif blocks I'm working on answering an email on the exceptions PDD at the moment I'm going to try to put out a revised exceptions PDD by the end of the week (got quite a few helpful comments) not sure what to do next in Punie, maybe variables or loops Junctions. :-) bah! history revisionist! :) .oO{lexicals} that's all for me allison: I could use an example of contexts ok. blocking on anything? which PDD is next? threads is the other one I'm currently working on pdd00_int ;) though, I keep swapping between it and events should I start numbering these? "int"? there is no real spec about base types, nor scalarish types allison: yes so we can talk about them please num, str, complex, ... shall I just start in sequence after the current highest numbered PDD? allison: that's a good idea er, pardon me looks like that's 22, 23, 24, and 25 allison: yes please, and if something doesn't survive or get split etc. then we can just retire the number ok EOR ok. *looks around* Jerry? firstly, i've been standing back in amazement watching how quickly perl6 is developing, on so many fronts (pge, tge, pugs, parrot, parrot/perl6.) great work, all patrick has made perl6 *very easy* to implement, and i'm quite grateful that he's made the entry barrier low enough for me to help. so, i've been adding perl6 ops and pir bodies, playing non-icu guinea pig, and adding perl6 tests, in addition to the usual parrot cleanup/maintenance otherwise, i (like many others) am waiting for news from yapc::na ...on presentation acceptance ZZ coke? APL - adding in tests and code to support the vector-based ops ; Tcl - got it mostly working again with the (not so recent) namespace modifications. Still some issues to resolve; talking about any issues I find on the mailing list, adding test(s) to namespace, etc. Blocking on tuits, of course, and any dregs of partrick's time now that p6 is underway at full speed. Still no word on the YAPC talks, as particle noted. EOR mdiep? { I'm also hoping for YAPC news ... I'll be there whether or not I'm presenting } nod coke++ on resolving the namespace issues before I have to deal with them. :-) chromatic? ok. chromatic, mdiep: feel to pipe up if you return. So. YAPC hackathon news. I'm here. Sorry. s'ok. go for it I have a tarball of Pheme ready to checkin, except for the weird namespace errors in the generated grammar. If someone, perhaps someone in Texas, were to help me out, I could check it in soon. http://wgz.org/chromatic/tmp/pheme.tar.gz :) be glad to help (assuming I'm the texas person) heh. It could be a stupid mistake, but PGE doesn't seem to be able to find the generated subs for my rules. at a guess, use fully qualified names in your grammar. Otherwise, it's a compiler for a very small subset of Scheme using PGE, TGE, PAST, POST, and PIR and it passes the defun lambda test. actually, I recommend against the fully qualified names I threw those in because they made it work yesterday. folks wait a bit with that ;) leo: the fully qualified names in rules aren't likely to change :-) That's all for me. depends, what a fully qualified name is ;) ok. anything else new and exciting, chromatic? /me appears again perfect timing, matt. what's new? mostly I've been trying to keep up with the flood of traffic on IRC and the lists. I have some comments for chip wrt namespace things that I'm hoping to get out today. then I'll hopefully resume work on partcl and begin helping with perl6 as today's the last day of class, and only 3 exams stand between me and summer. good work, everyone. things appear to be coming along at fantastic speeds. woot, perl6 help Congrats ^D Ok. so. my two items: YAPC Hackathon and SoC The yapc hackathon will happen. 29 June to 1 July. We don't know where yet. Please add yourself to the hackathon page at http://yapcchicago.org/wiki/index.cgi?HackAThon, along with a list of what you want to hack on or who you need to get cycles from Virtual participation, while not idea, is encouraged and still wonderful, if you can't make it Item the second: Google summer of code. We're about to head into the second google summer of code. We need ideas for projects that would take a competent student two months of full time hacking to implement. They should be concrete projects that we can actually judge delivery on and that will actually be helpful to P6/Parrot If you send your ideas to me, I'll collate and forward them to robert who's maintaining the list cool ok. that's it for me deadline for SoC Questions? comments? um. for projects, nick? * leo has a few lines to report ;) obra: what's the SoC dealdine? 14:53 no, new FAQ says start May 23, Finish Aug 23 anything else? specifically see http://code.google.com/soc/studentfaq.html#46 for their timeline. It's all quite tight and if not, have a great week everyone wait, I want leo's report ! * leo just starts reporting now * resynced after one week in .pt oh. sorry! * exception handling fixes and code cleanup in Getopt/Obj.pir go for it leo * implemented missing vtables in Resizable*Array * various namespace bug fixes * some Perl6 {op,}code hacking * some Perl6 {op,}code hacking * implemented nested class hierarchies (based on the NameSpace PMC as backing store): c1 = newclass ['Foo';'Bar'] # also subclass c2 = newclass 'Foo' # these can coexist o1 = new ['Foo';'Bar'] o2 = new 'Foo' c3 = getclass ['Foo';'Bar'] ugly c1 = newclass ['Foo';'Bar'] # also subclass c2 = newclass 'Foo' # these can coexist o1 = new ['Foo';'Bar'] o2 = new 'Foo' c3 = getclass ['Foo';'Bar'] * allmost all done, except $I0 = isa o, ['Foo'; 'Bar'] EOR ok. cool * obra holds the floor open for another minute. anything else? leo++ for low feature latence IIRC someone was going to ask Coverity if they could add parrot to their projects. Is that ball in their court yet? and I got a Q for allison fire away Nicholas, I asked them. They will. TGE / PGE / compiler tool chain Q: can languages/perl6/lib/grammar_optok.pge provide: multi sub infix:+ is pir(...) # or whatever the p6 syntax is multi sub infix:+ is pir(...) and that multi gets called for codegen of these types? this is more of a patrick question, as I haven't been working on that part s/that multi/one of these multis/ part of the issue is that we don'tknow until runtime what the types are but actions are called from TGE? my int $a; ... tge only compiles the grammar down to PIR code, it doesn't actually execute anything at the moment the "is pir" trait is just a hook for me to get code generated -- I don't know that it will live I'm having to think through the ramifications of using Perl6's param list to influence TGE. They're somewhat different beasts ok - it's not urgent now, I'm just curious for the moment I'm mostly interested in getting a pmc-based implementation able to do the pugs test suite :-) Hmm, http://lambda-the-ultimate.org/node/1416 patrick: if it's a useful feature, it's useful, and maybe should be an addition to tge, or some kind of add-on tool I need to spend some time looking at the perl6 implementation to see what it might need allison: also a pointer to the Sub node (or some Context) would be great allison: yes, please do look when you get a chance -- I don't want to go too far astray without knowing that I'm going astray :-) really helpful would be knowing lvalue/list/scalar context, and the current sub see also languages/perl6/lib/past2pir.tge # this shouldn't be a global, but an attribute of # this shouldn't be a global, but an attribute # the PAST::Sub node accessible from a Var or Lex Node should this move back to #parrot? likely see all next week chromatic: good. I wonder if coverity are a bit snowed under dealing with tweaking the scanner in the light of all the new feedback from the projects they already have. It seems to have a moderate false positive rate. But it is really useful at flagging up what might be problem, and is probably 75% accurate, which is a lot better than a poke in the eye with a sharp stick. (was waiting) I'm aware of a lot of code, which would make the checker not really happy ;) chromatic: http://nopaste.snit.ch:8001/paste * leo thinks that we might first try to fix basic items, like sprintf oops http://nopaste.snit.ch:8001/6983 things should parse now leo: sprintf is busted? joy there is snprintf almost everywhere strcpy -> strlcpy ... given licensing issues can we borrow code from Perl 5? yes BSD/MIT/X license projects too? not directly we'd need a contribution agreement from each contributor to that project? OK. Well, the sv_setpvf* family has its own sprintf implementation and we maybe should grab it. It will allow us to use format chars that speak directly to Parrot internal structures chip: did you look at Judy license too - would it be ok? obra: or, just from the project, or the person who wrote that code although said printf function was the subject of a recent security alert and is (IMO) way too complex well, we wouldn't be shipping Judy, would we? so it might be safer to re-implement it carefully. just making it a prerequisite? Nicholas: granted people have been *&@!ing around with the code and doing stupid things like using signed vars for lengths Nicholas: but I think I can fix it if it's used in core structures, we'll have to (I presume) judy is LGPL chip: rather you than me. It's big enough to make my head hurt allison: that's OK but reuqires a contrib agree? so we can link against it and we can distribute with it but we can't incorporate it? pain. * chip shakes his fist at the copyright gods heh :) chip: use hammer; chip: beware of provoking them. Acts of God may already be lined up for you: http://news.bbc.co.uk/1/hi/sci/tech/4916870.stm Artistic allows proprietary versions, so it makes interacting with GPL'd code interesting But this was LGPL, no? Which is a whole different kettle of fish what, if we (hypotheitcally) aggregated Judy code under LGPL then you could in theory make a propriertary parrot (as granted under the Artistic licence), but would have to re-implement Judy? the LGPL allows linking without being subject to the viral nature * chip makes the sign of the c-in-circle and burns a Sony CD in sacrifice so you can link against it, but that doesn't give you any greater ability to embed it in this case, how is linking different than embedding? you don't have to re-implement Judy, just don't ship it in parrot make it a prerequisite like gcc so the deal would be that source shipments have judy separate, but binary shipments that linked against judy would be *required* to make Judy source availalbe per LGPL that's how I read section 6 of http://www.gnu.org/copyleft/lesser.html Hm aye If judy is key, it may be worth talking to the author which is fine, because the Judy source is already available obvoiusly so much becomes easier if we could get the copyright owners to allow Artistic I don't think Judy is key for Parrot, but it would be a fine arrow in the quiver I'm not clear on why we would need to embed Judy although section 6b is fun and I wasn't aware of it "Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible linking to it should be plenty ie static embedding may prove "interesting". It's not clear if that's allowed from that section alone. allison: I agree. Administrivia required are inelegant, but will work. Judy is currently not needed at all, but recent work from audreyt and future work (optimizations) might indicate that we want Judy it *is" damned fast I figured we should work out what we know about LGPL libs in general, not because Judy is key right, but there's a difference between using Judy and checking Judy into the parrot repository we can do one without the other a-firmative yeah, I need to work with roberta on a quick reference chart "we can do X with Y license, and A with B license, etc..." allison: that would really help that'd be great so that this doesn't have to be re-explained, perhaps incorrectly at N-hand that would really help for all "perl" projects, given the number that are "under the same terms as perl" Ok. I need to run. I'll catch you guys later. see ya and thanks allison: it might be interesting to have that for both Artistic 1 and Artistic 2. Even if they're identical ;) APL - Artistice Perl License? heh :) s/e// even * chip would like to see licensing restrictions translated to APL. Somebody once took the "Principles of Operation for the System/360" and translated it into APL. It was remarkable for being even harder to understand than the original document. well, we're at the 95 minute mark, maybe we should wander off...? * pmichaud wanders off but at the same level as lawyer speak I presume % pmichaud has left #parrotsketch catch ya'll next week % allison has left #parrotsketch cya all % Nicholas has left #parrotsketch % chromatic has left #parrotsketch % Coke has left Coke!~wcoleda@host-69-95-19-3.roc.choiceone.net % audreyt has joined #parrotsketch % audreyt has left #parrotsketch % particle_ has joined #parrotsketch % particle has left particle!~particle@144.81.84.170