2009/07/02(Thu)
○[NetBSD][GSoC] Efficient wide character regular expression
@
uebayasiさんにメールで教えていただいたのだけど(いつもありがとうございます)
この記事。
要は自分で書くのが難しいことに気付いたので
TREちう実装をmergeするということらしいです。
例年のSoCらしくなってまいりましたwww
30秒ほど眺めただけだけど、mbrtowc(3)で変換して内部wchar_t(=tre_char_t)で処理し
性能対策としてMB_CUR_MAX=1の時だけmbrtowc(3)は使わないちゅー実装みたいね。
こうなるとnvi-1.81のwregex(Henry Spencer regexベース)にmultibyte regexの
皮を被せた場合に比べて、どんぐらい性能優位なんだろかちゅーとこかな。
まぁCitrus的には各encodingに最適化されたregex実装をsetlocale(3)で切り替える
(今そーゆー実装は鬼車くらいか)ちゅー夢はありますが(夢見てるだけー)
とりあえずはこの手のwchar_tベースの実装が先にあるだけでもありがたいです。
後はgrep is very slow in UTF-8ちゅー話題がMLで定期的にループするのを我慢すれば以下略
LC_COLLATEは実装されてないから[A-Z]以下略