Parrot 0.9.1 "Final Countdown" Released!

o/~ We're leaving together,
       but still its farewell o/~

o/~ And maybe we'll come back,
       To earth, who can tell? o/~

o/~ I guess there is no one to blame
       We're leaving ground
           Will things ever be the same again? o/~

o/~ It's the Final Countdown...
       The Final Countdown  o/~

--Europe, "The Final Countdown"

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

Parrot 0.9.1 is available via CPAN (soon), or follow the 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.

Parrot 0.9.1 News:

- Implementation
  + Support for portable 'Inf', 'NaN' and -0.0
  + pbc_disassemble prints constants in constants table
  + New experimental BigNum implementation
  + Pair is now a dynamic loadable PMC
  + Various function name sanification
  + New implementation of Strings component
  + Replace various PMC value union access code by VTABLE method invocations
  + Replace various PMC value unions by ATTRibutes
  + Removed SArray PMC. Use FixedPMCArray instead.
- Documentation
  + Book
    - updates to Chapter 2 (getting started)
    - updates to Chapter 3 (PIR basics)
    - updates to Chapter 4 (PIR subroutines)
    - updates to Chapter 10 (HLLs)
    - updates to Chapter 12 (opcodes)
  + Function documentation
  + Pod documentation style modernized; no longer Perl 5 style.
  + PMC has an additional acronym: Poly Morphic Container
  + The DOD (Dead Object Detection) acronym is no longer used;
    use 'GC' to refer to the Garbage Collector component.
- Compilers
  + IMCC
    - :named flag can now take string registers as argument
    - A single '=cut' directive is now ignored (without initial Pod directive)
    - :vtable subs now have proper access to 'self' pseudo variable
- Languages
  + add new 'Pod' documentation parser
  + Pipp (PHP implementation):
    - Pipp is now at http://github.com/bschmalhofer/pipp
    - support for 'print', 'dirname', 'implode', 'str_replace',
    - various grammar fixes
  + ECMAScript
    + add 'quit', 'readline' builtins
    + fix 'Boolean' type and 'print' builtin
  + Lua
    - left the nest and is now at http://github.com/fperrad/lua/
  + Rakudo
    - left the nest and is now at http://github.com/rakudo/rakudo/
    - build instructions can be found at http://tinyurl.com/rakudo
  + lazy-k
    - left the nest and is now at http://github.com/bschmalhofer/lazy-k.git
  + unlambda
    - left the nest and is now at http://github.com/bschmalhofer/unlambda/
  + WMLScript
    - left the nest and is now at http://github.com/fperrad/wmlscript.git
  + removed Zcode implementation
- Tools
  + pmc2C
    - ATTRs are now inherited automatically in subclassing PMCs
- Deprecations
  + Parrot_readbc, Parrot_loadbc renamed to Parrot_pbc_read, Parrot_pbc_load.
  + .HLL_map directive in favour of 'hll_map' method on Parrot interpreter
  + Data::Escape library
- Tools
  + pbc_disassemble options added
  + pbc_dump renamed from pdump
- Miscellaneous
  + Parrot is now Copyright Parrot Foundation
  + Parrot's SVN repository is now hosted at https://svn.parrot.org
  + Various code cleanups, consting, 64-bit incompatibilities and other bug fixes

Thanks to all our contributors for making this possible, and our sponsors for supporting this project. Our next release is 17 March 2009.

Enjoy!