ひとり勉強会

ひとり楽しく勉強会

2007-03-05から1日間の記事一覧

まとめ

しばらく書いてなかったらひとり勉強会の書き方を忘れています(あせ。なんか変な感じ。 次回は、insns.def の内容を面白そうなところをつまみ食いしながら一気に眺めてみようと思います。あと読んでみたいのは、スレッド周りの実装くらいでしょうか。という…

th_eval_body:例外処理

改めて話を戻して、例外処理について。raise〜rescueやthrow〜catchの他にも、break/redo/next, returnなども同じ仕組みを使って実装されています。この辺りの処理は th_eval_body にまとまっています。基本的な流れとしては… exception_handler: cont_pc = …

th_eval_body:実行

th_set_top_stack で制御フレームの設定が終わったら、いよいよ実行開始。th_eval_body 関数です。 VALUE th_eval_body(yarv_thread_t *th) { ... TH_PUSH_TAG(th); if ((state = EXEC_TAG()) == 0) { vm_loop_start: result = th_eval(th, initial); if ((s…

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

一月ぶりのYARV勉強会になってしまいました。今日のリビジョンは r11982 です。いつのまにか yarv_iseq_t が rb_iseq_t になったり、yarv_control_frame_t が rb_control_frame_t になってました。おおお。