Greetings again after my nine-week hiatus. Wow that's a really, really long time...
I've been very busy deploying Pugs/GHC/Jifty for $job, as well as helping other people putting Perl 6 to productive use (cf. TimToady++'s "I upgraded to GHC 6.6 and my program ran 60 times faster" comment), so there's been a general lack of time to write about things.
Partly due to $job requirements, I've delayed the release of 6.28.0 with its full metamodel integration. Instead the 6.2.13 release, due next Tuesday, offers numerous real-world related improvements:
- Perl 5 embedding is now enabled by default, with support for function imports and two-way passing of references and memory-leak-free unboxed values.
- Pugs's runtime performance is more than 2x faster, with even more gains when compiled with the newly released GHC 6.6.
- Pugs no longer depends on Parrot for its Perl 6 grammar engine. Instead it comes with Pugs::Compiler::Rule, a pure-perl5 grammar engine natively supported via a sane embedding interface.
- Significantly simplified code reuse via support for mixin Roles, virtual attributes with initializers, as well as dynamic ( $obj.$meth ), quantified ( $obj.*meth ) and hyperized ( @objs>>.meth ) method calls.
- A wider range of new builtins made available through Perl 5 embedding, such as crypt(), fork() and "\c[UNICODE CHARACTER LITERALS]".
- Support for closure traits, including PRE/POST blocks for design-by-contract programming, and FIRST/NEXT/LAST blocks for fine-grained loop controls.
- Fully reentrant continuations! Thanks to that, the interactive shell environment is now much more robust.
- The multi-dispatcher now handles named, slurpy and optional arguments instead of only positional ones.
- Embedding data in programs through POD variables ($=DATA / @=DATA), as well as indentation-aware here-documents.
There is much, much more -- #perl6 is still working on the ChangeLog as of this writing. Compared to 6.2.12, Pugs is definitely approaching the Hey, what was the big deal? stage now...
Meanwhile, please test out this preflight build, and see if it also passes 100% on your system with "make smoke". We recommend getting a binary installer of GHC 6.6, but it should also work with GHC 6.4.1 and 6.4.2.
After the release, I'll take a month off $job to do some speaking abroad (at Intel, OOPSLA/DLS, Amazon, CONSILI/YAPC::SA) and hackathon'ing (on Jifty with obra/clkao/schwern, and v6-on-perl5 with fglock in Brazil).
So, expect more blogs (and talk slides) in the weeks to come, and do let us know if the preflight works on your system. Have -Ofun! :-)