Please fasten your seat belt for your annual dive into Perl 6.
As has been customary the last six years, we start with a brief overview of the state of Perl 6.
Last year's State of Perl 6anticipated an upcoming production release of Perl 6. That is still scheduled for this Christmas. Last year's summary also identified major areas of work to-be-done for this release.
The 2015.05 release of Rakudo introduced NFGor "Normal Form Grapheme", which means that strings in Perl 6 are not based on Unicode codepoints anymore, and instead on grapheme clusters. Grapheme clusters can consist of base characters, like the latin lower-case c, and combining characters, like the "combining cedilla" character. Together, they form a single, visual character "c with cedilla", ç. This character also exists as a single codepoint, but other combinations of base character and combining character don't. Yet with this new feature, Perl 6 still treats the cluster of base character plus one (or more) combining characters as a single character, so regexes matches and substrwon't tear them apart.
In September, Rakudo shipped with the GLRor Great List Refactoringin place. This mostly means that the rules for using and accessing nested data structures are now much simpler and more consistent. Under the hood we also have a sane and powerful iterator model, and a new type Seqfor lazy value streams that don't necessarily memorize old values on iteration.
Finally, the September release introduced native, shaped arrays(or NSA). This allows you to writemy int32 @matrx[4;5]
which allocates a continuous block of 20 32-bit values, but is still usable as a two-dimensional matrix in Perl 6 land. This paves the road towards memory efficient linear algebra (and other applications, of course).
But, development didn't stop there. The upcoming December release of Rakudo brings us automatic precompilation of modules and installation repositories.
Not only the compiler progresses. Where the Perl 6 Modules pageshowed around 270 modules a year ago (end of November 2014), we are now at about 460 modules. I'm also happy to report that there are two module installers now, pandaand zef.
We also now have decent documentation coverage, at least on built-in types; other areas such as tutorials and material on language features are still a bit sparse. Other documentation efforts such as Learn Perl 6 in Y minutesand perl6intro.comhave sprung up, and enjoy popularity.
I'm sure there has been more Perl 6 activity that would be worth reporting, but the excitment for the upcoming release makes a calm retrospective a bit harder than usual.
Stay tuned for more, and have fun!