猿でもできる ruby の落とし方

最近 ruby 1.9 の小さいバグを見つけては ruby-dev に報告しておるのですが、大体こんな感じの馬鹿コードを走らせて探してました。

chars =
    [ " ", "%", "%Q", "%q", "%r", "%w", "%W", "%s", "!", "\"", "#",
      "$", "%", "&", "'", "(", ")", "*", "+", ",", "-", ".", "/",
      ":", ";", "<", "=", ">", "?", "@", "[", "\\", "]", "^", "_",
      "{", "|", "}", "~"]

chars.each do |c1| s1 = c1
chars.each do |c2| s2 = s1 + c2
chars.each do |c3| s3 = s2 + c3
chars.each do |c4| s4 = s3 + c4
chars.each do |c5| s5 = s4 + c5
    begin
        eval s5
    rescue Exception
    end
end
end
end
end
end

本能と直感に従って chars の文字列を足したり引いたりすると、時間はかかりますが結構落ちました。目的もなくコードを読むのは苦行ですが、バグ探しなら楽しくなりますよね (自分のバグは嫌ですが) 。バグを見つけると他のバグもなんとなく見えてきますし。おかげで ruby のコードが少し把握できた気がするようなしないような。3% くらい。あと gdb が backtrace と frame と list と print だけ使えるようになった (笑)
しかしこの方法ではパーサのしょうもないバグしか見つかりません。主要な制御構造やイテレータを列挙するコードを書こうかなぁ。Haskell あたりで。