Parrot 0.8.1 "Tio Richie" Released!

chromatic on 2008-11-19T03:35:14

On behalf of the Parrot team, I'm proud to announce Parrot 0.8.1 "Tio Richie." Parrot is a virtual machine aimed at running all dynamic languages.

Rat Creature #1: Comrade! We are about to feast! Quick, get your fat carcass behind this bush and get ready!

Rat Creature #1: Hello, small mammal.... Could you step in here for a moment? I've got something to show you....

Fone Bone: Can't you show me out here, where I've got runnin' space?

Rat Creature #1: No! No! Please! Step in here -- your friend the dragon isn't around, is he?

Fone Bone: Hey, Ted! Where you goin'?

Ted: You're on yer own, Bone! (exit stage left)

Rat Creature #1: Quick, comrade! Start the cooking fire!

Rat Creature #2: No. You called me fat.

Fone Bone: Ted! Wait for me!

Rat Creature #1: (pulls Bone into the bush) Well, well... Look who's joined us for supper... Go start the cooking fire!!

Rat Creature #2: No. You called me fat.

Rat Creature #1: No?!!! What do you mean, no?!!!

Rat Creature #2: And it's not the first time you've done it either....

Rat Creature #1: Comrade... be reasonable! I wasn't thinking -- I was trying to catch our dinner -- this isn't the time -- I take it back.... you're not fat.

Rat Creature #2: Too late!

Rat Creature #1: Please, comrade! I just want to chop him up for the stew!

Rat Creature #2: And that's another thing. I'm tired of stew! I want to put him in a crust and bake a light fluffy quiche!

Rat Creature #1: Quiche?! What kind of food is that for a monster to eat?! .... Listen, do you think you could come back in half an hour? We'll have this straightened out by then!

Bone: (runs away)

Rat Creature #1: (beat) Why didn't you stop me?

Rat Creature #2: Why should I? You're so smart!

time passes

Fone Bone: (hanging from a branch in a waterfall) Those rat creatures would have to be pretty stupid to follow me on to this frail, little branch!

Rat Creatures: (follow Bone on to the frail, little branch)

Fone Bone: Stupid, stupid rat creatures!! (branch breaks)

— "Bone", by Jeff Smith

Parrot 0.8.1 is available via CPAN (soon), or follow the Parrot download instructions. For those who would like to develop on Parrot, or help develop Parrot itself, we recommend using Subversion on our source code repository to get the latest and best Parrot code.

Please note the updated Parrot Roadmap and our goals leading to the 1.0 release.

Parrot 0.8.1 News:

- Implementation
  + added CPAN module Storable 2.12 as a configuration and build dependency
  + removed the pseudo PIR opcode 'addr'
  + added the 'box' opcode
  + fixed 'pop_eh' handling in PIR libraries and examples
  + removed usage of .return for tailcalls (use .tailcall instead)
  + removed 'get_hash' and 'get_array' from Capture PMC and Capture_PIR
  + improved debugger and HLL coordination
  + allowed MMD primitive autoboxing
  + fixed all known memory leaks in PIR "Hello, world!"
  + NCI signatures now JITted on x86-32 platforms (Windows and Linux)
  + made the .const directive take a quoted type name instead of a constant
  + made IMCC more re-entrant
- Languages
  + Rakudo
    - refactored Junctions implementation
    - added "fire and forget" tool to rebase/rebuild/test Parrot and Rakudo
    - updated container/reference semantics
    - added more builtin methods and functions
    - improved support for multilevel namespaces
    - added support for .Str, .succ, .pred in user-defined classes
    - implemented pointy blocks on if/loops
    - increased STD.pm convergence
    - added %*VM hash
    - improved MMD candidate sorting
    - improved integration of Num and Int
    - implemented increment on protoobjects
    - added initial support for MAIN subs
    - added .PARROT method
  + Pipp
    - added some predefined constants.
    - added implemention of the function basename().
  + Cardinal (Ruby)
    - Added initial support for the classes Proc, Continuation, Queue, Dir, File, and FileStat
    - fixed various minor bugs
    - fixed broken Regexes
- Compilers
  + PCT
    - added '.isa' method to PCT::Node
    - cleaned up 'immediate block' handling
    - allowed arguments to immediate blocks in loops/conditionals
    - metaclass objects can now 'add_method'
  + PIRC
    - integrated macro processing in PIRC's lexer
    - integrated heredoc lexer in PIRC executable
    - added preprocess and heredoc-preprocess commandline options
    - integrated the PASM grammar into PIRC
    - added a register allocator to optimize the built-in vanilla allocator
    - code cleanups and documentation
    - added 'make test' target
   + TGE
    - updated to work with new namespace/classname syntax
- Deprecations
  + PARROT_API will become PARROT_EXPORT
  + :lexid will become :subid
- Miscellaneous
  + Documentation
    - updates and additions to the Parrot book (see docs/book/)
  + OpenGL
    - minor fixes to Parrot's base OpenGL bindings
    - converted OpenGL PIR examples to Perl 6 (two complete, one WIP)
    - added simplified OpenGL PIR example for NCI JIT testing
  + Tests
    - further improvements to parallel tests
    - tests no longer leave filesystem breadcrumbs

Thanks to all our contributors for making this possible, and our sponsors for supporting this project. Our next release is 16 Dec 2008.

Enjoy!