Perl 6 Design Minutes for 09 May 2007

chromatic on 2007-05-10T21:06:28

The Perl 6 design team met by phone on 09 May 2007. Larry, Nicholas, Jesse, and chromatic attended. These are the minutes.

Allison:

  • have reduced my workload and am taking some time off
  • working on C patches to Parrot this week
  • spent some time on a big set of bugs on a little-used set of code paths
  • working on the PMC PDD; will check that in today

Larry:

  • thinking a lot about a few things
  • mostly to do with deep semantics of overloading
  • when you generate
  • how to specifiy that so as not to get infinite regress
  • ties into the notion of having a prelude which defines everything in terms of everything else
  • you need to break that circularity somehow
  • but you don't want incompatibility between different platforms which break that in different ways
  • also thinking about how ugly the chunky list syntax is
  • if you use something in a for loop, it does the right thing if you use a regular for loop but the wrong thing with a modifier
  • with one argument, you can't get a useful cross product out of it
  • something's a little screwy on the defaults there
  • maybe the default ought to be chunky and not flattened
  • or maybe the evil is deeper than that
  • the usual working with people to keep them moving along
  • also thinking ahead to what I'll say at the various conferences

c:

  • fixing a few bugs in Parrot
  • hope to implement more of PDD 15 before the release
  • looking for a few more testers, especially for some weird FreeBSD bugs

Nicholas:

  • Gerard Goosen is still playing around with MAD
  • he has a few questions
  • is anyone available to replace Ann as summarizer?

Jesse:

  • no one yet

Patrick:

  • looking at Larry's new grammar and the S05 changes
  • I think that means a substantial change to the current Perl 6 work
  • coming up with a small subset of Perl 6
  • now that I see how to fold it into the grammar, I can use that to do the PGE tree to PAST process for the Perl 6 compiler
  • that's a lot easier to hack on than using PIR in TGE
  • I did a simple of experiment with F and it looks nice
  • I went from 20 or 30 lines to 2 or 3 in spots
  • I can check that in tomorrow morning
  • I'm trying to figure out how to do that in the context of the bottom-up parser
  • I'll have to look at the standard Perl 6 grammar to figure that out
  • that's the remaining piece
  • I'll check that in tomorrow, even if it's not complete
  • it's a draft for comment
  • "Oh, I'm done! I think I want to do it this way!"
  • there are some syntax things to work out
  • trying to maintain a clean separation from the grammar and the parse specification is tricky
  • I want to keep those somewhat separate, or at least separable
  • as far as implementing it, I don't think it will take long at all
  • the Perl 6-like language I'm using almost all exists in the Perl 6 compiler right now
  • I can strip out big pieces to get that bootstrapping done
  • I plan to have a lot of that done in the next week and a half
  • I want to have it hackable by next 17th

Jesse:

  • what can help you out?

Patrick:

  • getting reactions when I post it tomorrow
  • you don't have to know a lot of Perl 6 to review it
  • ideas about syntax help
  • I'll write up what my thoughts are as prose

c:

  • the Perl 6 compiler list might be good
  • which parts of TGE did you replace?

Patrick:

  • from the parse to the AST, you don't use TGE at all
  • you use the mini-Perl 6

Allison:

  • from then on you use TGE
  • you can use mini-Perl 6 within TGE after that

Patrick:

  • yes
  • you build your mini-AST using the mini-language
  • then you use TGE
  • in the grammar, you build a bunch of objects with Perl 6 new statements
  • methods on a class
  • how Parrot will do things soon
  • I already have method indications working in the Perl 6 system now
  • the only tricky part is parsing parameters
  • after we play with this a bit, it'll give us more insights into how we want TGE transformations to look
  • I will want iterators and generators at some point
  • I need to look into that soon
  • maybe not by the 17th

Allison:

  • the syntax?

Patrick:

  • the implementation
  • the syntax will look like for
  • I'll ignore the Iterator class in Parrot

c:

  • we have an Iterator class in Parrot?

Allison:

  • write your iterator in PIR and we'll port it back to Parrot

Nicholas:

  • why don't you write most things in PIR and port them to C?

Allison:

  • we'd like to
  • the PMC PDD will help that

Patrick:

  • the Capture and CodeString PMCs would be good
  • they probably would speed up PGE substantially
  • you can replace 20 to 30 PIR operations for every line of code into the equivalent C code

c:

  • that could be an order-of-magnitude improvement

Patrick:

  • very possibly