Wednesday, December 17, 2008

Parrot 0.8.2 "Feliz Loro" Released!

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



Parrot 0.8.2 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 href="http://subversion.tigris.org/">Subversion on
our source code repository to get the latest
and best Parrot code.



Parrot 0.8.2 News:

- Implementation
+ fixed lexical semantics
+ added the 'capture_lex' opcode
+ added automatic resume for nonfatal exceptions
+ added multidispatch cache
+ applied miscellaneous performance improvements, including startup time
+ fixed several bugs and leaks found by Coverity Scan
+ removed race conditions from parallel testing
- Compilers
+ IMCC
- removed undocumented .param int => syntax
- .line directive now only takes an integer argument
- new .file directive to specify the file name being compiled
+ PCT
- properly handles lexical generation and closure semantics
- uses :subid instead of name lookups to reference PAST::Block nodes
- added PAST::Control node type (exception handlers)
+ PGE
- add support for and assertions
- Match objects use Capture PMC instead of Capture_PIR
+ PIRC
- add macro handling to PASM mode
- disable vanilla register allocation in PASM mode, but do allow optimization
- add tests and bug fixes
- first bits of bytecode generation. No sub calling/returning yet.
- Languages
+ Rakudo
- fixed lexical handling and recursion
- refactored subtypes implementation
- support for quotes with multi-character delimiters
- implemented list slices (Positional role)
- list assignment
- reduction meta operators
- hyper meta operators
- cross meta operators
- more builtin functions
- added Nil type
- basic support for protos
- iterator on filehandle objects
- basic support for exception handlers
- warn
+ Lua
- added complex & mathx libraries
- merged LuaClosure & LuaFunction PMC
+ Pipp
- added support for a return value from user defined functions
- added incomplete implemention of 'require_once'
+ Ecmascript
- parser fixes, parses spidermonkey's top level test/shell.js
- Deprecations
+ PARROT_API is now PARROT_EXPORT
+ PIR
- :lexid is now :subid
- .arg is now .set_arg
- .result is now .get_result
- .yield (in .begin/end_yield) is now .set_yield
- .return (in .begin/end_return) is now .set_return
- .namespace x / .endnamespace x syntax is removed
+ Capture_PIR (runtime/parrot/library/Parrot/Capture_PIR.pir)



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



Enjoy!

4 comments:

samdc said...

I installed it on my Windows XP machine. I want to try Perl6, but making the binary, I get this error:

C:\parrot-0.8.2\bin>pbc_to_exe.exe "C:\parrot-0.8.2\languages\perl6\perl6.pbc"
Unable to open filehandle
current instr.: '_config' pc 6 (library/config.pir:54)
called from Sub 'handle_args' pc 241 (pbc_to_exe.pir:99)
called from Sub 'main' pc 68 (pbc_to_exe.pir:29)


Am I missing something? or are there any other procedure other than this post by chromatic.

samdc said...

ok, I searched and found this.
Solution is to create a batch file instead as follows:

@echo off
rem adjust the path below to suit your environment
set PARROT_ROOTDIR=c:\parrot-0.8.2
%PARROT_ROOTDIR%\bin\parrot.exe %PARROT_ROOTDIR%\languages\perl6\perl6.pbc %*

I saved it as C:\parrot-0.8.2\bin\perl6.cmd

Then I added this to my PATH env variable: C:\parrot-0.8.2\bin\

Now this works:
C:\dev\perl6>perl6 hello.pl
Hello World!

Hurray, now I'm ready to play with perl6. Thanks so much!

samdc said...
This comment has been removed by the author.
samdc said...

I wrote a post about my install experience here: http://samdelacruz.blogspot.com/2008/12/want-to-try-perl6-heres-how-to-get.html