Perl6を用いたコード例の日本語コメント付きのものです。
Perl6 Design Documents が仕様になっています。
Using Perl6(日本語版) を読んでみるとよいかもしれません。
rakudo が Perl6 の実装です。Rakudo は MoarVM/JVM を対象として実装されている Perl6 の処理系で、nqp および Perl6 で実装されています。
nqp は not-quite-perl(6) の略で、Perl6 のサブセットです。Perl6 の実装のためにつくられた処理系です。 Perl6 に依存して実装されているわけではなく、汎用のプログラミング言語作成ツールキットになっています。
roast が test suite です。 テストコードは、サンプルコードとして参考になります。
一部、通ってないテストもあることに注意してください。
2015.07.02 バージョンでは、すでに起動速度の最適化が行われており、十分に高速です。以下は Core i7 3.5GHz のマシンでの起動速度です。
time perl6-m -e '0'
perl6-m -e '0' 0.08s user 0.02s system 97% cpu 0.098 total
既存のコードベースが大量にありますので、そんなことにはならないでしょう。 Perl6 がリリースされても Perl5 のメンテナンスは継続されます。
MoarVM とは、Perl6 をターゲットに開発された VM です。JIT なども積んでおり、高速に安定して動作します。
Parrot はもはや Rakudo のメインターゲットではありません。MoarVM をご利用ください。
https://rt.perl.org/Public/ ← が BTS です。
Perl5 で言うところの __PACKAGE__->can("done_testing")
は &::('done_testing')
で実現できます。
panda install Linenoise
するとまともになります。
panda というのがそれです。
Moar の場合、--stagestats オプションでどのステージで時間がかかっているか確認することができます。
$ perl6-m --stagestats -Ilib bin/crustup
Stage start : 0.000
Stage parse : 8.409
Stage syntaxcheck: 0.000
Stage ast : 0.000
Stage optimize : 0.003
Stage mast : 0.019
Stage mbc : 0.001
Stage moar : 0.000
Usage:
bin/crustup [--port=<Int>] [--shotgun] [--workers=<Int>] <appfile> [<host>]
eval-server ついてるのでご利用ください。
./install/bin/perl6-eval-server -cookie TESTTOKEN -app ./perl6.jar
でサーバー起動。
./install/bin/eval-client.pl TESTTOKEN 'run' '-e' 'say 4'
でクライアント走ります。
perl6 のライブラリをインストールするときに、最近の panda だと precompile が行われなくなっています。 precompile とはつまり、.pm ファイルを .moarvm ファイルにコンパイルしておく処理のことです。
Perl6 は開発途中のため、このあたりがまだ手薄です。
https://github.com/perl6-users-jp/perl6-examples/blob/master/bin/perl6-precompile-all を実行するととりあえず全部 precompile するので、速くなります。