Categories

Posts in this category

Tue, 19 May 2009

Perl 6 Tidings from May 2009 (second iteration)


Permanent link

Shortly before my vacations (Ferie i Norge!) I want summarize what happened in Perl 6 land.

Specification

Many small corrections improved the consistency of the specification, but the biggest area of development was the language mutability and interaction of various languages.

There are various dialects that inherit some of the main language's syntactic features, but are quite different: quotes, regexes, quasi quotes (for macros), transliterations etc. Those are now called slangs, and for example declaring a new backslash assertion in a regex now works like this (r26734):

augment slang Regex {
    token backslash:sym<y> { y\w+ }
}

The various slangs are available via the ~ twigil, for example $~Regex refers to the current braid of the Regex slang (r26733).

Implementations

Rakudo

There were, as usual, many activities in Rakudo. Jonathan Worthington finished his Hague grant on the multi dispatcher and object orientation, and applied for a new one, covering (among other features) parallel dispatch (of the form @array>>.method(@args)) and user defined traits. He started his work already (and seems to have finished a good part already), even though the grant committee hasn't yet approved.

He also implemented much nicer error message: they now contain a stack trace of the Perl 6 functions only (used to be also internal subs), and each position in the call chain is annotated with file name and line number. This brings Rakudo an important step closer to real-world usability.

Patrick Michaud implemented basic parsing of the «...» quotes, fixed some Unicode issues, and implemented operator definitions and overloading (things like precedence and associativity are still missing, but it's very impressive nonetheless).

chromatic tirelessly optimized Parrot and Rakudo startup (Rakudo startup used to be about one second) with good success.

Stephen "Tene" Weeks put Rakudo into its own high level language (HLL) namespace, which is Parrot's tool to avoid leakage of Parrot symbols into Perl 6's namespaces, and to simplify interaction with other languages. Sadly this make Rakudo a bit slow, eliminating about half of chromatic's speed improvements.

SMOP

Paweł Murias continued the refactoring of smop and mildew, working (as far as I can tell) on attributes, method signatures and control exceptions.

Miscellaneous

Smartlinks

Gabor Szabo released the smartlinks utility as Text::Smartlinks to CPAN, and implemented the linking to the various S32 documents, and published a keyword index to the synopsis documents.

Test suite

In the test suite there are 50 to 60 files (with a total of about 230 tests) left that are under consideration/review to moved into t/spec/, the official part of the test suite.

Commit activity in the test suite:

(The last spike is caused by me using git-svn. Every other weekend I'm offline and do some work on the test suite. With svn that resulted in one huge commit, with git-svn that results in many more smaller commits.)

I did some useless statistics on who committed how much, and found that there were twelve hackers who had at least 100 commits to the test suite each:

# Commits Nick
1259 moritz
916 audreyt
548 iblech
279 lwall
230 jnthn
212 pmichaud
152 corion
148 agentz
145 putter
123 Stevan
117 cosimo
107 Auzon

We had commits from 132 different accounts in the test suite.

Web.pm

The TPF grant for producing a Web framework on top of Perl 6 seems to progress nicely, for example it enabled the quick building of a blogging application.

[/perl-6] Permanent link