use Perl Log In
Pugs 6.2.12 and v6.pm released!
posted by rafael on 2006.07.07 10:47
audreyt writes "(Due to non-stop Hackathon since YAPC::NA, this announcement has been delayed for a week. :-)) -- I'm glad to announce that Pugs 6.2.12 is now available from CPAN." Read on for the full announcement.
This release features much better performance: Building Pugs is 3 times faster; compiling Perl 6 programs becomes 10 times faster; running Perl 6 programs is now up to 2 times faster.
We also support various Perl 6 syntax changes since the last release, as well as exciting new features, such as atomic code blocks with Software Transactional Memory (STM) semantics.
(See the full change log for additional details of what's new in 6.2.12.)
6.2.12 marks the last release with the 6.0.x abstract syntax tree (AST) to represent Perl 6 programs. We are currently switching to a new AST that supports the new Signature/Capture calling convention, multi-dispatch with constraints, and a full Meta-Object Protocol (MOP). We are developing this new runtime simultaneously as Haskell modules and Perl 5 CPAN modules, to ensure that they have identical semantics.
To this end, I'm happy to announce "v6.pm", a prototype Perl 6 Compiler implemented entirely in Perl 5, is also available from CPAN:
All Perl 5 components are released as separate CPAN modules. One can use them as pure-perl5 modules, without the Perl 6 syntax provided by "v6.pm"; this way one can get fully-conformant Perl 6 features without the need of using Perl 6 syntax provided by "v6.pm".
(These CPAN modules maintain their own release cycles; we will release more components on CPAN as they are abstracted out from the Pugs runtime.)
The .meta API for Object/Class/Method reflection is supported by the "Moose" and "Class::MOP" modules:
The compiler and runtime for Perl 6 Grammars (top-down) and operator precedence (bottom-up) is available as the "Pugs::Gramamr::Rule" and "Pugs::Grammar::Precedence" modules:
The calling convention with named, optional, and slurpy arguemnts is supported by the "Data::Bind" module:
The precompile-Perl6-to-Perl5 mechanism is based on "Module::Compile", a safe and composable replacement to source filtering:
In summary: Perl 5 is now a first-class virtual machine for Pugs, and in this journey toward self-hosting, we will share as much common structure as possible between the Perl 5, Haskell, and the Parrot runtimes.
With a prototype end-to-end implementation written in pure Perl 5, we are entering the "Hack, Hack, Hack" phase of the (imaginary) Perl 6 timeline from nearly one year ago:
I'd like to thank Flavio Glock for initiating and leading the v6.pm effort, and all lambdacamel and lambdamoose on irc.freenode.net #perl6 for their relentless enthusiasm in getting Perl 6 deployed to the Real World.
See you on IRC!
News: Diagram for Perl 6's CPAN stack [+]
ajs writes "The Perl 6 development whirlwind that has seen the release of a new version of Pugs and the first release of v6.pm continues apace. The latest tidbit is audreyt's posting on the Pugs blog of the Perl 6 CPAN stack diagram along with some interesting commentary on how both Perl 5 and Perl 6 are expected to benefit from this."