[ANNOUNCE] Pugs 6.2.12 and v6.pm released! (reformatted)

Audrey Tang <[email protected]> Tue, 4 Jul 2006 20:54:40 -0400
Newsgroups gmane.comp.lang.perl.perl6.announce
Message-ID <002B1657-F9C9-43C1-8DEE-1E513C4140BE__30998.1094128036$1152065360$gmane$org@audreyt.org>
(Mail.app totally scrambled the previous mail; sorry about this re- 
post.)

I'm glad to announce that Pugs 6.2.12 is now available from CPAN:

     http://search.cpan.org/dist/Perl6-Pugs-6.2.12/
     SIZE: 2693459
     SHA1: c9731da8e597591ca7e279766481ce0bece8cfa4

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:

     http://pugs.blogs.com/pugs/2006/07/release_announc.html#more

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 that "v6.pm", a prototype Perl 6  
Compiler implemented entirely in Perl 5, is also available from CPAN:

     http://search.cpan.org/dist/v6-pugs/

All Perl 5 components are released as separate CPAN modules.  One can  
use them as pure-perl5 modules, to 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:

     http://search.cpan.org/dist/Moose/
     http://search.cpan.org/dist/Class-MOP/

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:

     http://search.cpan.org/dist/Pugs-Compiler-Rule/

The calling convention with named, optional, and slurpy arguemnts is  
supported by the "Data::Bind" module:

     http://search.cpan.org/dist/Data-Bind/

The precompile-Perl6-to-Perl5 mechanism is based on  
"Module::Compile", a safe and composable replacement to source  
filtering:

     http://search.cpan.org/dist/Module-Compile/
     http://search.cpan.org/dist/Filter-Simple-Compile/

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:

     http://pugscode.org/images/timeline.png

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!

Audrey
PGP.sig (application/pgp-signature, 186 B) - not displayed