2021-05-04: recheck 色々やってる
やったこと
ReDoS
UString の中身をただの String にする変更をした。
(これまでは IndexedSeq[UChar] だった)
目的はデータ構造を単純にすることによる高速化と、UString.from のタイミングでユニコードかどうかを指定する煩わしさの軽減。
Interpreter とかは UString を受け取るから、UString を作るのは別で、どっちも元の正規表現が u フラグを持ってるか見ないといけないのが厄介だったので。
でも ignoreCase 対応の canonicalize は結局必要なんだよな。どうしたものか。
https://github.com/MakeNowJust-Labo/recheck/pull/67
fuzz で動かした時間が31分から26分になったので、かなり高速化できたことになる。
ほんまかいなって感じだけど、事実そうなっているのだから仕方ない。
hybrid でも20分を切れるようになったのもすごい。
この最適化がどうなるか自信なかったけど、やってみると上手くものだ。
計測は大事。
というか CI でベンチマーク回したいな。
そしてカバレッジを Codecov に送るようにした。
これは lite でやっていてかなり楽だと分かったので。
https://github.com/MakeNowJust-Labo/recheck/pull/68
Codecov のバッジで99.5%くらいだと表示が100%になるんだな、と知った。
そんなこんなでカバレッジを100%にした。
JS バインディングの方もカバレッジを取れるようになったので、主にそっちの方面の修正。
https://github.com/MakeNowJust-Labo/recheck/pull/69
マギレコ
無料10連で100回って水着マミさんを手に入れた。
ピックアップで持ってないのこれだけだったのでありがたい。
https://twitter.com/make_now_just/status/1389577448598110210
ミリシタ
I did+I will のイベントをひたすら走っている。
昨日できなすぎたのでちょっとまずい。
まだ前半戦だしどうにかなるさ。