2023-04-16: match cacheのリファクタリングをした
やったこと
日常
あまり体調が良くなかった。
昨日のScalaMatsuriではしゃぎすぎたかもしれない。
Ruby
気合で match cache (と呼ぶことにした) のリファクタリングをしていた。
関数名とかを統一したり、色々やったので確実に良くはなったと思う。
https://github.com/ruby/ruby/pull/7724
あと用語集を作った。
用語
- match cache optimization: キャッシュを使った正規表現マッチングの最適化のこと
- match cache: 一度通過した match cache point を記録する (キャッシュする) ためのビット配列
- match cache point: 文字列上の位置と cache point の組をエンコードした数値
- cache opcode: キャッシュ可能な正規表現の opcode
- cache point: マッチング中のキャッシュ可能な位置。通常は cache opcode = cache point だが、回数指定の繰り返しに対しては、1つの cache opcode に複数の cache point が設定される
これもどこかに残しておきたい。