2020-04-02: Crystalにコントリビュートしていくぞ
やったこと
Crystalにコントリビュートした
新年度なので気持ちを切り替えてCrystalをやっていく。
とりあえず3つほどPRを出した。
1つ目は、Regex#hashとRegex::MatchData#hashを実装したというもの。
RegexとRegex::MatchDataは独自の==を実装しているのだけど、一方でhashが実装されておらず、値が等しいのにHashに挿入すると別になる、という場合があったので、それの修正。
https://github.com/crystal-lang/crystal/pull/8986
2つ目はcrystal tool expandがrequireを展開して探索するように修正した。
ついでにrequireを展開した結果も見れるようになった。
前者はissueが立っていたので、後者に関しては完全に勢いなのだけど、普通に便利なので採用されてほしい。
まあ分けろと言われたら分ける。
https://github.com/crystal-lang/crystal/pull/8987
3つ目はRegex#matches?とString#matches?の追加。
この2つは#matchメソッドと同じようにマッチするけど、返り値がtrueかfalseで、結果のMatchDataをアロケートしないという違いがある。
man pcreapiを読んで適当に実装してベンチマークを書いたらそこそこ早かったのでPRを投げた。
多分、標準ライブラリの#matchを使ってる部分の一部はmatches?で置き替えられると思うので、それはそれでやりたいところ。
(まあそういうのは自分がやらなくてもいいんだけど)
https://github.com/crystal-lang/crystal/pull/8989
久しぶりなので色々やれることがあったなぁ、という気持ちです。
ミリシタ
ハロコンイベはじまり。
さすがにモチベが低め。
前回がんばったので許して。
シャニマス
あさひ引いたぞ。
この演出最高か?
https://twitter.com/make_now_just/status/1245709795388055558
なおフェスは勝てない模様。しんどい‥‥。