On behalf of the Parrot team, I'm proud to announce Parrot 1.8.0
Parrot, http://parrot.org/, is a virtual machine aimed at running
all dynamic languages.
Parrot 1.8.0 is available on Parrot's FTP site
ftp://ftp.parrot.org/pub/parrot/releases/devel/1.8.0/, or follow the
download instructions at http://parrot.org/download.
Parrot 1.8.0 News:
+ The FileHandle PMC now exposes the exit code of child process that
was run as pipe.
+ Experimental support for overriding VTABLE invoke in PIR objects was
+ The method 'type' was added to the PackfileAnnotations PMC.
+ The internals of the parrot calling conventions, PCC, were reworked.
All call paths now use a CallSignature object for passing arguments
and return values.
+ The new API-function 'Parrot_ext_call' was added for calling into
+ The fixed-size allocator was improved.
+ The files installed by 'make install-dev' are now covered by 'make
install' as well.
+ The experimental ops 'fetch' and 'vivify' were added.
+ The -I option to the command 'parrot' now prepends items to the
+ The Context struct was substituted with auto attributes
+ Use the osname determined in auto::arch in subsequent configuration
steps (convert_OSNAME branch).
+ Eliminated dependence on Perl 5 '%Config' in auto::format
+ MultiSub PMCs now stringify to the name of their first candidate,
instead of the number of candidates.
+ The platform detection at the start of the configuration process was
+ The 'lineof' method on CodeString objects now precomputes line
to be more efficient on variable-width encoded strings.
+ P6object now supports .WHO and .WHERE methods on protoobjects.
+ A shiny new self-hosting implementation of NQP has been added in
- New NQP available as nqp-rx.pbc or parrot-nqp fakecutable.
- NQP includes direct support for grammars and regexes, including
- NQP has a new PAST-based regex engine (intended to replace PGE).
- Regexes may contain code assertions, parameters, lexical
declarations, and more.
- Double-quoted strings now interpolate scalar variables and closures.
- Subroutine declarations are now lexical by default.
- PAST::Block now supports an 'nsentry' attribute.
- PAST::Var allows 'contextual' scope.
- Attribute bindings now return the bound value.
+ Fixes for the port of Parrot to RTEMS were applied. Yay, first port
to a real time OS!
+ On NetBSD, shared libs are now used.
+ Use the the fixed-sized allocator in the Context and the
+ Many small speed improvements.
- New deprecations
+ MT19937, the Mersenne twisted pseudorandom number generator, is now
hosted on github and
will be removed from the Parrot core. (eligible in 2.1)
+ The 'Parrot_call_*' functions for invoking a sub/method object from
deprecated. They are replaced by 'Parrot_ext_call'. (eligible in 2.1)
+ All bitwise VTABLE functions are deprecated. (eligible in 2.1)
+ All bitwise ops will become dynops. (eligible in 2.1)
- Realized deprecations
+ The slice VTABLE entry was removed.
+ The last traces of the 'malloc' garbage collector were removed.
+ Parrot_pcc_constants() was renamed to Parrot_pcc_get_constants().
+ The deprecated functions from the Embedding/Extension interface were
+ The library YAML/Parser/Syck.pir was removed.
+ The VTABLE function instantiate_str() was removed.
+ Building of parrot_nqp was removed.
+ The test coverage of the time-related ops was much improved.
+ New testing functions in Test::More: lives_ok() and dies_ok().
+ The Perl 5 based test scripts t/op/bitwist.t, t/op/comp.t,
t/op/literal.t, t/op/number.t, t/op/sprintf2.t, and t/op/00ff-dos.t
were converted to PIR.
+ The test scripts t/op/annotate.t and t/op/time.t have begun
to be translated from Perl 5 to PIR.
+ In some tests the dependency on %Config from Perl 5 was eliminated.
+ The meaning of 'p' means in NCI function call signatures was clarified.
+ The stub for a new language, as created by mk_language_shell.pl,
now relies on the PIR-based tools, which are replacing the Perl
+ The library Configure.pir was added.
+ The library distutils.pir was added.
+ The mailing list parrot-users and a corresponding google group was
+ Many bugfixes, code cleanups, and coding standard fixes.
Many thanks to all our contributors for making this possible, and our
for supporting this project. Our next scheduled release is December