Rakudo Perl 6 development release #17 ("Stockholm")

On behalf of the Rakudo development team, I'm pleased to announce the May 2009 development release of Rakudo Perl #17 "Stockholm". Rakudo is an implementation of Perl 6 on the Parrot Virtual Machine [1]. The tarball for the May 2009 release is available from http://github.com/rakudo/rakudo/downloads .

Due to the continued rapid pace of Rakudo development and the frequent addition of new Perl 6 features and bugfixes, we continue to recommend that people wanting to use or work with Rakudo obtain the latest source directly from the main repository at github. More details are available at http://rakudo.org/how-to-get-rakudo .

Rakudo Perl follows a monthly release cycle, with each release code named after a Perl Mongers group. This release is named "Stockholm"; Stockholm Perl Mongers will be holding a Perl 6 hackathon on May 29 [3]. Perl 6 developer Carl Mäsak is a member of Stockholm Perl Mongers and a main author of November [4], Druid [5], proto [6], and other Perl 6-based packages. Carl also contributes patches to Rakudo, and has been stress-testing Rakudo over the past year, submitting nearly 400 bug reports.

In this release of Rakudo Perl, we've made the following major changes and improvements:

  • Rakudo is now passing 11,342 spectests, an increase of 875 passing tests since the April 2009 release. With this release Rakudo is now passing 68% of the available spectest suite.
  • We now have an updated docs/ROADMAP .
  • Errors and stack traces now report the file name and line number in the original source code.
  • Some custom operators can be defined, and it's possible to refer to operators using &infix:<op> syntax.
  • We can start to load libraries written in other Parrot languages.
  • Regexes now produce a Regex sub.
  • More builtin functions and methods have been rewritten in Perl 6 and placed as part of the setting.
  • There are many additional improvements and features in this release, see docs/ChangeLog for a more complete list.

The development team thanks all of our contributors and sponsors for making Rakudo Perl possible. If you would like to contribute, see http://rakudo.org/how-to-help , ask on the perl6-compiler@perl.org mailing list, or ask on IRC #perl6 on freenode.

