Perl 6 Design Minutes for 04 November 2009

chromatic on 2009-11-07T00:36:09

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:

  • fixed bugs

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 !