Last Week's Perl 6 Meeting Notes

luqui on 2006-01-12T01:35:04

(Sorry, forgot to post these last week)

Luke: - until last Wednesday, I worked on PGE in Perl 6 - then I worked on something completely unrelated - PGE in Perl 6 now, barring the operator precedence parser, does everything that the Parrot one does - except for parsing rules - but Audrey is doing that

c: - does it produce match objects like PGE does?

Luke: - yes - last week I thought about things - XQuery, tree matching - pondering a data comprehension module for Perl 5 - whatever can make processing big, complex data structures quick and easy - working with Audrey on context and coercion - we have some disagreements about how that works - mostly we're on the same page - wrote a document describing pure MMD scheme - including return type dispatch - related to context - those are in the Pugs repository - I'll hack on them and then pass them along

Larry: - did about 18 refactorings of the Perl 5 to Perl 5 translator - ends up with a more adequately typed AST

Luke: - typed how?

Larry: - I'm not quite sure what I mean either - a lot of the stuff internally to Perl is implicit - there's no name for a particular node in the tree - they happen accidentally - we rearrange kids somehow and change a few flags and it applies differently - trying to name everything, or at least get close - they're types in that sense - it's not yet well-typed in the sense that I've looked at those names and tried to figure out what's common between them - it's nothing like PIL - it's just trying to give a name to everything so we can have a hope at translating at some point - basically there are more node types currently than there are operator ppcodes in Perl 5 - there's now a Statement, which doesn't really exist - there's an opcode for transitioning into a statement in Perl 5 - but nothing really contains a statement - that's a lot of the refactoring work - make a more ordered tree - now, of all the tests in the core modules, it translates more than 99.5% correctly - I haven't tried CPAN; I'd have to download it - I also haven't bothered to try to hook this up to bleadperl - I can probably delegate that eventually - most of these refactorings come about due to thinking about what I need to translate to Perl 6 - making sure that the information is there - haven't actually tried to translate anything yet - eventually I'll get up the courage to translate $foo[] to @foo[] and go from there - otherwise, thinking about what people say on the mailing lists - admittedly not being very responsive to that

Allison: - planning to take time off around Christmas to do development - but I had my wisdom teeth out - started working on expanding the Punie grammar again - made it into sexpr part of the original perly.y - ran into the traditional left recursion problem - decided to use PGE's operator precedence parser instead

Luke: - with regard to left recursion, there's a simple transform you can do with closures to turn right-recursion data structures into ones that look like left recursion

Allison: - rather than doing left recursion, I flipped around - broke it into two pieces - the first element, and the rest of the expression

Luke: - x [\+ x]* ?

Allison: - expression matches - expression = expression - expression = expression + expression - instead, say expression = term + rexpression

Luke: - that's my biggest complaint about Parse::RecDescent - it has a nice leftop which does that - but then you get back a flat structure of all the matches you want - I want a left recursive structure - it's easier to parse things that look left-recursive - you only have to handle two arguments, not N - left-recursion transform might be nice in grammars, if it's generic...

Allison: - for now, all I need in Perl 1 is operator precedence - looks pretty cool so far - I'll try to finish it off by the end of the day - it'd be nice to have comments in the syntax of the independent grammar, but...

Luke: - my friend the crazy C++ programmer is trying to learn a new language - I invited him to learn Perl 6 - I'm going to try to teach him Perl 6 without any past knowledge of dynamic languages