The Perl 6 design team met by phone on 15 August 2007. Larry, Damian, Allison, Patrick, Jesse, Nicholas, and chromatic attended. These are the minutes.
Larry:
- I'm tolerable fair
- spent most of my time this week writing an additional translation from the standard grammar to a version of Perl 6 without regular expressions
- that can conceivably run on top of Pugs
- conceptually, I think it might give us a high-level bootstrap
Nicholas:
- why no regular expressions?
Larry:
- none of the current ways of getting at regular expressions with Pugs actually interface well with Perl 6
- if I put the semantics in with a Perl 6 engine emulating regex semantics, I'd naturally get the Perl 6 linkage correct
- I expect it's going to run dog-slow
Nicholas:
Larry:
- it has to run once every time I change the standard grammar
- it's yet another pseudopod in our amoeba-like flooding algorithm for finding a bootstrap
Nicholas:
Larry:
- it's having the great benefit of helping me understand the underlying semantics
- the rules engine
- I now what the linkage needs to be to methods in a grammar
- the instantiation of the grammar is the current parse
- contains information about what it is parsing
- there's always a first argument to every method
- implicit in rules
- if you call a method explicitly, you have to put it in
- basically the current hypothesis; the current position within the string
- everything works with nested closures
- pretty much all just single-assignment binding
- you have to do it that way
- relying the fact that I can use lazy list processing to implement continuations
Nicholas:
- you will need hypotheticals to do this
- backtracking for example
Larry:
- as long as you attach them to the right hypothesis, hopefully they'll end up in the right place eventually
Nicholas:
- are you saving state explicitly, or are you using Perl 6 data structures?
Larry:
- they're match objects
- the next rule takes the previous match object
- it generates oodles of match objects to do this
Nicholas:
- if it doesn't need a Perl 6 rules engine or backtracking, it may be slow
- but because it needs less, it doesn't rely on things working all the way
Larry:
- lazy lists, indirect binding, closures
- it looks like it's going to work out
- I'm having the appropriate amount of fun
Damian:
- my main issue this week is packing
- critical problem is, as always, "How do you get through Heathrow?"
- I've written everything but my Vienna keynote, but I've plotted that
- may have some new suggestions for what can go into Perl 7
- no discernable Perl 6 work this week
- would you like me to change the P6 update with regard to angle-tilde-tilde?
Larry:
Damian:
- still tinkering in my head about the documentation stuff
- I'll work on that on one or several planes
c:
- finished my third Linux Magazine article
- should get people up to the point of being able to write tests in PIR
- have heard that people liked the first article and have started showing up to #parrot
- reading garbage collection papers
- have some ideas on generational systems
Allison:
- working on the mod_perl 2 book this week
- worked out a deal with O'Reilly which should let me work on Parrot half-time for the next year
- full-time between now and December
- half-time from January through March
- March through June a quarter time
Patrick:
- made the AST handle named parameters
- NQP can now make calls using named parameters
- NQP now handles subroutine and method declarations
- now I just need to make them handle named parameters
- then NQP will basically be done
- then I can redo the Perl 6 compiler and a couple of others using NQP instead of PIR
- we'll see how well that works
- in doing NQP on NQP...
- it's not self-hosting, but it uses the same model
- ... it compiles faster than the Perl 6 model
- that's kind of surprising but kind of not
c:
Patrick:
- we avoid one TGE step by building the AST as we parse
Allison:
- that's a good optimization
Nicholas:
- will NQP end up being self-hosting?
Patrick:
- it could
- it might not
- I'm writing it twice actually
- I write it once in the comments in NQP
- then I write it in PIR
- someone who wanted to make it self-hosting could
- somebody looking at the PIR could just look at the comment and see what it's doing
Nicholas:
- at some point you could automate that compiler rewriting
- that's a little scary
Patrick:
- we've talked about that
- we could keep the PIR code in the archive
c:
- how's the testing and documentation?
Patrick:
- Colin Kuskie has been adding tests as I add features
- he'll be able to write the tests for subroutines and subroutine calls
- we're not falling behind on the testing for that
- essentially the documentation for NQP is Perl 6
- start with the README and see what pieces you need
- then ask me questions and I'll give you answers