Categories

Posts in this category

Mon, 10 Nov 2008

Perl 6 Tidings for November 2008


Permanent link

Specification

A couple of small improvements to the spec made me a bit happier this past week:

  • There's now a Nil type. A Nil represents the empty list, but unlike a normal List object it is undefined in scalar context. It is returned by a bare return statement.
  • A cleanup of the global variables added (among other things) a $?VM variable, which holds informations about the backend being used to execute some code. I like this very much because currently some tests use the unspecced $?PUGS_BACKEND variable, which of course breaks other implementions.
  • File test operators look like this in Perl 6 $filename ~~ :e. This used to boil down to calling the method :e in class Str, which was a bit messy, because colons are not part of an identifier, and thus :e wasn't really a valid method name. Now this is special-cased in the smart match operator instead, and the method is named without the colon.

The smart links in the synopsis documents at http://design.perl6.org/ now contains syntax hilighted code.

Implementations

SMOP

In his report to the TPF grant comittee Daniel Ruoso informed us about his work to integrate SMOP into Perl 5 by means of writing an XS module.

I'm not sure how much you can actually do with it right now, but it seems like an important proof-of-concept.

Rakudo

Jonathan and Patrick refactored Rakudo's handling of containers and values, to great success. This resulted in quite a few tickets being closed, and some more passing spec tests. Great work!

It's now also possible to define custom stringification routines for your classes (what's called "overloading" in Perl 5).

Last but not least, both Patrick Michaud and Jerry Gay received grants from Ian Hague's fanastic donation. Patrick will work on protoregexes and longest token matching (LTM) as well as the prerequisites to use external libraries (which is needed if you want to write the prelude in Perl 6 - guess what the plan is...).

(I've tried to explain the importance of LTM in this article, but I'm not sure if I succeeded. Anyway, it's essential for parsing Perl 6 correctly.

[/perl-6] Permanent link