Parrot 0.9.0 "From Outer Space" Released!

chromatic chromatic at wgz.org
Wed Jan 21 08:42:32 UTC 2009


     Greetings, my friend. We are all interested in the future, for that
     is where you and I are going to spend the rest of our lives.

     Remember, my friend, future events such as these will affect you in
     the future.

     You are interested in the unknown... the mysterious. The
     unexplainable. That is why you are here. My friend, we cannot keep
     this a secret any longer. Let us punish the guilty. Let us reward
     the innocent. My friend, can your heart stand the shocking facts of
     ....

   -- "Plan 9 From Outer Space"

   On behalf of the Parrot team, I'm proud to announce Parrot 0.9.0 "From
   Outer Space." [1]Parrot is a virtual machine aimed at running all
   dynamic languages.

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

Parrot 0.9.0 News:
- Implementation
  + Implemented bytecode annotations
  + Role composition is now aware of multi-subs
  + Unbuffered IO PMCs now autopromote when buffering is necessary
  + Installation parrot binary and libparrot shared library now supported
  + Class registry now respects HLLs
- Compilers
  + IMCC
    - removed keyed string indexing, e.g. $S0[1].
    - removed slice syntax, e.g. $P0[1..2]
    - removed .namespace /.endnamespace  pair
    - fixed 'new $P0, [classname]' syntax
  + PIRC
    - refactoring of various data structures
    - various bug fixes and updates
    - complete bytecode generation
    - add '-x' commandline option to run compiled code
  + PCT
    - add 'hll' and 'subid' attributes to PAST::Block
    - refactor loop handling code to handle last/redo/next
    - add :pasttype('stmts') and :pasttype('null')
    - improve "scope not found" error message
    - allow PAST::Val nodes to contain block references
  + PGE
    - add "skipkey" option to PGE::OPTable
    - allow spaces before modifiers in regexes
    - add '(' ~ ')' goal matching syntax
    - skip creating a class/grammar if it already exists
- Languages
  + Rakudo
    - improved error mesages in multi dispatch
    - implemented clone method for all objects
    - implemented MAIN sub
    - Unicode versions of infix hyper operators
    - refactored IO.readline
    - basic support for Inf and NaN
    - list and array slices with whatever star
    - hash slices
    - implemented last and redo
    - pointy blocks as terms
    - refactored variable and parameter passing
    - improved assignment semantics
    - improved parsing of type names and subs
    - mostly implemented parametric roles
    - separate types for blocks, subs and methods
    - basic support for submethods
    - implemented Junction autothreading of user code (not builtins yet)
    - eval supports :lang attribute
    - proto makes other subs in scope multis, including in role composition
  + Befunge
    - back to working state
    - ported to pir
  + Pipp
    - add support for predefined constant __CLASS__ and __METHOD__
    - add initial support for static members
    - add support for namespaced constants
    - constants are now handled as package vars
    - variables are now lexical variables
    - add support for superglobals in functions
    - Call the class __constructor when there is one
    - added incomplete support for closures
    - removed support for the alternative parsing strategies
    - added support for 'elsif'
    - added support for 'do-while'
  + HQ9+
    - left the nest and is now at https://github.com/bschmalhofer/hq9plus/
  + Eclectus
    - left the nest and is now at http://github.com/bschmalhofer/eclectus/
  + m4
    - left the nest and is now at http://github.com/bschmalhofer/m4/
  + Lua:
    - add a minimalist user back trace
  + PIR
    - "does" and "morph" VTABLE interfaces are now overridable from PIR
- Miscellaneous
  + Infrastructure
    - 'make smoke' now generates Smolder reports sent to
      http://smolder.plusthree.com/app/public_projects/smoke_reports/8
  + Improved const and null correctness for C function parameters
  + Sped up STRING manipulation (append, chop), improving PGE about 30%
  + BOOK
    - Added sections about Classes, OO programming, and methods.
    - Added information about Annotations, Exceptions, and Handlers
  + STM
    - Removed non-functional STM subsystem

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

References

   1. http://parrotcode.org/
   2. http://search.cpan.org/dist/parrot
   3. http://parrotcode.org/source.html
   4. http://subversion.tigris.org/
   5. https://svn.perl.org/parrot/trunk/


More information about the parrot-dev mailing list