プログラミング言語クラスに参加した。 講義の内容についてはどこかで見られると思うので、個別課題について書く。 個別課題の内容 rubyのpreludeのprecompileという課題に取り組んだ。 preludeというのはインタプリタの起動時に実行されるRubyスクリプトで、内容は MUTEX_FOR_THREAD_EXCLUSIVE(排他制御などに利用する為のVMグローバルなMutex)の定義 rubygem.rbのrequire enc/encdb.so(エンコーディングの定義とそのエイリアス) enc/trans/transdb.so(各エンコーディング間のトランスコーダ)のrequire である。 preludeのRubyコードはprelude.cにCの文字列として埋めこまれていて、rubyは起動時に毎回このコードをYARVの命令列にコンパイルして実行している。 preludeの内