ひとり勉強会

ひとり楽しく勉強会

2007-02-10から1日間の記事一覧

まとめ

今日は、YARV仮想マシンの実行時のデータ構造についてと、実際にコードの実行に移るまでのそのセットアップについて見てみました。次回は、実際に仮想マシン語を実行する関数 th_eval_body の方に行く予定です。

実行開始

初期化後、Rubyソースのコンパイルが行われて、コンパイル結果の命令列データが yarvcore_eval_iseq 関数に渡されます。ここがVMによる実行の開始点です。 static VALUE yarvcore_eval_iseq(VALUE iseq) { return yarv_th_eval(GET_THREAD(), iseq); } 指定…

データ構造とその初期化

VM まず、YARV の仮想マシンを表すデータ構造があります。yarvcore.h で定義されている yarv_vm_t 構造体です。 typedef struct yarv_vm_struct { VALUE self; ...略... struct yarv_thread_struct *main_thread; struct yarv_thread_struct *running_thread…

YARV ソースコード勉強会 (12)

最近曜日の感覚がおかしくなってきた hzkr です。今日は、YARV の仮想マシンの実装の入り口をのぞきはじめます。