Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Announce: Rakudo Star - a useful, usable, "early adopter" distribution of Perl 6

by moritz (Cardinal)
on Jul 29, 2010 at 12:27 UTC ( [id://851923]=perlnews: print w/replies, xml ) Need Help??

pmichaud writes:

On behalf of the Rakudo and Perl 6 development teams, I'm happy to announce the July 2010 release of "Rakudo Star", a useful and usable distribution of Perl 6. The tarball for the July 2010 release is available from http://github.com/rakudo/star/downloads.

Rakudo Star is aimed at "early adopters" of Perl 6. We know that it still has some bugs, it is far slower than it ought to be, and there are some advanced pieces of the Perl 6 language specification that aren't implemented yet. But Rakudo Perl 6 in its current form is also proving to be viable (and fun) for developing applications and exploring a great new language. These "Star" releases are intended to make Perl 6 more widely available to programmers, grow the Perl 6 codebase, and gain additional end-user feedback about the Perl 6 language and Rakudo's implementation of it.

In the Perl 6 world, we make a distinction between the language ("Perl 6") and specific implementations of the language such as "Rakudo Perl". "Rakudo Star" is a distribution that includes release #31 of the Rakudo Perl 6 compiler, version 2.6.0 of the Parrot Virtual Machine, and various modules, documentation, and other resources collected from the Perl 6 community. We plan to make Rakudo Star releases on a monthly schedule, with occasional special releases in response to important bugfixes or changes.

Some of the many cool Perl 6 features that are available in this release of Rakudo Star:

  • Perl 6 grammars and regexes
  • formal parameter lists and signatures
  • metaoperators
  • gradual typing
  • a powerful object model, including roles and classes
  • lazy list evaluation
  • multiple dispatch
  • smart matching
  • junctions and autothreading
  • operator overloading (limited forms for now)
  • introspection
  • currying
  • a rich library of builtin operators, functions, and types
  • an interactive read-evaluation-print loop
  • Unicode at the codepoint level
  • resumable exceptions

There are some key features of Perl 6 that Rakudo Star does not yet handle appropriately, although they will appear in upcoming releases. Thus, we do not consider Rakudo Star to be a "Perl 6.0.0" or "1.0" release. Some of the not-quite-there features include:

  • nested package definitions
  • binary objects, native types, pack and unpack
  • typed arrays
  • macros
  • state variables
  • threads and concurrency
  • Unicode strings at levels other than codepoints
  • pre and post constraints, and some other phasers
  • interactive readline that understands Unicode
  • backslash escapes in regex <...> character classes
  • non-blocking I/O
  • most of Synopsis 9
  • perl6doc or pod manipulation tools

In many places we've tried to make Rakudo smart enough to inform the programmer that a given feature isn't implemented, but there are many that we've missed. Bug reports about missing and broken features are welcomed.

See http://perl6.org/ for links to much more information about Perl 6, including documentation, example code, tutorials, reference materials, specification documents, and other supporting resources.

Rakudo Star also bundles a number of modules; a partial list of the modules provided by this release include:

  • Blizkost - enables some Perl 5 modules to be used from within Rakudo Perl 6
  • MiniDBI - a simple database interface for Rakudo Perl 6
  • Zavolaj - call C library functions from Rakudo Perl 6
  • SVG and SVG::Plot - create scalable vector graphics
  • HTTP::Daemon - a simple HTTP server
  • XML::Writer - generate XML
  • YAML - dump Perl 6 objects as YAML
  • Term::ANSIColor - color screen output using ANSI escape sequences
  • Test::Mock - create mock objects and check what methods were called
  • Math::Model - describe and run mathematical models
  • Config::INI - parse and write configuration files
  • File::Find - find files in a given directory
  • LWP::Simple - fetch resources from the web

These are not considered "core Perl 6 modules", and as module development for Perl 6 continues to mature, future releases of Rakudo Star will likely come bundled with a different set of modules. Deprecation policies for bundled modules will be created over time, and other Perl 6 distributions may choose different sets of modules or policies. More information about Perl 6 modules can be found at http://modules.perl6.org.

Rakudo Star also contains a draft of a Perl 6 book -- see "docs/UsingPerl6-draft.pdf" in the release tarball.

The development team thanks all of the contributors and sponsors for making Rakudo Star possible. If you would like to contribute, see http://rakudo.org/how-to-help, ask on the perl6-compiler@perl.org mailing list, or join us on IRC #perl6 on freenode.

Rakudo Star releases are created on a monthly cycle or as needed in response to important bug fixes or improvements. The next planned release of Rakudo Star will be on August 24, 2010.

1 http://github.com/rakudo/rakudo
2 http://parrot.org/

Personally I'm very excited, and hope that many people will test it, and thus help two improve Perl 6, and grow the community.

Update: There's a wiki page collecting the R* press coverage.

Replies are listed 'Best First'.
Re: Announce: Rakudo Star - a useful, usable, "early adopter" distribution of Perl 6
by chromatic (Archbishop) on Jul 29, 2010 at 16:04 UTC
Re: Announce: Rakudo Star - a useful, usable, "early adopter" distribution of Perl 6
by mojotoad (Monsignor) on Jul 29, 2010 at 15:29 UTC
    Awesome, guys, congratulations!

    Cheers,
    Matt

Re: Announce: Rakudo Star - a useful, usable, "early adopter" distribution of Perl 6
by Boldra (Deacon) on Jul 30, 2010 at 08:45 UTC
    Just a short congratulatory note - very well done and huge thanks to everyone involved. I'm thrilled this is actually happening.


    Update

    I know it's not a priority, but if it came with a perlthanks I'd use that!



    - Boldra
Re: Announce: Rakudo Star - a useful, usable, "early adopter" distribution of Perl 6
by Anonymous Monk on Jul 30, 2010 at 11:06 UTC

    Guys,

    Firstly many thanks for this beautiful gift that you have given to us. Now I have a question. If one was to be writing a Perl 5 to Perl 6 converter, he will have to Parse a Perl 5 program right?

    In order to migrate the existing code base to Perl 6, of course manual hard labor would be foolish and insane. But just the thought of writing a Perl 5 parser and then a Perl 6 generators is giving me shivers.

      I expect most of the Perl 5 code reuse to happen by loading Perl 5 modules in Perl 6, not by using (semi)automatic translation.

      A prototype for that already exists (search for blizkost), and it works for some frequently-used modules already (CGI.pm, Tk).

      Parsing Perl 5 is fragile, and only works if you neglect certain things (like function prototypes). If you do that, you'll arrive add PPI (p5 code) or STD_P5 (p6 code).

      Another thing to try is the MAD emitter that Larry hacked into perl5 core before the 5.10.0 release, which uses perl to parse Perl 5 code, and emits an XML-like description of the parse tree.

      Perl 6 - links to (nearly) everything that is Perl 6.

        Could you please provide some more info on STD_P5? Is it's purpose to allow you to write a minimal Perl 5 parser in Perl 6? Is STD_P5 still being actively developed? What's the Perl 6 developers' opinion on its value?

        If STD_P5 can be used to parse a fairly large subset of Perl 5, then could that "subset-of-Perl-5" code be run from inside my Perl 6 program?

Re: Announce: Rakudo Star - a useful, usable, "early adopter" distribution of Perl 6
by Anonymous Monk on Aug 04, 2010 at 04:06 UTC
    http://perldoc.perl.org/perlhack.html is there something like this for Rakudo?
Re: Announce: Rakudo Star - a useful, usable, "early adopter" distribution of Perl 6
by ahmad (Hermit) on Aug 02, 2010 at 23:36 UTC

    I have tried it on windows, and apparently it's 3 times slower than Perl 5

    I have tried it with a simple command like this:

    perl -e "print 'Hello world!'" # VS perl6 -e "print 'Hello world!'"

      • Don't compare it to Perl 5 right now because it's Rakudo Star (though the executable named "perl6")
      • The team focuses on correctness rather than performance, so I guess it's expected.

      Anyway, feel the moving of Perl 6 development and have fun!

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlnews [id://851923]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having a coffee break in the Monastery: (4)
As of 2024-03-19 09:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found