Perl 6 Design Minutes for 20 May 2009

chromatic on 2009-06-18T02:08:58

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:

  • so the bus number is low

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