The Perl 6 Design team met via phone on 03 January 2007. Larry, Allison, Jesse, Nicholas, and chromatic attended. These are the notes.
Allison:
- Punie is very happy
- it runs again, now on Patrick's modules
- that gives me free rein to add new features
- I'll try
for
loops next, just to be contrary
Jesse:
- does the Parrot Perl 6 have
for
loops yet?
c:
Jesse:
- if Punie can implement all of Perl 6's features, one step ahead of Patrick...
Allison:
- it doesn't need them
- no method calls, for example
- I do want to do some refactoring of
HLLCompiler
, based on ideas chromatic and Patrick and I talked about
- also launched the IO PDD last night
- it's done enough to start implementing now
- I suspect we'll have questions during the implementation though
Larry:
- does it say much about general event processing?
Allison:
- I spent my holiday reading and writing and hacking
- we have a lot of conflicting concurrency models
- the only way to manage them without conflicts is to run them through a central scheduler
- each model registers a task with a central scheduler
- it's in the PDD
Larry:
- it solves everything with another level of indirection
Allison:
- I took the idea from Apple's OS level of concurrency
c:
- sadly, Windows does that too
Allison:
- it's in several places
- we'll use several different concurrency strategies
Larry:
- someone asked me if Perl 6 would support
alarm()
- I assured him he'd get some notification somehow
Allison:
- events need to coordinate with the concurrency scheduler
- I don't know if they run through it
- I don't know if the scheduler sends events to notify things
c:
Allison:
- also, we have our trademark registered
- we're official
- the next step is doing EU and Canadian trademark
Nicholas:
- is it possible to register with the EU patent office?
- do you have to register trademarks centrally or in each country?
Allison:
- we can do it centrally now
c:
- mostly serving as a foil to Allison
- did some work but I want a release soon
- I need a deprecation cycle
Jesse:
- most of my work is kicking and screaming
- talked to Chip a couple of months ago about expanding the pumpkining to a cabal
- I had a similar discussion with Jerry Gay
- yesterday, the #parrotsketch masses agreed to create a benevolent
people's dictatorship to toss around the release engineering baton
- we'll do monthly releases on a rotating release manager schedule
- we'll have bug days before releases
- hopefully no longer a single individual will be a gateway for the release
Allison:
- and if one person falls through the cracks, we have other people who can do it
Jesse:
- Andreas is working to get PAUSE permissions for everyone
Larry:
- the usual working and hanging out and holidays
- doing a lot of spec work
- added a grammatical category for the
do
statement kinds of statement-introducing operators
- worked over the call wrapped functions, call next method interface
- no longer a
goto
routine
- capture syntax is now clearer
- Luke pointed out a signature ambiguity
- if you want to map something to a capture and a signature, you have to use the capture subsignature syntax
- it's sort of a variant of capturing trees
- I noticed that range objects were meaningless when used with scalar operators
- made them do smarter things
- adding to or multiplying a range does interval arithmetic
- tried to nail down how fancy metatokens can get
- how far you can stack metaoperators
- may revisit that again
- the rules are still too complicated
- did a lot of work on the smart-matching table
- someone pointed out that it didn't allow you to match a string against a regular expression
- seems suboptimal
Jesse:
- does 5.9.x need an update?
Larry:
- 5.9.x does the right thing
- whoever it was there noticed it, thank you
- I made a lot of simplifications
- all of the
Any
rules are now at the bottom of the list
- must easier to jibe with multi-dispatch semantics
- specific cases are at the top
- general cases are better
- will prevent a certain amount of impedence mis-match between compile-time semantic determination
- the old property/trait
is from
is insufficiently general
- now there's a string implementation object that builds a string lazily
- allows us to search over arrays as if they were strings more easily
- other clarifications and housekeeping
- moved a bunch of type information from S06 to S02
Jesse:
- that's a fair bit of stuff!
Nicholas:
- when you apply the scalar operators to a range, and that range is lazy, does it perform a lazy iteration?
Larry:
- it produces a new range object
Nicholas:
- in the smart match table, some things at the top are compile-time only
- the rest of them, are they in the identical order of multi-dispatch?
Larry:
- many are flippable and reversible
Nicholas:
Larry:
- yes
- by and large, they're what MMD would pick
- except that MMD will probably fail on some ambiguities that the ordered table will not
- if you flip some and have any on the left and any on the right, you can get some ambiguous dispatches that are hopefully distinct under MMD
- I thought about that
- you might have the option of dropping into multi-dispatch there
- we do want to recognize
Any
versus a regex at compile-time and optimize on it
Nicholas:
- not feeling smart enough to figure out how the same types would go with MMD
Larry:
- I thought about saying that as soon as you hit the
Any
s, you do essentially a stubbed multi-dispatch at that point
- "if I did this, what would you end up with?"
- that's with compile-time visibility only
Nicholas:
- there was a test time question on #parrot yesterday
- I can get tests to run in parallel on a multi-core Sun box
- I haven't handed that code to Andy yet
- it's in no fit state to hand to Andy
- I've not talked to Andy about what's the best way to turn the prototype into something nice
c:
- Parrot doesn't use much of
Test::Harness
Nicholas:
- the display logic needs some caching in the
Test::Harness
object
- there's also the part which launches tests
- piped output
- it can now spawn multiple programs but only prints at the end
c:
- mostly we just send a list of files to
runtests()
and let that handle it
Nicholas:
- so this is useful to Parrot then?
c:
- I believe so
- buy Andy sushi
Nicholas:
- how many deprecated features are there in Parrot?
Allison:
- 10 or 15 in DEPRECATED.pod
- anything not listed isn't deprecated yet