The Perl 6 design team met by phone on 04 November 2009. Allison, Patrick, Jerry, Will, and chromatic attended.
Larry:
- answered lots of questions on #perl6
- speculated about a new test primitive using
$a [op] $b
to capture pertinent info on falseness
- many minor spec clarifications this week in response to Jonathan and Patrick
- closures in strings and regexes now documented to create a lexical scope
$_
now defaults to being is ref
rather than is rw
- in regexes, tightened up reversed character class ranges, indirect rule failure semantics
- deprecated the CANDO section in packages, since we don't look in packages for either methods or subs
- in hacking, continue to check and fix tests when others check in parsefails
- STD now gives better messages on bogus statements and backslashes
- implemented the
$_ is ref
semantics (to the extent STD cares, which is not very)
- tightened up error message for precedence failure within a function's arguments
- catch names with null identifiers
.caps
now always returns key/value pairs in STD instead of naked values
- now gives a better message on an unexpected
!!
.panic
now protects itself from infinite recursion on probe for two terms
- various other minor bug fixes
Allison:
- asked for a list of things to work on
- worked through a list of RTs
- wrote a migration guide for the PCC changes
- spending a lot of time on my studies
- quantum computation is a fairly dense subject
- should catch up soon, will spend more balanced time on Parrot and school
Jerry:
- answered some S19 questions this week for Patrick
- didn't answer some others; don't have answers yet
- working on those
Patrick:
- busy week for me
- (refer to my latest journal post)
- we're redoing Rakudo's grammar using the new tools
- the Rakudo grammar is a generation closer to the STD grammar
- we're getting rid of cheats in the existing code as we get closer to STD
- Rakudo now supports lazy lists
- it also has true metaoperators
- previously, Rakudo had separate subs for every metaoperator
- now it detects when you use a metaoperator and registers the code to generate that metaoperator at load time
- we don't have to build metaoperators at load time
- you only pay for the ones you use
- fixed the problem of assigning to a constant; no longer permitted
- subroutines now stored with
&
sigil
- operator subs stored under their true Perl 6 names, not the PGE-faked versions
- most of the sanity suite runs
- Test.pm compiles, but doesn't run
- it needs
END
blocks; that'll be trivial to add
- Jonathan has class/method declarations, multisubs, type checking all working in Rakudo
- we need to finish getting the core types in place
- also need to parse subroutine names for operator subs
- that should get us to compile the
Setting
again
- we expect to pass the spectest suite to the same level as the previous version by the end of November
- could take longer than that, but based on our experience in the past week, I'm optimistic
- helped Geoffrey Broadwell and others switch plumage to the new NQP
- they're eager to use the new features of the new NQP
- working on several other tasks
- fixing some bugs for Jonathan
- going to write a blog post about writing a new compiler with NQP
- probably will use Punie as the example
- it's easy to do; already done once
- wrote a compiler for a stack-based language during an IRC conversation last night in about five minutes
- surprised myself by how easy it is
Will:
- working on migrating away from Parrot's RT
- we switched to Trac a year ago
- it's long past time we switched
- we're down to 95/96 tickets now
- encouraging other people to help, so I don't have to do them all
- eagerly awaiting Patrick's help to convert ParTcl over to the new NQP
- still three or four Parrot segfaults blocking some effort in Tcl
- they all have tickets
c:
Jerry:
- in reimplementing Rakudo with the new NQP, are you pulling out the old cheats?
- are you putting in new ones?
Patrick:
- we're starting the internals of the grammar from NQP
- the
Setting
, written in Perl 6, stays the same
Allison:
- is that because the data structure returned from NQP is different?
- the actions work on parse tree data structures, and have those changed from PGE?
Patrick:
- they're significantly different
- it works on protoregexes
- previously, the operator precedence parser was separate
- it used to be part of PGE
- it's more extensible now
- we based NQP's grammar on the Perl 6 grammar
- Rakudo's grammar started before that
- the action methods have changed a lot
- in answer to Jerry's question, we're refusing to put the old cheats back in
- the new cheats go in their own directory called cheats/
- that documents them
- we know we'll eventually have to take them out
- we acknowledge that previous cheats were blockers to Rakudo's progress
- now we come to the point where we ask if we should do the quick cheat or do things the right way
- so far, we've decided to do the things the right way
- hence assigning to a constant no longer works
- we have real lazy lists too
Thanks - like the design minutes a lot.
thickas on 2009-11-07T02:16:34
To all involved in the production of the Perl 6 design minutes, a heartfelt thank you.
The p6 design minutes are a major attraction to where ever they're hosted (use.perl.org without them would be far less attractive).
I enjoy reading them since it is good to know that my favourite programming language just cannot stop attempting to take over the world.
Thank you !