# HG changeset patch # User Takahiro SHIMIZU # Date 1541740910 -32400 # Node ID 1abd6fc0abe8ed0f2ae4c782a1258f5232d85e37 # Parent de0f0fa18b717b7deb916267a5be325f65ba9ee4 add detail environment diff -r de0f0fa18b71 -r 1abd6fc0abe8 Paper/anatofuz.pdf Binary file Paper/anatofuz.pdf has changed diff -r de0f0fa18b71 -r 1abd6fc0abe8 Paper/anatofuz.tex --- a/Paper/anatofuz.tex Fri Nov 09 13:49:33 2018 +0900 +++ b/Paper/anatofuz.tex Fri Nov 09 14:21:50 2018 +0900 @@ -232,6 +232,7 @@ \section{CbCによるMoarVM} この章では改良を行ったPerl6処理系であるMoarVMについて述べる. +今回改良を行ったMoarVMは2018.04.01,nqpは2018.04-3-g45ab6e3バージョンで行っている. \subsection{方針} MoarVMそのものをCbCで書き換えることも考えられるがMoarVM自体既に巨大なプロジェクトである為すべてを書き換える事は困難である. その為まず比較的CbCで書き換えることが容易な箇所を修正する. @@ -488,9 +489,10 @@ 今後CbCでの開発をより深く行っていくにあたり,CbCコンパイラそのものの信頼性を向上させる必要がある. MoarVMの開発を行うにあたり新たに発見された複数のバグを修正し,より安定するコンパイラにする為に改良を行う. -現在CbCMoarVMで直接バイトコードを入力した場合のnqpのテストは\%パスする. +現在CbCMoarVMで直接バイトコードを入力した場合のnqpのテストはおおよそパスする. また数値の計算と出力などの簡単なNQPの例題を作成し,オリジナルのNQP,moarvmでバイトコード化したものを入力した際も正常に動作している. -今後はさらに複雑な例題やPerl6の独自文法でも動くかどうかの実験を行う. +しかしNQPのセルフビルドは現在オブジェクトの生成に一部失敗している為成功していない. +今後はさらに複雑な例題やNQPのセルフビルド,Perl6の動作を行っていく. MoarVMではGCからオブジェクトを守る為にMVMROOTというマクロを利用し,局所変数のポインタをスタックに登録する処理を行っている. GCの制御を効率的に行えば本来は必要ない処理であり,実行するとCodeSegmentの優位性が損なわれてしまう.