«前の日記(2004-01-05) 最新 次の日記(2004-01-07)» 編集

Matzにっき

迷惑メール対策なら Dr.WEB
『Dr.WEB メールデーモン』、MTA 用迷惑メール対策製品です!


2004-01-06 [長年日記]

_ [生活]体調不良

急に寒くなったせいか、昨日あたりから体調が悪く、寒気がしたり、鼻炎が悪化したりしたので自宅作業。

とはいえ、今は子供たちも冬休みなので、作業がはかどらない。 家族全員で引きこもり状態。 結局仕事もたいして進まないし。

これではいくらなんでもいかんだろうと、夜は温泉にでかける。 結構寒いのね。

_ [Ruby]M17N

で、仕事が進まないなりにRuby M17Nについて考えていたのだが、CHISEあたりをヒントに

  • 整数で文字を表すのはやめる
  • 文字も文字列も二つの文字列ポインタ(始端と終端)で表現
  • 文字に対する操作はその文字列の「最初の文字」が対象になる
  • 文字に対する操作は基本的にその文字の属性の取得
  • 文字列に対する操作は(一部を除き)文字に対する操作で記述したものをfall backとして用意

という方針でなんとかなるのではないかと考える。 これだと、たとえば「文字=コードポイント」という仮定もないのでより広い範囲で対応できるだろう。 ステートフルなエンコーディングにはいずれにせよ対応できないけど(効率上の問題であきらめた方が良さそう)。

もっとも、これだと以前作ったもの(ruby_m17nブランチ)の実装はほとんど流用できないなあ。

課題は

  • 正規表現エンジンはどうするか。鬼車は独自のencoding対応が入っちゃってるし。
  • 不正なバイト列にどう対処するか

だな。特に前者。 エンジンの自作はできれば避けたいけど、鬼車をフォークするってのもなあ。

本日のツッコミ(全3件) [ツッコミを入れる]
_ たかはし (2004-01-07 10:20)

拡張ライブラリには何らかのエンコーディングを施した「文字列」を渡すことになりますよね。正規表現ライブラリもそれと同等の位置づけということにすれば齟齬なく扱えないでしょうか。ちょっとRubyとの「一体感」に欠けるかもしれませんが。

_ HM (2004-01-08 00:00)

m17nのことについては、BSDのCitrus Projectの人たちにも聞いてみてはいかがでしょうか。

_ とも (2004-01-08 19:42)

文字オブジェクトは導入するんでしょうか?<br>複数の文字列表現をサポートし文字列を code point の列とする場合、多分、文字オブジェクトがあった方が良いと思います。また、文字オブジェクトの列も使えるとうれしいかも。<br><br>それから、CHISE 的文字素性サポートが入るなら、師さんが Perl/CHISE で試作している CHISE-grep (正規表現で文字素性を利用する)機能が入ると非常にうれしいです。<br><br>あと、libchise 付きで build できるようになるとうれしいです。

お名前:
E-mail:
コメント:
[]

«前の日記(2004-01-05) 最新 次の日記(2004-01-07)» 編集

RSS feed meter for http://www.rubyist.net/~matz/ track feed Matzにっき Creative Commons License This work is licensed under a Creative Commons License.