Parrot

A free virtual machine designed to efficiently compile and execute bytecode for dynamic languages
Download

Parrot Ranking & Summary

Advertisement

  • Rating:
  • License:
  • Freeware
  • Price:
  • FREE
  • Publisher Name:
  • Parrot Foundation
  • Operating Systems:
  • Mac OS X
  • File Size:
  • 3.8 MB

Parrot Tags


Parrot Description

A free virtual machine designed to efficiently compile and execute bytecode for dynamic languages Parrot currently hosts a variety of language implementations in various stages of completion, including Tcl, Javascript, Python, Perl 6, Ruby, Lua, Scheme, PHP, APL, and a .NET bytecode translator. NOTE: If you do not want to build Parrot from sources you can use Macports to easily install it using the following command in a Terminal window:sudo port install parrot What's New in This Release: · Functionality · 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 added. · 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 C-land. · 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 search path. · The Context struct was substituted with auto attributes (context_auto_attrs branch). · Use the osname determined in auto::arch in subsequent configuration steps (convert_OSNAME branch). · Eliminated dependence on Perl 5 '%Config' in auto::format (auto_format_no_Config branch). · 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 improved. · The 'lineof' method on CodeString objects now precomputes line number information · to be more efficient on variable-width encoded strings. · P6object now supports .WHO and .WHERE methods on protoobjects. · Compilers · A shiny new self-hosting implementation of NQP has been added in ext/nqp-rx. · New NQP available as nqp-rx.pbc or parrot-nqp fakecutable. · NQP includes direct support for grammars and regexes, including protoregexes. · 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. · PCT · PAST::Block now supports an 'nsentry' attribute. · PAST::Var allows 'contextual' scope. · Attribute bindings now return the bound value. · Platforms · 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. · Performance · Use the the fixed-sized allocator in the Context and the CallSignature PMC. · 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 C are · 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 removed. · The library YAML/Parser/Syck.pir was removed. · The VTABLE function instantiate_str() was removed. · Building of parrot_nqp was removed. · Tests · 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/inf_nan.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. · Documentation · The meaning of 'p' means in NCI function call signatures was clarified. · Tools · 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 5-based tools. · The library Configure.pir was added. · The library distutils.pir was added. · Miscellaneous · The mailing list parrot-users and a corresponding google group was created, · http://groups.google.com/group/parrot-users. · Many bugfixes, code cleanups, and coding standard fixes.


Parrot Related Software