- Notifications
You must be signed in to change notification settings - Fork1
Perl6を用いたコード例の日本語コメント付きのものです。
License
perl6-users-jp/perl6-examples
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
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/crustupStage start : 0.000Stage parse : 8.409Stage syntaxcheck: 0.000Stage ast : 0.000Stage optimize : 0.003Stage mast : 0.019Stage mbc : 0.001Stage moar : 0.000Usage: 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 するので、速くなります。
https://github.com/shoichikaji/mi6 があります。モジュール作るときはこれ使うのがおすすめです。
require ::($module_name);::($module_name).new;
Stage mbc : Killed
などと出ていませんか?
現状の rakudo のビルドは 800MB ほどのメモリを必要とするため OOM が走ってしまうことがあります。
OOM が走る場合にはメモリを増やしてください。
perl6 --target=ast -e 'my @a = $_.split(/\s/)'
のようにすると、良い感じに動くようになります。
環境変数RAKUDO_MODULE_DEBUG=1
を設定して実行してみましょう.perl6 の実行オプションに--stagestats
や--ll-exceptions
を付与して実行してみるのも手です.
またstrace
を使ってシステムコールを見るというのも選択肢の一つとなるでしょう.
cd /path/to/MoarVM && perl Configure.pl --prefix=/tmp/perl6/ --make-installcd /path/to/nqp && perl Configure.pl --prefix=/tmp/perl6/ --backends=moar --make-installcd /path/to/rakudo && perl Configure.pl --prefix=/tmp/perl6/ --backends=moar --make-install
などとして,rakudo をビルドしつつ開発をすることが可能です.
sub EXPORT
を利用してください。
About
Perl6を用いたコード例の日本語コメント付きのものです。
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Contributors3
Uh oh!
There was an error while loading.Please reload this page.