Skip to content

skaji/perl6-examples

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

perl6-users-jp/examples

Perl6を用いたコード例の日本語コメント付きのものです。

FAQ

Perl6 の仕様はどこ?

Perl6 Design Documents が仕様になっています。

入門ドキュメントとかあるの?

Using Perl6(日本語版) を読んでみるとよいかもしれません。

Perl6 の実装はどこ?

rakudo が Perl6 の実装です。Rakudo は MoarVM/JVM を対象として実装されている Perl6 の処理系で、nqp および Perl6 で実装されています。

nqp ってなに?

nqp は not-quite-perl(6) の略で、Perl6 のサブセットです。Perl6 の実装のためにつくられた処理系です。 Perl6 に依存して実装されているわけではなく、汎用のプログラミング言語作成ツールキットになっています。

Perl6 のテストスイートはどこ?

roast が test suite です。 テストコードは、サンプルコードとして参考になります。

一部、通ってないテストもあることに注意してください。

Perl6 の起動って遅いの?

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 は廃れてしまうの?

既存のコードベースが大量にありますので、そんなことにはならないでしょう。 Perl6 がリリースされても Perl5 のメンテナンスは継続されます。

MoarVM ってなに?

MoarVM とは、Perl6 をターゲットに開発された VM です。JIT なども積んでおり、高速に安定して動作します。

Parrot ってどうなったの?

Parrot はもはや Rakudo のメインターゲットではありません。MoarVM をご利用ください。

Perl6 のバグを発見したのだけど?

https://rt.perl.org/Public/ ← が BTS です。

export された method の実態を取りたいのですが

Perl5 で言うところの __PACKAGE__->can("done_testing")&::('done_testing') で実現できます。

REPL が使いづらいのですが

panda install Linenoise

するとまともになります。

CPAN みたいなものはありますか?

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>]

perl6-jvm の起動遅すぎませんか?

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 するので、速くなります。

About

Perl6を用いたコード例の日本語コメント付きのものです。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Other 89.6%
  • Perl 10.4%