第三回mruby-spec進捗確認

すでに本人が飽き気味になっていることは世間から全然反応がないからでありウンヌンカンヌン。

Fix bugs

細かいのが多いので一覧はこちらをどうぞ。

https://github.com/mruby/mruby/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aclosed%20author%3Aksss%20created%3A2016-10-01..2017-01-11%20

所感

mruby-specを回してみて無限ループしているっぽい部分をなおした。 (0..Float::INFINITY)みたいなRangeで無限ループしてほしくない場面で無限ループすることが多かった。 無限Range系のバグはほかにもありそうだ。

最近ではshopifyという会社がmrubyを利用しているらしく、沢山のバグ報告がissueに上がっている。 かなり重箱なものが多い印象(NoMethodError = Fixnumした時にsegvするなど)。 しかしながら再現できる小さいコードがついている事が多いのでちまちま潰していくのに向いている。

これらのバグも、修正したときは念のためmruby-specで回したりしている。

他にも数が多くなおしきれていないので、今Hackし放題ですよ。

おきにいりのPR

https://github.com/mruby/mruby/pull/3369

Rubyでの実装とCでの実装で境界が曖昧な感じがmrubyのヨサな気がする。 Cで書くとパフォーマンスが出せるし、Rubyで書くと短く書けるので、メンテしやすくメモリ系のバグも起きにくい。

Unsupported specs

Opalはいかにしてrubyspecをいい感じにアレしているのか - 近&況

こちらの記事のおかげでmspecにdescription指定でskipする機能があることに気がつけました。ありがとうございます。

というわけで、実装してみた。

github.com

現時点ではどうしてもサポートできないfeatureをskipできるようにした。 落ちたspecのdescriptionをtextファイルにコピペするだけ。 これは、昨今のDSL流行に対するアンチテーゼである。