The Perl 6 design team met by phone on 21 October 2009. Larry, Allison, Patrick, Will, Nicholas, and chromatic attended.
Allison:
- fixing a few last bugs in the pcc_reapply branch
- extremely pleased to see the work over the weekend
- I was away from my computer for a day, but when I came back there was only one failing test
- kudos all around
- merged it to trunk today
- that went smoothly
- there was one hitch; I merged it in as a patch
- missed a file that was added in trunk but didn't
svn add
it before the commit
- otherwise no merge problems
- glad we'd recently rebranched
- that made things go smoother
- plan to work on Pynie this week
- open to suggestions as to what to work on next
Patrick:
- working on nqp-rx this past week
- it's going well
- the regex engine does everything PGE did before, except for character classes and backtracking in subrules
- I know how to implement that, but I haven't needed it yet
- it's self-hosted, as far as grammar parsing goes
- originally built it using PGE
- builds itself since last Friday
- no longer depends on PGE at all
- worked on a self-hosted version of NQP over the weekend
- putting together some core pieces
- did quoting rules
- capable enough to handle Perl 6 quoting rules
- you can also limit it to simpler quotes
- most people will do that
- you can share the quoting parser using common backslash sequences quickly
- very customizable
- if you're creating your own language with new or different backslash sequences, you can write a new regex and add it trivially
- lots of other small code generation
- put together a new operator precedence parser
- it's not intimately tied to the regex engine, like PGE's was
- reusable
- you can have multiple op precedence parsers within the same language
- no trouble dealing with that
- looks similar to the Perl 6 version
- cleaned it up a bit over STD, especially over quotes
- no roles and coercions in this version
- just hashes
- should be easier to explain to others
- I hope Larry will consider adopting my version
- I don't know if he's considering wider ideas that I haven't considered or encountered yet
- I like what I've come up with so far
- the new version of NQP is a reimplementation using the new parser
- the new version will bootstrap
- also exercises the new operator precedence parser and protoregexes
- that'll help us switch Rakudo over to the new system sooner
- easier to debug there than from Rakudo
- hope to have a working version of NQP by Friday
- hopefully even self-hosting by then
- nqp-rx will work based on core Parrot
- it requires no external libraries besides PAST
- we could move that out of Parrot or reimplement it, but that's low on my priority list
- posted to use.perl.org that outlines the Rakudo plans for the next month
- we'll have several weeks of serious upheaval, tearing the existing grammar out of place and replacing it
- very pleased with now nqp-rx is coming together
- I hope it'll go quickly
- Jonathan and I will work on it at the same time
Will:
- working on Partcl
- minor cleanup, trying to make sure it still works with blead Parrot
Nicholas:
- I don't like UTF-16
- Perl 5 should be able to read it big-endian and little-endian
- Larry wrote the original code
- I've fought several bugs in it
- you get the benefit of larger sizes and variable length
- but you have to deal with partial reads
- I don't know if Rakudo will have to deal with it, but blah!
c:
- fixing bugs
- profiling
- trying to optimize
Patrick:
- Jonathan and I and other Rakudo hackers may need to lean on you for assistance
- mostly Larry
- lots of Parrot hackers who understand PCC and can fix bugs
- we'll probably need resolution on spec issues regarding
Capture
s and Parcel
s and the like
- they're at the heart of what we're doing
- we may get to blockers very quickly
Nicholas:
- is Rakudo taking over from SMOP in pushing the spec?
Patrick:
- we're pushing from different directions
- I'm still interested in moving Partcl to the compiler toolkit
- think it should move to the new one, not the old one
Will:
Patrick:
- once it's a little further, I'll schedule some time with you
- discuss what's happening and how to migrate
Will:
- I don't mind being the guinea pig
- it'll give some speed wins
Patrick:
- it'll enable more people to hack on it
- if things work out well, a big part of your system will be written in NQP
- switching it over to the old toolkit doesn't make sense now
- I want to make sure the new system will handle Partcl
Larry:
- all delegation objects, including arrays and hashes, get handled the same
- placeholders may never be used in a hash composer
- that makes
map
almost always work right
- placeholders
@_
and %_
were enabled only if other placeholders were used, but they now are usable standalone
- make the signatures of p5 notation fall out more naturally
- clarified that
$_
behaves like a placeholder only if there are no other placeholders
- clarified how
if
statements behave with those rules
- clarified en passant type captures
- clarified when
...
should be a stub
- documented that
sub
s now default to my
scope
Patrick:
Larry:
- I warned you several months ago
- revised the notation of the
:D
type subset for the defined and undefined modifiers and pragmas for changing the defaults
- lots of debugging
- STD treated constraints as declarative
- fixed them to catch undeclared variables
- placeholder twigils now require an alphabetic character all the time
- fixed
viv
to fix Perl 6 roundtripping
- unbitrotted the Perl 5 emitter
- still plan to replace
gimme5
someday
- infix operators now allowed to see the opp's precedence limiter as a contextual variable
- added more information to the match tree for declarations
- now have entries pointing into the pad and the declarand itself
- forbade self-declared parameters in defaults, as their scopes were unclear
- allow contextual sub declarations with
sub &*foo
- class declarations now allow
...
, treated reasonably
- fixed quasi-unquote parsing
- split the Perl 5 grammar more
- dups inside a multisig now treat the multis independently
- switched to YAML::XS to work around Syck's roundtrip problems
- cached the setting files in case I parsed multiple parses
- didn't treat them as immutable
- caused magical action at a distance
- did a bunch of work on
viv