Skip to content

Perl 6 Roast Cleanup

Will Coleda edited this page May 2, 2015 · 11 revisions

Perl 6 Roast Cleanup

In anticipation of the Perl 6 Release in 2015, we want to make sure our test suite is in good shape. BTW, fudging is a technical term; we have a fudge program that takes the existing test files and "fudges" them so that each implementation or backend of perl 6 can have a slightly different view of the same test file.

This project can serve as a chance to get your feet wet with Perl 6; No particular knowledge about Perl 6 is required, but you'll get to see a lot of it.

Note that Rakudo is the name of the most complete Perl 6 compiler; it will be the first one that is shipped to meet the Perl 6 spec.

Tasks for this project can include

  • Insuring all todo/skipped tests have an RT that is documented in the test file

  • Fudging existing test files so they are run, even if they don't pass yet.

  • Helping design a system that lets us cut a copy of the initial Perl 6 Spec from the roast repository.

    Roast is currently a living document that changes in concert with the various implementations. We need to pick a set of tests, and a version of those tests, that correspond to the Perl6-2015 spec. Should work with the existing "fudge" system used to mark tests for various implementations.

  • Actually fixing Rakudo Perl 6 so it passes fudged tests!

Getting Ready

If you want to be able to get an head start, you'll want to bring a laptop that already has a working Perl 6 Rakudo checkout. Follow these steps to have a Perl 6 you can hack on.

  • Clone Rakudo

    https://github.com/rakudo/rakudo.git is the https clone url from github.

  • Build Rakudo

    Rakudo has multiple possible backends; for speed of development and completeness, we'll be using the MoarVM backend for this project. First we configure Rakudo for installation in our build directory (./install) with:

    perl Configure.pl --backends=moar --gen-moar

    This requires that you have git in your path and will grab a copy of NQP (Not Quite Perl 6), which in turn will grab a copy of the MoarVM (a virtual machine designed and built specifically for Perl 6). If you can't get a git binary, I can step you through on the day off to clone things into the proper places for building. Once the config is done, then build it:

    make -j install or nmake install

    This will generate a ./perl6 executable. You can now experiment with ./perl6 - there's a REPL prompt if executed with no args, it supports -e like ./perl.

  • Test Rakudo

    To run the rakudo-specific tests, use make test. To run the specification tests, use make spectest or make stresstest (The latter runs a lot more tests, some long running). The last two targets here will check out a copy of the perl 6 test suite locally via git again.

Other Resources

Now that you have a working copy of Perl 6 locally, check out http://examples.perl6.org/, http://docs.perl6.org/, and http://design.perl6.org/ for sample code, docs, and design docs.

Participants

Will Coleda, [email protected] (Mentor)

Justin DeVuyst, [email protected]

Steve Lembark <[email protected]> (Mentor, sort of...)