Today's Perl 6 Meeting Notes

luqui on 2005-10-26T22:41:11

Larry: - trying to figure out types - and everything else - rewriting the world - put out new versions of S02 and S06 - already have things I want to change

Luke: - good thing committing only takes a couple of seconds

Larry: - also I was in Hungary - it was thirsty - they apparently don't believe in caffeine there - I spent a goodly part of that with a headache - the conference was pretty okay - getting ready to give a talk to HP on Thursday

Jesse: - Perl 6-ish?

Larry: - variant of my 9.3 State of the Onion talk that I gave at EuroOSCON - it'll be by teleconference - my slides will be a Java app running in everyone's browser - part of the reason I did EuroOSCON with just words is that I wanted it to still work in case everything blew up

Jesse: - I'm pleased using the Takahashi method Autrijus found - it just works - I can edit them in a text editor

Larry: - the named arguments are now marked with colon instead of plus

Luke: - makes many people happy

Larry: - probably the type sigil is up arrow, rather than a cent sign - as in caret - we're trying to iron out all of our terminology for what's a class and what's an abstract class that isn't really a class - probably relates to Luke's "a class is not anything" - think we're making good progress on that - looks like I'll be home for the next couple of months - I'll probably accept a position at the place where I'm currently consulting - I'll still be spending the majority of my time on Perl 6

Patrick: - checked in my shift/reduce parser last night - busy cleaning it up - it works pretty nicely - getting ready to parse all sorts of Perl 6 expressions - then I found a segfault (which I reported earlier) - I think I'll be able to parse out most Perl 6 expressions now - including all of the weird whitespace things

Larry: - can that all be in one spot, like we talked about?

Patrick: - yes - register a token and specify if it's whitespace okay or not - if you need to do fancy things from the bottom-up parser, you can always call a rule - it tells the shift/reduce parser "this is what I have, now continue on"

Larry: - okay - does the rule vs. token distinction we discussed make sense in this context?

Patrick: - for general in Perl 6 rules? - not at the moment - I like the way :w works in general - pretty nice way of doing it - :r :t that Damian proposed didn't do anything for me for these things that I needed to parse

(On the cabal list we have been discussing separating the concepts of rule and token for whitespace dwimmery purposes. -L)

- now I'm working on parsing out the ternary operator - think I have that working in the past five minutes - next steps are to test and check in some examples - Perl 6 expressions, Perl 6 rules, general expressions - parsing gives you a nice match tree with the nodes in the right place - useful starting place for figuring out the tree transformations we need to do - especially true for the grammar engine itself - once I parse it out to the tree, we want a bunch of transformations and optimizations - I'll write PIR code that does that for now - we can catalog those we need and how we might want our TTL to look

Larry: - and not box ourselves in so we can't use "use" statements

Patrick: - also promised to update the milestones document for PGE today or tonight - just haven't done it yet by being too busy writing code

Allison: - sent a patch to p6i to update the opcode mismatch error message

c: - not sure that's the right approach - I like your second suggestion better - I can look at it if you like

Allison: - that's why I sent in the patch, not checking it in directly - this made my life easier though

Larry: - are these capturable by something running atop Parrot?

Allison: - it's an interpreter exception - working today on finishing the PIR attribute grammar implementation - coming along nicely - because of the closures issue, I've made it much more heavily OO - instead of relying on closures to capture a certain value, I'm passing around relevant objects - AttributeGrammar::Rule object, for example - pass that down to where it needs the information

Luke: - might be a better approach, given Parrot's architecture

Allison: - seems to be working better in PIR

Luke: - which version are you interpreting? - I released a new one this week

Allison: - started with the old one - figure I'll update it later - the old one was simpler in the model - which parts did you change?

Luke: - completely rewrote it - most of the algorithm's semantics rely on the simple semantics of the thunk - used to traverse the tree, find out the attributes, made thunks if I need them - new version makes thunks for all the attributes it may need eventually, starts with the first one, then goes on

c: - was this to help memory usage?

Luke: - yes - it's hard to tell when Perl cleans up memory - you can't use this technique verbatim in Parrot because of the difference in how they handle pads - write destructor code that tells you when things are cleaned up

c: - it would be nice if destructors worked - last time I tried, they didn't - we need some sort of finalization and destruction - I want to release non-memory resources at a reliable, known point - I don't really care when Parrot GCs the dead object

Allison: - block exit, right?

c: - that's fine with me

Allison: - you want to know that you have reliable finalization at some point, not necessarily at the same time as destruction - I'll check this into my personal repository tonight

Jesse: - I'll try to come up with an idea for a more public repository for this sort of thing

Luke: - mostly school - lots of tests recently - rewrote the attribute grammar module - nice and memory-efficient, at least I think - algorithmically it has a better bound - also started the Perl 6 port of Language::AttributeGrammar - still thinking about how to do that given Perl 6's handling of pads - much different from Perl 5 - think that's about it - attribute grammarsr are a great base for the tree transformation language we're thinking about

Jesse: - I was in Stockholm for the Nordic Perl Workshop - presented 205 slides in 23 minutes - missed the implementation meeting, but it happened - need to send out mail about the upcoming time change - that's it from my side

Patrick: - Allison, are you waiting on anything from PGE on what you're doing?

Allison: - I'm doing the part that doesn't depend on PGE right now - after I finish the port, then I'll start trying out transforming PGE trees

Patrick: - I'll send you some PGE trees then

Luke: - I heard that Larry and Autrijus did some work on tuples - I'd like to see a summary of that

Larry: - read S02 and S06 - basically the tuple constructor we stole with \() - we didn't think that we should throw regular parens at that - the signature constructor is different from that - it's still :() - a tuple is parsed rvalues - a signature parses differently - that's how it currently sits - also there's no special casing about having a comma on the end - the fact that you are passing it to a function makes it a tuple - the recognizer for a tuple in a signature is also a backwhacked variable - Autrijus talked about that part of it - the slurpy scalar will just slurp one argument at the top level - I'm sure you'll find other stuff out there, some of which is probably bogus

Jesse: - not much conferency coming up

Allison: - MIT's Little Languages workshop may be the first week of December - at least, I hope it is