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

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

  * The new concurrency implementation makes its debut in 0.7.0.  See
    http://www.parrotcode.org/docs/pdd/pdd25_concurrency.html for more.

  * Rakudo (Perl 6) now supports class attributes and multiple dispatch,
    plus some metaclass support, among others.

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


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

Enjoy!

                                        -- Bob Rogers
                                           http://rgrjr.dyndns.org/

Reply via email to