The Perl 6 design team met by phone on 21 February 2007.  Larry, Damian, Allison, Patrick, Jesse, and chromatic attended.  These are the minutes.
 Larry: 
- cooking right along
 
- mostly hacking more on the grammar
 
- it's largely done
 
- doing some cleanup on metaoperator precedence
 
- some have to inherit precedence from their internal operators
 
- others force precedence
 
- the only remaining thing is working out how various quote sublanguages build themselves and parse their text
 
- building it such that the mechanism is derivable in other grammars
 
- sort of a two-dimensional derivability problem
 
- kinda tricky
 
- figuring out exactly how grammar modifications fit into the user space when they say "I want to use such and such a language"
 
- replace the current language?
 
- overlay the new language?
 
- replace the rest of this scope?
 
- compilation unit?
 
- what is a scope in a different language anyway?
 
- lots of interesting wrinkles
 
- had a Perl Monks chat about timely destruction and decent destruction control flow
 
- also tweaking various Synopses
 
- simplified the zip and cross operators
 
- now just a 
Z and an X infix 
- the old 
x which was a string operator is now a metaoperator 
- the two main list infix operators are 
Z and X  
- the yen operator goes away
 
- don't remember if I did the MMD rethink before or after next week
 
- looked at last autumn's voting MMD algorithm
 
- it's a bit too complicated
 
- I recast the whole thing in terms of a topologically sorted list
 
- sorted in partial ordering of betterness
 
- demoted the single semicolon to a conjectural syntax
 
- reserved for if we decide we need it
 
- also changed the meaning to insert this method at multiple places in the list
 
- it's easier for me to understand what's going on there
 
- we'll explain to users that it'll look for the best match
 
- if you don't give sufficient hints and it's ambiguous, it'll fail
 
 Damian: 
- in my experience, they're like sausages
 
- people don't want to know how they work as long as they taste right in the end
 
- it is nice to have static analysis to see what gets covered
 
 Larry: 
- we can warn about certain kinds of ambiguity at check time
 
- assuming that no one adds more variants at runtime
 
 Damian: 
- I provided a feature to grab all of the definitions and possible combinations and warn about the ambiguous cases
 
- it's incredibly handy to run when you start getting ambiguities
 
 Larry: 
- also simplified the grammar
 
- had some special syntax for abstracting symbols
 
- turned those into regular named captures
 
 Damian: 
- spent most of my time working on the Perl 6 POD parser
 
- have about 2500 tests
 
- they've found a few things that needed rethinks and redesigns
 
- have one more of those to go
 
- then I think it's releasable
 
- one of the rules in S26 said that a formatting code (
B<> or C<>) terminates at the end of the matching angle bracket or the end of the surrounding block construct  
- that means that you couldn't comment out sections within a formatting code without changing the meaning
 
- that meant I had to rethink the parser to make it work
 
- also sped up the parser a bit
 
- with any luck, it'll be out in a couple of days
 
 Patrick: 
- what's the complexity of parsing the POD?
 
- is it tough, or will our tools handle it well?
 
- plenty of people on #parrot have talked about writing a parser with our tools for it
 
 Damian: 
- that'd be wonderful
 
- my parser uses Perl 5
 
- the design is such that line-by-line parsing is pretty easy
 
- the m//g flag suffices to loop around
 
- I've effectively gone down a level on doing a parser's state machine
 
- the only complexity that I foresee is the 
allow feature 
- that changes how something subsequently parses
 
- if I say 
allow on a block, it changes how that block and inner blocks may parse 
 Larry: 
- similar to how quote constructs modify things
 
 Damian: 
- I'm struggling with finding a clean and efficient way of allowing that
 
- changes how code block, code formatting, and verbatim rules parse
 
- could lexically change what those rules did
 
- might be easier just to hardcode all of the formatting codes available with on-off switches that the parser allows down
 
- could be a very good use of Larry's contextual variables
 
- that's the only complexity that I see in making it work correctly
 
- the structure of a general block is introducer, name of the block, options, content, terminator
 
- you do have to extract information from the options before you get to the content
 
- that can change the structure of what comes back
 
- that's not difficult to do
 
- you can do code within a regular expression
 
- that allowness changes how the parser works
 
- but I don't see it as being difficult to change to a grammatical parser
 
 Patrick: 
- that helps me know what to advise people
 
- lots of us are eagerly looking forward to a release
 
 Damian: 
- not sure how useful it will be as a template
 
- it uses a very different parsing strategy
 
- I did that to parse large documents (that is, S26) without taking a big performance hit
 
- P::RD and its potentially exponential explosion of cost didn't seem right
 
- my current version is linear
 
 Larry: 
- can other parsers target the test suite?
 
 Damian: 
- not really
 
- "Here's the input and here's the data structure to create"
 
- the data structure is YAML
 
- I don't care about its structure, just that it has certain features
 
- maybe it's reasonably transferrable
 
- depending on the data structures pulled out, they may have to massage it a bit
 
- it's pretty close to data-structure agnostic
 
- I'm happy to make sure that it is, if necessary
 
 Patrick: 
- working on the Parrot release off and on today
 
- lots of little last-minute things
 
- release may happen this evening at the latest
 
- seems to be going well
 
- have some non-P6 things to work on until this weekend
 
- my target for next week is getting 
for loops and END blocks 
 Jesse: 
- do you have a bunch of unpushed changes?
 
 Patrick: 
- public Subversion is the current state of my code
 
- I have some non-public throwaways
 
 Jesse: 
- Jerry has mentioned at least that he'd like to see your throwaways
 
 Patrick: 
- we could make a throwaways directory
 
- or branches
 
 Jesse: 
 c: 
 Patrick: 
- I can do that
 
- once I get those bits in, sanity passes
 
- then it's wide open
 
- I can import tests from Pugs, the ones I think are fixable
 
- then point people to fix them
 
 Allison: 
- will you have a small set of things by the Amsterdam Hackathon?
 
 Patrick: 
- the first week of March?
 
- can't promise that
 
- but I can try to have some handoff things
 
- that is one of my targets
 
- I'll be close by then
 
 Allison: 
- technically I was on vacation last week
 
- the biggest thing was a bug-squashing session this weekend
 
- did a large bit of work before everyone else was there
 
- I was ten hours off
 
- closed quite a few tickets
 
- also worked on the IO PDD
 
- plan to review tewk's SMOP port to PMC C code
 
- haven't seen it yet
 
- it's a good start
 
- that's it for me
 
 c: 
- squashed a lot of bugs
 
- fixed Pheme, but ran into a weird question about variadic subs and multis
 
- I'll show a code example
 
- might be a good Perl 6 question, but maybe just a Parrot question
 
- also made good progress wrapping SVs in PMCs for Ppwnie
 
- ran into a different multi-sub bug with embedded progress
 
- nice that the blocker there was Parrot, not Ppwnie though
 
 Jesse: 
- talking to people at TPF about grant stuff
 
- approached Bill about a microgrant plan six months ago
 
- some money donated to Perl 6 a couple of years ago is still there
 
- convinced Bill of doing five to ten $500 - 1000 grants for small projects
 
- some Parrot, some Pugs
 
- he'll start to push on this
 
- hopefully we'll see this happen in the near future
 
- separate from the regular grant process
 
 Patrick: 
- there are several Perl 6 things that might apply in the near future