Thursday, October 22, 2009

Awkward edits

Am I the only one who has trouble doing a simple cut-n-paste into the edit box for Blogspot to generate a post? Simple HTML suddenly gets less simple. :-(

Rakudo Perl 6 development release #22 ("Thousand Oaks")

Announce: Rakudo Perl 6 development release #22 ("Thousand Oaks")

On behalf of the Rakudo development team, I'm pleased to announce the October 2009 development release of Rakudo Perl #22 "Thousand Oaks". Rakudo is an implementation of Perl 6 on the Parrot Virtual Machine (see The tarball for the October 2009 release is available from

Due to the continued rapid pace of Rakudo development and the frequent addition of new Perl 6 features and bugfixes, we recommend building Rakudo from the latest source, available from the main repository at github. More details are available at

Rakudo Perl follows a monthly release cycle, with each release code named after a Perl Mongers group. The October 2009 is code named "Thousand Oaks" for their amazing Perl 6 hackathon, their report at, and just because I like the name :-)

Since the 2009-08 release, Rakudo Perl builds from an installed Parrot instead of using Parrot's build tree. This means that, unlike previous versions of Rakudo Perl, the "perl6" (or "perl6.exe") executables only work when invoked from the Rakudo root directory until a "make install" is performed. Running "make install" will install Rakudo and its libraries into the Parrot installation that was used to build it, and then the executables will work when invoked from any directory.

This release of Rakudo requires Parrot 1.7.0.

For the latest information on building and using Rakudo Perl, see the readme file section titled "Building and invoking Rakudo". (Quick note: the "--gen-parrot" option still automatically downloads and builds Parrot as before, if you prefer that approach.)

Some of the specific changes and improvements occuring with this release include:

  • Rakudo is now passing 32,582 spectests, an increase of 17,085 passing tests since the September 2009 release. With this release Rakudo is now passing 85.0% of the available spectest suite.
  • We have a huge increase in the number of spectests relating to the Complex and Rat numeric types.
  • Complex numbers are now implemented as a Perl 6 class, and supports all trigonometric functions from the specification.
  • Rakudo has a new signature binder which makes calling routines and operators much faster, and allows binding of positional arguments by name.
  • Rakudo has improved signature introspection, better errors relating to signatures and signature literals are now supported.
  • Rakudo now supports accessing outer lexical variables from classes and packages.
  • Some new variants of the series operator are now implemented.
  • When configuring Rakudo with --gen-parrot, the --optimize flag is now passed to Parrot's

The development team thanks all of our contributors and sponsors for making Rakudo Perl possible. If you would like to contribute, see , ask on the mailing list, or ask on IRC #perl6 on freenode.

The next release of Rakudo (#23) is scheduled for November 19, 2009. A list of the other planned release dates and codenames for 2009 is available in the "docs/release_guide.pod" file. In general, Rakudo development releases are scheduled to occur two days after each Parrot monthly release. Parrot releases the third Tuesday of each month.

Have fun!

Thursday, October 8, 2009

Perl around the world.

Maybe it's just that I'm so very American but I've been reading the posts from the Perl Iron Man challenge and I'm amazed and excited at how many posts there are in other languages. Just now I've seen Spanish, French, German, and what I think is Russian. Yes, I know that Perl is spoken around the world, but, for me, it's neat to see a microcosm of the world. Sometimes these posts seem interesting from the code that they present, but unfortunately I'm too much of a monoglot.

Anyway, Perl++

Sunday, October 4, 2009

Catalyst Sparklines

At work we maintain several platforms along the Texas coast that collect various physical parameters in or near the waters of the Gulf of Mexico or bay systems. In order to maintain the quality of the data, we have a QC process that displays a series of graphs that show the last 7 days of data collected at each station. A human reviews these graphs each morning to look for potential problems which are noted and forwarded to the field crew and the IT staff so that they may be resolved.

Over the last few months one of the ideas that's come up to improve the QC process is to use sparklines to get a high level overview at a glance rather than the larger graphs that we currently use. Since we're in the process of turning this legacy application grown over the last 19 years into something that uses more modern tools such as Moose and Catalyst, I thought I'd see how difficult it would be to implement sparkline-QC in Catalyst.

Turns out it was ueber-easy because earlier today I ran across this entry in last year's Catalyst Advent Calendar. So, now in the span of an hour or so I've got a working prototype generating sparklines for all of the data series at each station similar to the way we generate graphs for our QC page. Hooray for Perl, CPAN, and Catalyst!