Parrot 0.7.0 "Severe Macaw" Released

On August 19th 2008, Bob Rogers released Parrot 0.7.0. Read on for more details or download Parrot 0.7.0 from CPAN.

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

Parrot 0.7.0 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.7.0 Highlights:

Parrot 0.7.0 News:

- Specification
  + PDD27: add multisub lookup
- Implementation
  + new concurrency implementation (see PDD25)
  + Exception PMC now captures a return continuation
  + improved PMC encapsulation (Iterator, Key, Pair)
- Languages
  + Cardinal (Ruby):
    - class variables
    - parsing improvements
    - minor additions to class builtins
    - add support for block parameters to functions
  + Lua:
    - various language fixes
    - refactor all libraries (namespace, method registration)
    - add a OpenGL binding (still incomplete)
    - lost user back trace (see ppd25 & pushaction)
  + Pipp (PHP):
    - add support for while- and for-loops
    - add support for increment and decrement
    - designate PHP 5.3 as the reference implementation
    - improve support for string literals
  + Pugs (Perl 6):
    - removed due to bit rot
  + Rakudo (Perl 6):
    - now over 2200 passing spectests
    - updated the Rakudo roadmap
    - Perl 6 multi dispatch
    - dispatch with slurpies
    - class attributes ("my $.x")
    - anonymous classes
    - OO and metaclass improvements (.WHAT, .WHICH, .WHENCE)
    - additional builtin methods and subs
    - improved make test targets and harness
  + Tcl:
    - implement [lreverse], [lsort -command]
    - allow [incr] to autovivify
    - update tclsh spec target to 8.5.3
    - fix bug in TclDict PMC, allowing ~200 more [dict] spec tests to pass
    - update 'make spectest' fudging, using TODO instead of SKIP if possible
- Compilers
  + PCT:
    - :scope('register') for PAST::Var nodes
    - allow invocant specification in attribute scope PAST::Var nodes
    - correct ordering of sub generation from POST
    - add 'loadinit' attribute to PAST::Block for block initialization
  + PIRC:
    - PIR registers now use the vanilla register allocator
    - all PASM output now uses PASM registers
    - all .locals and $registers are mapped
    - clean-up of grammar, back-end and documentation
    - implemented constant folding
    - implemented instruction selection
- Configuration
  + tests now clean up after themselves
  + improved parallel test support
  + ports/cygwin added
  + Darwin problems fixed
- Tools
  + parrot_debugger renamed from pdb, numerous tweaks
- Miscellaneous
  + IMCC cleanups
  + :vtable implies self in PIR
  + modest core speed improvements
  + Cygwin support improved
  + "say" now an opcode (was dispatched to a method; see Deprecations)
- Deprecations
  + ".pragma n_operators" is deprecated
  + old PASM register syntax (without "$") is deprecated
  + bare (unquoted) method names are deprecated
  + "#line" will be replaced with ".line"
  + ".HLL_map" syntax will change
  + ".loadlib" is now separate from ".HLL"
  + mmdvtregister and mmdvtablefind opcodes are deprecated
  + removed getfd, getclass opcodes
  + removed IMCC syntax that treated some methods as builtins
  + removed numeric get_attr and set_attr vtable entries

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

Enjoy!