Tuesday, February 17, 2009

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 (http://parrot.org/) is a virtual machine aimed
at running all dynamic languages.

Parrot 0.9.1 is available via CPAN (soon), or follow the download
instructions at http://parrotcode.org/source.html.  For those who would like to develop on
Parrot, or help develop Parrot itself, we recommend using Subversion on
the 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


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

Enjoy!


No comments: