The Perl 6 design team met by phone on 05 September 2007. Larry, Allison, Patrick, Jesse, Nicholas, and chromatic attended.
Nicholas:
- talked to Flavio Glock at YAPC::Eu
- he asked whether P5 consistently converts from int to float and string and such
- we're not sure if it works reliably; Perl 6 needs it
- he's at least asking the right questions in the right places
- Perl 6 might have trouble with this, thanks to C89 at least
- Aaron Crane has a Perl 5 module which lets you use
each
on arrays
- I talked to Larry and Damian about this
- I found a nice way to make
each
work on Perl 5 arrays
- couldn't bribe Rafael to put it into 5.10, so maybe 5.12
- what should make it in is
state
- there were two bugs in the original implementation though
- one is that if you assigned the return value of a subroutine to a
state
variable, that sub gets called repeatedly
- they're
START
blocks in Perl 6 right?
Larry:
Nicholas:
- I have it doing the right thing then
-
my $a = state $b = foo()
also works
- I believe I have it working the way the Perl 6 spec has it
- I don't think Pugs does it right yet
- it's only for scalar assignment though
- Rafael likes the patch
- Abigail is working on corner cases
- this might get in for 5.10
- the list assignment version is hard
- it's not going to happen for 5.10
- no guarantee the whole thing will go in, but it looks promising
Larry:
- getting over my jetlag from Vienna
- mostly thinking about compiling patterns
- my cheater program splits the standard grammar rules into longest token parts and action parts
- I need more to work on the spec
- need a way of returning the DFA-able pattern
- I can separately address the action from the prefix token now
- if I had an implementation of a DFA over many alternatives, it could tell me which rule to call
- I could configure that rule without having to reparse
- a DFA can't do some sort of assertions, so there might be retroactive reparsing at the end of a token match
- those are fairly infrequent
- now I'm just trying to figure out the right semantics for interfacing to that matcher
- talked some with Damian last week about regularizations to pattern matching syntax
- not happy with the suppress-capture question mark on rules
- ought to be the opposite of bang
- if bang doesn't have any width, question mark shouldn't either
- looking at other characters to slip in there
- various other clunkinesses in there from when we had some metacharacters and not others
- with the recent policy change that all punctuation is all potentially metacharacter, some notations are overkill
- particuarly binding
- looking for cleaner alternatives
- we might get a notation out of that that lets us declare match variables
-
my
variables scoped to a part of the match
- also possible to put the binding out on the right, instead of to the left
- especially when passing parameters to a closure
- playing with a lot of different syntaxes
- haven't really settled on one yet
- lots of ways to go wrong with that
- might restrict the colon-binding to setting pre-existing variables
- corresponding with Wolfgang Laun who's been going through S02 and beyond
- looking at them from a different angle
- he's pointed out some of the infelicities in the design
- I'm thinking about some of them
- currently we distinguish between the
of
type and the as
type
- the
as
type isn't that useful anymore
- if people really want to lie about the return type, maybe they can put their conversions on themselves
- the long dot stuff is mostly historical; all there is is unspace
- simplifications like that
- also the kp6 folks are getting pretty close to having it bootstrapped in itself
Patrick:
- I took this last week off
- the week before that I spent a lot of time working on NQP
- we added quite a few more things:
for
, looping
- what's left is having variables within namespaces and handling return exceptions and various sorts of exceptions
- running into places where the irregularities of Parrot's opcodes are getting in my way
- grabbing the variable from a namespace takes a different type of parameter
- have to rework POST a bit to deal with that
Jesse:
- how much of that can get regularized in Parrot?
Patrick:
- I have no strong suggestions for fixing it within Parrot at the moment
- POST is just going to have to deal with it
- it does add some complexity
- I'm just going to implement something that works, and someone may have to come along later and clean it up
- after that, NQP will be done
- I can get back to Perl 6
- lots of things are blocking on this one piece of getting namespaces to work
- being able to run code in mod_parrot and use Parrot libraries will work after this
Allison:
- finished the mod_perl 2 book
- went straight onto Vienna
- spent a good bit of time with Jonathan and helping people at the hackathon
- checked in some of the work from that
- some I still need to go over
- Dakkar gave me a Perl 5 prototype of the next step for TGE
- not just matching based on the type of the node, but full-featured matching based on node attributes and children
- also gave me a Perl 5 prototype of doing the automatic recursion into the next level of the tree
- need to translate that into PIR and integrate it into TGE
- need to finish the object model
- it's kinda frustrating
- the old code is pretty messy
- lots of cleanup there
- also working on the PMC PDD
- it really just needs one final thorough pass
- then we can move it out of draft
c:
- doing some minor cleanup on all of the PMCs
- mostly just tidying
- but I've deleted some old code
- have three things to work on: HLL, GC, vtable lookup but blocking on PDD 15 there
Jesse:
- some of the microgrants have been paid
Allison:
- is it time to branch for PDD 15?
Patrick:
c:
Allison:
- I'm spending a lot of time working around the old object model
Patrick:
- I'm having to work around the old model and deal with the new
- it might be nice to rip all of the bandages off
- there'll be a great deal of hurt
- sooner is better than later
Allison:
- the more I look, the more I realize that we can't keep the old model around
- it's just too badly broken
Patrick:
- I could care less about the old object model
- whatever gets the new one implemented quickest works for me
- the tools I'm building will use the new one and only the new one
Allison:
- unless I can keep the branch only about two weeks old, then keeping things up to date might be more work than not branching
c:
- I'm less convinced of that
- I haven't seen a lot of changes in the past six weeks that have touched object producers or consumers
- shouldn't be as difficult to merge in that sense
Allison:
- okay, I should be able to make a public branch on Monday
- probably will use SVK to do the merges from trunk though
Nicholas:
- p5p is still grumbling about
dor
and err
- no one can work out why you like
err
, Larry
Larry:
- it's a soundalike of
or
and it has to do with error recovery
- where you go if you err
- it's a prettier word than
dor
too
Nicholas:
- that's a clearer version of "
dor
is dorky"
- Rafael and I are keen to defend Rule #1, but we've not been clear why
- I feel uneasy about doing things differently from Perl 6
- the peanut gallery seems to prefer
dor