2006-09-15
Error.pmのバージョンが上がっててびっくりした。
メンテナさんが変わったのですね。
具体的に何が変わったのかはドキュメント読んでませんが。とりあえずError::Simpleが付くようになったのが素敵(笑)。
そーいやPerl6の例外処理はどうなってるんでしたっけ。
まるごとPerl!のPerl6特集でも触れられてなかったのが気になるところ。
Parrotがレジスタマシンなのは今のPerlがレジスタマシンだからだと思ってました。
まるごとPerl!のParrotの記事に「Parrotは仮想マシンとしては珍しくレジスタマシンで」的なことが書かれてましたが、それは単に既存のPerlがレジスタマシンだからだと思ってました。ソース読んでないから違うかもしれないけど。
Perlのサブルーチンは
sub foo { my ($bar, $baz) = @_; } foo($hoge, $fuga);
――とか書きますが、@_は$hoge,$fugaそのものなので、これってレジスタ渡しじゃん、と*1。サブルーチンの呼び出しにレジスタ渡しを使うんだから仮想マシンはレジスタマシンになってるじゃろ、と思ったわけです。
……そーいや戻り値はどうしてるんだろ。ブロックの最後で評価されたものが戻り値になってるので、常に最後の演算結果を保存してるスクラッチパッドみたいなのがあって、それを参照してるのかな*2。