観察日記 2010-02-01

RubySpecのバグの潰し方

(mame) http://regional.rubykaigi.org/tokyo03 豪華講師陣だな
(hermit_) 東京Ruby会議03 - Regional RubyKaigi [text/html; charset=utf-8]
(ko1_ndk) mameさん講師やればいいのに
(mame) 話すことないし
(ko1_ndk) RubySpecのバグの潰し方
(mame) 1. rubyspec を変える
(mame) 以上

わたしも今日数十個ほどバグを潰したんですが、全てRubySpec側の修正でした。というわけで、現在RubySpecの失敗は36個です。

RubyVMのソースコードの見方

(kosaki) すると、RubyVMのソースコードの見方が分かるんですね。わかります
(shyouhei) VMソースコードの読み方はマジ不明
(ko1_ndk) なん,だと
(shyouhei) まず1.3くらいのソースを、一回読んで、基礎知識をたくわえて、
(shyouhei) それでもちょとまだむずい。
(mame) vm.c はささださんの牙城
(mame) dfp とか lfp とかの不変条件をすぐに忘れるのと
(mame) 全体的に何のためにその処理をしているのかわからないところが多くて困る
(ko1_ndk) なるほど
(shyouhei) 全体理解のためにはinsns.defからなにがどうなってvm.oまで到達するかがMakefile読まんと分からんのが。
(ko1_ndk) そのネタで yarv maniacs を書くか
(mame) vm_exec が難しい
(shyouhei) 「1時間で読むmatzruby」
(mame) 今は 30% くらいはわかってるけど
(ko1_ndk) 1.8 よりも簡単だと思うんだがなあ>VM
(mame) 1.8 は読んだことないのでしらない
(shyouhei) 1.8は読み始めるハードルは低いが、読んだからといって理解はできない。
(kosaki) 意図が謎すぎるということ?
(shyouhei) ruby 1.8はsetjmp/longjmpが乱舞してどっからどこにいくのかまったく分からない素敵コードです。

YARV ManiacsRuby 1.9の実行系を読む人にはバイブルと言ってもいいのではないのでしょうか。まず、全容が分からないと部分を読んでもさっぱり分からないので。まぁ、そんな難解なYARVですが、eval.cやthread.cがVMから分離したのは福音だと思っています。あ、もちろんわたしはさっぱりです。

互換性〜ブラウザ編

IEにあわせて の話。HTML5とか最近の仕様はこの手の互換性維持のためのアルゴリズムが仕様注に記載されていて、もう。

Enumerable#interleave

Enumerable#interleave というメソッドを実装してみた。flattenしたzipという感じだが、欲しい人いる?

http://twitter.com/yukihiro_matz/status/8504330947

そういうのが欲しい人にはチャンスだと思います。