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