Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

Pugs 6.2.12 and released!

by audreyt (Hermit)
on Jul 04, 2006 at 04:13 UTC ( #559083=perlnews: print w/replies, xml ) Need Help??

(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:
    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.)

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 "", 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, to get fully-conformant Perl 6 features without the need of using Perl 6 syntax provided by "".

(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 effort, and all lambdacamel and lambdamoose on #perl6 for their relentless enthusiasm in getting Perl 6 deployed to the Real World.

See you on IRC!


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlnews [id://559083]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (3)
As of 2018-03-21 05:39 GMT
Find Nodes?
    Voting Booth?
    When I think of a mole I think of:

    Results (263 votes). Check out past polls.