Perl 6 Design Minutes for 04 February 2009

chromatic on 2009-02-18T21:43:50

The Perl 6 design team met by phone on 04 February 2009. Larry, Jerry, Will, Patrick, Nicholas, and chromatic attended.

Allison:

  • successful migration of the Subversion repository to svn.parrot.org
  • took up chromatic's ticket challenge and closed a handful a day, applying patches, fixing bugs, clearing out some old TODOs that don't fit with current architecture
  • started, completed, and merged in the second string refactor branch, a large-scale function name cleanup
  • a few fixes on the POD parser, mostly handed it off to kj
  • updated the Parrot Ubuntu packages on the PPA with instructions for using it
  • speaking about Parrot at IBM tomorrow

Jerry:

  • enjoyed the lively discussion with mtnviewmark, timtoady, and others about metaops
  • really like where that ended up
  • Jonathan should be making some rakudo commits shortly to clean up the cross metaop spectest failures
  • thanks to Larry's comments, i'm polishing S19
  • haven't had much uninterrupted time lately, so progress has been slower than I like
  • keep thinking that's going to clear up soon... but that hasn't been
  • the case for weeks now

Larry:

  • completely revamped STD.pm's metatoken parsing
  • treating generated metaoperators as longest tokens did not scale
  • chasing the implications of that through
  • LTM occurs on the metaoperator itself separately from the base operator
  • (most of the base operators are infixes)
  • what it modifies gets parses as a separate token
  • has implications on the order you check things
  • != isn't a separate token
  • has to be parsed with the combination of the ! metaoperator
  • cuts the number of tokens way down
  • the lexer runs a fair bit faster
  • invented a new notation for disambiguating infix operators
  • they may now all be put in [], the same form as reduce operators
  • internal to a metasequence (need a new name for that) sometimes need to identify which operator to apply in which order
  • &[] now refers to the infix function itself
  • makes it easy to pass binary operators into various functional programming primitives
  • reduce operator still stays out in front with square brackets
  • just generalized the notation
  • made more comments on S19
  • moving away from the notion of a Prelude
  • provisionally now called a Setting
  • it implies things before and after the text of a program
  • the -n and -p loops put a scope around the scope of your file
  • invented several new pseudo-package name prefixes to refer to the Setting
  • PERL is the outermost setting as well as LANG for the sublanguage the file is actually parsed in (such as from -n or -p)
  • just changed the Prelude to the Setting option in S19
  • chopped out the old, non-trie lexer since we're not using it
  • thought it might clean up the looks of the LTM for anyone interested in implementing his own
  • not that mine is a parallel matcher yet....
  • still something I'd like to do
  • maybe I won't have to
  • working with Mark on revisions to the new metaops (old minus metaops from last week)
  • many binary operators could use a metaop which reverses their arguments
  • would have the same effect on comparison operators as reversing the sense of the test
  • mutated into a R operator
  • and the X operator lost its second X to work the same
  • started a trend: adding more metaoperators with a prefix capital letter is a good approach
  • might end up with Z for a zip with operation
  • working on moving some of the preludey/settings stuff out of STD.pm into a separate file
  • - working over the various symbol tables to do lexical scoping more sanely - this is prep work for parsing a real Setting file and dumping out the symbols such that they can be slurped in for the user's file compilation

Will:

  • minor station keeping on Parrot
  • no major progress on cleaning up deprecated stuff
  • hope to release a copy of This Week in Parrot
  • trying to resurrect that
  • lots of questions in IRC about why things are happening
  • we don't have a good way to answer that
  • will try to post short articles on front page of parrot.org
  • hope to do so every Sunday until at least 1.0
  • then hope to hand it off to someone else

Patrick:

  • moved Rakudo out of the Parrot repository
  • its official location is github
  • the old Rakudo stuff is still in the Parrot repository
  • it'll be gone tomorrow
  • decided on Git because there weren't many pros for sticking with Subversion
  • getting everyone up to speed on using Git isn't super easy
  • haven't run into any major blockers yet either
  • usually just reorienting ourself to different commands
  • hacked up a new Configure.pl for Rakudo out of the Parrot tree
  • making it work with an installed Parrot
  • Parrot isn't quite there yet
  • if someone doesn't have Parrot but downloads Rakudo, what's the best way to get them an appropriate revision of Parrot to run on?
  • looking at options for that
  • very pleased to see Larry's changes to metaops and other pieces
  • pleased that Prelude is now Setting
  • equally pleased that I haven't worked on any of these pieces yet....
  • hooray for delayed binding

c:

  • Alan Kay is smiling somewhere

Patrick:

  • late binding wins again!
  • laziness is paying off
  • Rakudo is close to having its own Setting written in Perl 6
  • part of the repository
  • probably won't happen by Frozen Perl this weekend
  • have some documentation to write for that
  • should have it by the next Rakudo release, sometime in February

c:

  • finishing the draft Parrot support policy
  • pretty aggressive, but what we discussed at PDS
  • will be in the repository today

Nicholas:

  • what's the schedule on Rakudo releases?

Patrick:

  • I expect that they'll occur timed with Parrot releases
  • but not simultaneous
  • Parrot releases on the third Tuesday
  • Rakudo will release the weekend after that
  • this'll give us time to tie it to that specific release
  • we'll continue the monthly release cycle
  • for most of 2009, I expect many people won't want to play with the released version of Rakudo
  • they'll want to play with the head version
  • all of the cool features and bugfixes
  • it'll track Parrot, but not necessarily Parrot's head
  • it'll make sure you have a sufficient version of Parrot, but not necessarily the latest one
  • January has shown that when Rakudo and Parrot are separated, changes to Parrot trunk can easily break Rakudo
  • we update a file in the repository now
  • we'll update that whenever something happens in Parrot that we need to update it with
  • that version will always include at least a Parrot monthly release

Nicholas:

  • Parrot's starting to get to the point of Perl 5
  • changes can break CPAN modules

c:

  • we need to be more aggressive about adding those tests to the core test suite