Acme::Perl::VM

Shibuya.pm#11まであと一週間ですね!
Acme::Perl::VM(APVM)のコアがほぼできたので,CPANにアップしました。今のところ意外なほど順調です。

if/for/whileはできますが,foreachなどはまだできません。配列やハッシュの操作もできません。というかHello, world!に毛が生えたくらいしかできません。

[Acme-Perl-VM]$ perl -Ilib -MAcme::Perl::VM::Run -e 'print "Hello, world!\n"'
Hello, world!

環境変数APVM_DEBUGにtraceと設定すると,実行されるPPCODEを出力します。

[Acme-Perl-VM]$ export APVM_DEBUG=trace
[Acme-Perl-VM]$ perl -Ilib -MAcme::Perl::VM::Run -e 'print "Hello, world!\n"'
.NEXTSTATE (-e:1)
.PUSHMARK
.CONST
.PRINT
Hello, world!
.LEAVE

ちゃんとAPVMの制御下で実行されていますね。

また,for(my $i = 0; $i < 10; $i++){ } などでprint()を囲むと大量のPPCODEが実行されることがわかります。ループを回すのも大変です。