ここ最近の出来事をまとめてみた。
ruby/specの作者とPRを交換した
前回のブログを公開した所、ある日メンションがとんできた。
@_ksss_ I managed to run some Fixnum specs of ruby/spec on mruby. I made it work with iij/mruby, mrbgems and modifying mspec locally a bit
— Benoit Daloze (@eregontp) September 11, 2016
@_ksss_ I am interested in what you're doing with ruby/spec, feel welcome to open an issue for discussion :)
— Benoit Daloze (@eregontp) September 11, 2016
このときは知らなかったけど、CRubyコミッタでruby/specの作者の@eregonさんだった。
僕の英語力は幼稚園児もびっくりの低さなんだけど、そんなことは脇においてハートをぶつけてみた。 僕は英語をGitHubでおぼえたフシがある。 ひたすらmruby-specを作ったときに培った知見を書きなぐってみた。
ruby/mspecをforkしていたので、この差分もまとめてPRを出した。 mrubyでmspecを動かすための、最小限度の変更。
Support mruby fix #16 by ksss · Pull Request #17 · ruby/mspec · GitHub
このissueでいろいろフィードバックを送ると、あれよあれよとruby/mspecにcommitが積まれていった。 やはりすごい人はアクティブだ。
さらにmruby-spec側にもPRを送ってくれた。
このアクティブさには圧倒されるばかりだけど、こちらも最低限やりたいことを伝えたりしていろいろやり取りした。
とりあえずハートは伝わったっぽい。ありがとうGoogle翻訳。ありがとうWeblio。
そんなこんなでmruby-specは細かい依存がどんどんなくなっていって、ruby/mspecのお作法に乗った作りにパワーアップした。 なにせ作者の助けを借りているのだ。
互いにフィードバックを送り合って高め合う姿勢がすごくよい。これだからOSSは楽しすぎてやめられない。
ライブラリにもフィードバックを送りまくった
https://github.com/iij/mruby-io/pull/65
https://github.com/mattn/mruby-require/pull/31
https://github.com/mattn/mruby-require/pull/32
https://github.com/mattn/mruby-require/pull/34
https://github.com/mattn/mruby-require/pull/35
mruby-specではmattn/mruby-requireをforkしていたので、この差分を還元すべく怒涛のmattn攻めを敢行。 もちろんすべてCRubyと同じ動作になるように配慮している。
Segmentation fault on GC · Issue #44 · mattn/mruby-thread · GitHub
この問題は1週間ぐらい悩んだけど、結局解決にまではいたらなかった。。。 おかげでthreadを使ったときのデバッグ方法や、GCの仕組みに詳しくなれたのでよしとする。
GCについては作者のblogが一番参考になった。
mruby本体
https://github.com/mruby/mruby/issues/3214
はちょっとなおし方がわからず難しそう。。。 CRubyがどういうふうになっているのか調べなくちゃなあ。
https://github.com/mruby/mruby/pull/3217
breakのおもしろい挙動を見つけたのでなおしてみた。vm関連はムズカシイ。
もはやmruby-spec関係無い日記
ruby/specにも初PR出した
mruby-signalをいじっていたらSignal.signame
のspecがないのを見つけたのでpatchを書いてみた。
windowsのsignalを試す環境がなくてぐぬってたけど、全環境で使える魔法の数字でなんとかなった。
ruby/rubyにもPR出した
ruby/specがないけど、じゃあruby/rubyではどうなってるのと思ってドキュメント見てみたら異常ケースが書いてなかったので追加してみた。
るりまはなおってた
「るりまも直さなきゃなあ」と思っていたらruby/rubyのPRを見たznzさんによって直されていた。 やはりすごい人はアクティブだ。