The next release of Rakudo (#18) is scheduled for June 18, 2009. A list of the other planned release dates and codenames for 2009 is available in the "docs/release_guide.pod" file. In general, Rakudo development releases are scheduled to occur two days after each Parrot monthly release. Parrot releases the third Tuesday of each month.

Have fun!

References:
[1] Parrot, http://parrot.org/
[2] Stockholm.pm, http://sthlm.pm.org/
[3] Stockholm Perl 6 hackathon, http://vic20.blipp.com/pipermail/kameler/2009-May/000318.html
[4] November wiki engine, http://github.com/viklund/november/
[5] Druid, http://github.com/masak/druid/
[6] Proto, http://github.com/masak/proto/

range by step doesn't work?

the 'status' page says that ranges work but i see this:

$ ./perl6 t/spec/S03-operators/range-by.t
Statement not terminated properly at line 8, near ":by(-1)), "
in Main (src/gen_setting.pm:0)
$

same error in the interactive command line:

> for 1..2:by(2) { say $^x }
Statement not terminated properly at line 1, near ":by(2) { s"
in Main (src/gen_setting.pm:0)
>

am i missing something?

Nice

Compilation worked fine ( 10 min on my old computer, faster than the Oslo release ), debian lenny 2.6.26-2.

Safe from speed, I'm having a lot of fun with rakudo :)
Hope P6 will get the "buzz" it deserves ...
Meanwhile, keep on good work !

Best Regards.

able to build on osx 10.4

i was able to build rakudo and parrot on osx 10.4 by following the simple instructions on rakudo.org page. however, the build took a long time, more than an hour and ate up almost all available physical memory (1Gb) causing the system to swap and other apps unresponsive. i had to close all apps to give most of the ram to cc1 during the build.
it's very encouraging to see nice progress on both rakudo and parrot after such a long wait! hope that the projects will gain more interests as they are getting more mature. thanks for bringing perl6 and parrot closer to reality!

Still cannot compile on OS X, any idea so I can help debug this?

Would like to get involved in Perl 6 / Parrot, but not being able to compile it is a pretty big hurdle to get past for your first project (I've tried twice and failed so far).. Any pointers are appreciated..

/code/rakudo/parrot/parrot -o perl6_s1.pbc perl6.pir
src/string/api.c:762: failed assertion 'encoding'
Backtrace - Obtained 14 stack frames (max trace depth is 32).
Parrot_do_check_events
Parrot_confess
Parrot_str_new_init
Parrot_str_new_constant
Parrot_lib_perl6_group_load
Parrot_init_lib
Parrot_init_lib
Parrot_load_lib
Parrot_Undef_ro_get_vtable
yyparse
imcc_initialize
imcc_run
start
start
make: *** [perl6_s1.pbc] Abort trap

I ran this under "gdb" (Thanks skids!) and ran "bt"

(gdb) bt

0 0x95981e42 in __kill ()

1 0x95981e34 in kill$UNIX2003 ()

2 0x959f423a in raise ()

3 0x95a00679 in abort ()

4 0x009724ec in Parrot_confess (cond=0xbea654 "encoding", file=0xbe1812 "src/string/api.c", line=762) at src/exceptions.c:590

5 0x00901b4b in Parrot_str_new_init (interp=0x801790, buffer=0x734acc "MutableVAR", len=10, encoding=0x0, charset=0x0, flags=12288) at src/string/api.c:762

6 0x00901e71 in Parrot_str_new_constant (interp=0x801790, buffer=0x734acc "MutableVAR") at src/string/api.c:680

7 0x00722d98 in Parrot_lib_perl6_group_load (interp=0x801790) at perl6_group.c:52

8 0x003ff813 in Parrot_init_lib (interp=0x801790, load_func=0x722d60 <Parrot_lib_perl6_group_load>, init_func=0) at src/dynext.c:386

9 0x003ff9e3 in run_init_lib (interp=0x801790, handle=0x818b30, lib_name=0x289228, wo_ext=0x289228) at src/dynext.c:452

10 0x00400119 in Parrot_load_lib (interp=0x801790, lib=0x263dd0, initializer_unused=0x0) at src/dynext.c:656

11 0x005dafd7 in do_loadlib (interp=0x801790, lib=0x818940 "'perl6_group'") at imcc.y:1021

12 0x005dc52a in yyparse (yyscanner=0x8181b0, interp=0x801790) at imcc.y:1159

13 0x005e9d75 in compile_to_bytecode (interp=0x801790, sourcefile=0xbffffa47 "perl6.pir", output_file=0xbffffa3a "perl6_s1.pbc") at compilers/imcc/main.c:973

14 0x005ea0dc in imcc_run (interp=0x801790, sourcefile=0xbffffa47 "perl6.pir", argc=1, argv=0xbffff994) at compilers/imcc/main.c:1072

15 0x000025f9 in main (argc=1, argv=0xbffff994) at src/main.c:61

skids advised me to find out Parrot's encoding.. I typed the below:

(gdb) print Parrot_fixed_8_encoding_ptr
$1 = (ENCODING *) 0x801d60

compile_to_bytecode

1 0x95981e34 in kill$UNIX2003 ()

2 0x959f423a in raise ()

3 0x95a00679 in abort ()

4 0x009724ec in Parrot_confess (cond=0xbea654 "encoding", file=0xbe1812 "src/string/api.c", line=762) at src/exceptions.c:590

5 0x00901b4b in Parrot_str_new_init (interp=0x801790, buffer=0x734acc "MutableVAR", len=10, encoding=0x0, charset=0x0, flags=12288) at src/string/api.c:762

6 0x00901e71 in Parrot_str_new_constant (interp=0x801790, buffer=0x734acc "MutableVAR") at src/string/api.c:680

7 0x00722d98 in Parrot_lib_perl6_group_load (interp=0x801790) at perl6_group.c:52

8 0x003ff813 in Parrot_init_lib (interp=0x801790, load_func=0x722d60 <Parrot_lib_perl6_group_load>, init_func=0) at src/dynext.c:386

9 0x003ff9e3 in run_init_lib (interp=0x801790, handle=0x818b30, lib_name=0x289228, wo_ext=0x289228) at src/dynext.c:452

10 0x00400119 in Parrot_load_lib (interp=0x801790, lib=0x263dd0, initializer_unused=0x0) at src/dynext.c:656

11 0x005dafd7 in do_loadlib (interp=0x801790, lib=0x818940 "'perl6_group'") at imcc.y:1021

12 0x005dc52a in yyparse (yyscanner=0x8181b0, interp=0x801790) at imcc.y:1159

13 0x005e9d75 in compile_to_bytecode (interp=0x801790, sourcefile=0xbffffa47 "perl6.pir", output_file=0xbffffa3a "perl6_s1.pbc") at compilers/imcc/main.c:973

14 0x005ea0dc in imcc_run (interp"ps3"=0x801790, sourcefile=0xbffffa47 "perl6.pir", argc=1, argv=0xbffff994) at compilers/imcc/main.c:1072

15 0x000025f9 in main (argc=1, argv=0xbffff994) at src/main.c:61

skids advised me to find out Parrot's encoding.. I typed the below:

(gdb) print Parrot_fixed_8_encoding_ptr
$1 = (ENCODING *) 0x801d60

Same problem.

I do have exactly the same problem. with
perl Configure.pl --gen-parrot
I have had a good result with "Bratislava", downloading and compiling Parrot but not installing it and leaving it on Desktop.
Then installing "Bratislava"

perl Configure.pl
make

It did find the parrot folder and did not encounter any problem.

I did not already try to install Stockholm.
Will do it to day evening.

Would like to get involved in

Would like to get involved in Perl 6 / Parrot, but not being able to compile it is a pretty big hurdle to get past for your first project (I've tried twice and failed so far).. Any pointers are appreciated..

/code/rakudo/parrot/parrot -o perl6_s1.pbc perl6.pir
src/string/api.c:762: failed assertion 'encoding'
Backtrace - Obtained 14 stack frames (max trace depth is 32).
Parrot_do_check_events
Parrot_confess
Parrot_str_new_init
Parrot_str_new_constant
Parrot_lib_perl6_group_load
Parrot_init_lib
Parrot_init_lib
Parrot_load_lib
Parrot_Undef_ro_get_vtable
yyparse
imcc_initialize
imcc_run
start
start
make: *** [perl6_s1.pbc] Abort trap

I ran this under "gdb" (Thanks skids!) and ran "bt"

(gdb) bt

0 0x95981e42 in __kill ()

1 0x95981e34 in kill$UNIX2003 ()

2 0x959f423a in raise ()

3 0x95a00679 in abort ()

4 0x009724ec in Parrot_confess "fx15 biber hapı 100 kontör mp3 indir milenyum"
(cond=0xbea654 "encoding", file=0xbe1812 "src/string/api.c", line=762) at src/exceptions.c:590

5 0x00901b4b in Parrot_str_new_init (interp=0x801790, buffer=0x734acc "MutableVAR", len=10, encoding=0x0, charset=0x0, flags=12288) at src/string/api.c:762

6 0x00901e71 in Parrot_str_new_constant (interp=0x801790, buffer=0x734acc "MutableVAR") at src/string/api.c:680

7 0x00722d98 in Parrot_lib_perl6_group_load (interp=0x801790) at perl6_group.c:52

8 0x003ff813 in Parrot_init_lib (interp=0x801790, load_func=0x722d60 <Parrot_lib_perl6_group_load>, init_func=0) at src/dynext.c:386

9 0x003ff9e3 in run_init_lib (interp=0x801790, handle=0x818b30, lib_name=0x289228, wo_ext=0x289228) at src/dynext.c:452

10 0x00400119 in Parrot_load_lib (interp=0x801790, lib=0x263dd0, initializer_unused=0x0) at src/dynext.c:656

11 0x005dafd7 in do_loadlib (interp=0x801790, lib=0x818940 "'perl6_group'") at imcc.y:1021

12 0x005dc52a in yyparse (yyscanner=0x8181b0, interp=0x801790) at imcc.y:1159

13 0x005e9d75 in compile_to_bytecode (interp=0x801790, sourcefile=0xbffffa47 "perl6.pir", output_file=0xbffffa3a "perl6_s1.pbc") at compilers/imcc/main.c:973

14 0x005ea0dc in imcc_run (interp=0x801790, sourcefile=0xbffffa47 "perl6.pir", argc=1, argv=0xbffff994) at compilers/imcc/main.c:1072

15 0x000025f9 in main (argc=1, argv=0xbffff994) at src/main.c:61

skids advised me to find out Parrot's encoding.. I typed the below:

(gdb) print Parrot_fixed_8_encoding_ptr
$1 = (ENCODING *) 0x801d60

Yes!

That worked for me as well.. I svn'd the latest parrot, then downloaded the tar.gz of Rakudo, compiled Parrot, and then compiled Rakudo.. Wow, that last step:

pbc_to_exe perl6.pbc cc -o perl6.o -I/code/parrot/include

Took my system out for at least 3 or 4 minutes.. (Macbook Pro, 2.16ghz, 2G RAM).. But WOOT! I have Perl 6 ON MY COMPUTER!!! Now to start playing :-)

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.