The Perl 6 design team met by phone on 20 May 2009. Larry, Allison, Patrick, Jerry, Nicholas, and chromatic attended.
Larry:
- trying to delegate some of my spec writing
- if someone has something that needs to change and that person understands the design principles, someone can go ahead
- Moritz respecced
each
to make it a conjectural junction
- other people are working on the NFG specification
- I haven't seen any changes committed on that yet
- thinking about how importation works
- particularly with inlined modules
- expect that there will be an
import
declarator implied by use
but usable explicitly
- if you say
import
with an inline module or role declaration, it'll perform the export
- which won't happen by default
- thinking about how that declaration works at the moment
- instead of
trait_auxiliary
and trait_verb
, which fill the same syntactic category, we have trait_mod
- they all occur in the same spot
- you're always looking for them both simultaneously
- the hander routines are now all upperclass autocalled, like other handlers
IS
or TRAIT_IS
or APPLY_IS
, or some such
- still thinking about namespaces for typeless traits not based on classes
- perhaps
rw
or readonly
traits aren't types
- they need to be in a namespace somewhere
- maybe just a syntactic category
- added the use of ampersand variables on method calls to STD,
.&foo
- you can already say
$.foo
, call a code reference as if it were a method
&
is also a code reference; ought to be allowed there too
- Jonathan was playing with ampersand attributes,
.&!foo
- the rudimentary POD parser now complains if you don't have a matching
=end
for your =begin
, except in the case of =begin END
- if you put a default onto a named parameter, parser assumed it to be a positional parameter
- gave a bogus error message
- I fixed that
- another interesting grammar tweak
- defining an
infix:<< >>
and then a signature
- if you leave a space out between the name and the signature parentheses, it would misparse
- French angles ambiguously hyper parentheses there
- I didn't want to require the space there
- it's nice that you can write the declaration as if it a were call with the parens
- if you're going to hyperoperate on parentheses, you have to use the dot form
>>(
is now specifically not a hyperoperator within interpolation
>>.(
is
- that seems to be pretty DWIMmy
- everything else is cage cleaning and hanging out
Patrick:
- did not write any posts
- will fix that first
- mostly worked with others to make these happen
- Tene and I ported Rakudo to run in its own HLL namespace instead of Parrot's
- caused a 40-50% slowdown in execution time
- we know the cause and have a fix before tomorrow's Rakudo release
- I'll compare Rakudo's speed to before the switch
- want to credit chromatic for any performance optimizations
c:
- I have a 6.5% improvement for all function calls
Patrick:
- we have better error reporting now
- can point to the point in your code with the error, rather than some point in generated PIR code
- added the ability to define custom operators in Rakudo
- infix, prefix, postfix
- in select cases also circumfix
- we can move even more parts of the builtins to Perl 6 as a Setting
- exposed a few other places we need cleanup
- Jonathan is working on those
- added a variable to PCT which gives the compiler the names of the files it's compiling
- improved error reporting there
- added an inline PIR construct to NQP to match Rakudo's
- added the
qx//
quoting term
- can now run shell commands and capture the output into a variable
- answering questions online and taking care of other little things
- preparing for tomorrow's release
- though it may occur very late tonight
Allison:
- mainly release prep this week
- lots of ticket review and patch application
- submitted an article to Linux Magazine, "Why Parrot is Important"
- more high-level than a tutorial
- continuing to work on the book
- a good week for high-level design discussions
- seems like that happens when I have more time to be on IRC
Nicholas:
- an update on smart-match
- Paul Fenwick gave the position of a Perl trainer
- the design decision of not being able to overload the left side of the smart match bothered him
- there's more discussion there
c:
- optimizing Parrot and Rakudo
- finding bottlenecks
- fixing many of them
- editing the Parrot book
- doing a little more design work on nanoparrot
Nicholas:
- how far off are you from letting other people release Rakudo?
Patrick:
- the instructions are in the repository
- they're straightforward
- I could turn it over to Jonathan or Jerry or any number of people with ease
- they could just do it
- it's basically a Makefile target
- you do some prep work, run the target, then upload the tarball to the right places
- I stole liberally from how Parrot does things
- I can hand it off any time I get tired of making them
Nicholas:
Jerry:
- any plans to turn it over soon?
Patrick:
- if other folks think it's important, I can do that
- I could pick someone at YAPC::NA to do it
- the release day is the Hackathon day there
- we could just walk a few people through it that day
- even if they don't upload the tarball and push the tag
- we'll target that for the June release, even if no one else releases an official release
Jerry:
- I've been trying to get the Parrot release bus number above 10
- we're close, which is a great place to be
Patrick:
- that was evident, as yesterday's release manager couldn't make it, and Mark Glines picked it up
Jerry:
- and it was his first release