changeset 50:619edd118aab

add about test
author Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Fri, 09 Nov 2018 19:31:27 +0900
parents 933dbfa8f06f
children baba702fb22b
files Paper/anatofuz.pdf Paper/anatofuz.tex
diffstat 2 files changed, 6 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
Binary file Paper/anatofuz.pdf has changed
--- a/Paper/anatofuz.tex	Fri Nov 09 19:24:53 2018 +0900
+++ b/Paper/anatofuz.tex	Fri Nov 09 19:31:27 2018 +0900
@@ -382,7 +382,7 @@
 \section{MoarVMのデバッグ}
 
 MoarVM自体のデバッグはMoarVMのリポジトリにテストコードが付随していない為単体では実行不可能である.
-本研究ではMoarVMのデバッグにおけるCデバッガの使用方法とMoarVMのテスト方法についても考案する.
+本研究ではMoarVMのデバッグにおけるCデバッガの使用方法とMoarVMのテスト方法についても示す.
  
 \subsection{MoarVMのBytecodeのデバッグ}
 moarに対してMoarVM bytecodeをdumpオプションを付けて読み込ませるとMoarVMのbytecodeがアセンブラの様に出力される.
@@ -413,8 +413,8 @@
 
 オリジナル版では実際に実行する命令処理はラベルに変換されてしまう為名前をデバッガ上では出力できないが, CbCでは出力する事が可能である.
 CbCとオリジナルのCODES, LABELの添字は対応している為,ログの解析を行う際はそれぞれの添字を抽出し違いが発生している箇所を探索する.
-これらはscriptコマンドが作成したログを元に異なる箇所を発見するスクリプトを用意し自動化する.(Code \ref{logs2.txt})
-\lstinputlisting[label=logs2.txt, caption=バイトコードの差分検知の一部分]{./src/logs2.txt}
+これらはscriptコマンドが作成したログを元に異なる箇所を発見するスクリプトを用意し自動化する.(Code \ref{logs2})
+\lstinputlisting[label=logs2, caption=バイトコードの差分検知の一部分]{./src/logs2.txt}
 
 違いが生じている箇所が発見できた場合, その前後のCodeGear及びディスパッチ部分にbreak pointをかけ,それぞれの変数の挙動を比較する.
 主にcbc\_return系の命令が実行されている場合は, その直前で命令を切り替えるcbc\_invoke系統の命令が呼ばれているが,この周辺で何かしらの違いが発生している可能性が高い.
@@ -423,8 +423,9 @@
 \subsection{MoarVMのテスト方法}
 
 MoarVMは単体で実行する事が不可能である.
-またNQPのリポジトリに付随するテストはnqpで書かれている為, MoarVMのテストはNQPリポジトリのファイルを直接使う場合は出来ない.
-今回は正常に動くMoarVM, NQPを用意しnqpを経由してデバッグ
+またNQPのリポジトリに付随するテストはnqpで書かれている為, NQPをビルド出来ない場合MoarVMのテストを行う事が出来ない.
+その為, 正常に動作しているMoarVMとNQPを用意し, このNQP側からMoarVMByteCodeにNQPのテストを変換する.
+変換されたMoarVMByteCodeはMoarバイナリに渡す事で実行可能であり, テストを行う事が出来る.
 
 \subsection{CbCコンパイラによるバグ}
 現在までのCbCは複数個の入出力をCodeGearに与えるユースケースで利用していた.