2007年12月28日 (金曜日)
08:44:26
#
Life
YARV。
カーネル読書会でYARVの話をきいてきました。
ビデオに録画されていないところで酔っ払いながら適当な話をしてきたので、
一応後で裏をとろうかなとおもってメモをしておきます。
- javascript は sleep などがないらしい。emacs lisp もスレッドがなくてつらい思いをしている。
-
CVS版 oprofile で JIT サポートが入ったブランチが切られており、JavaとC#のVMのプロファイルがとれるようになっている。
-
YARV の命令が800あり、VMのCのコードが50000行あるのであればCPUの命令キャッシュミスの影響が無視できないのではないか。
-
YARVがVMの命令処理系とコンパイラをビルド時に指定できるくらいだったら、
適当に命令セットを決定しそれ用にコンパイラを作成しOSをビルドし、
FPGAでCPUを作成して、「俺CPUアーキテクチャオブザデイ」なシステムをつくることができんじゃね?
これでバッファオーバフローを狙ったシェルコードを書くのが超困難に。
-
ruby は 1+1=2 でない場合がある。でもそれは例外的なので
毎回ifで分岐するんじゃなくて、1+1=2と仮定したコードをデフォルトで実行し、
メソッド定義された時点でバイナリ書き換えすりゃいいんじゃない?
-
Regexp を状態遷移図のテーブルにコンパイルするとかじゃなくて、むしろ
実行コードにコンパイルしてしまったらはやくなるんじゃない?
LLVMコードをはいてLLVMに残りを任せてみたりしたらどうなるか?
なんかもっとあった気がするのですが、後で追加する、かも。
Junichi Uekawa
$Id: dancer-diary.el,v 1.92 2007/08/30 21:46:09 dancer Exp $