トップ «前の日記(2005-05-01) 最新 次の日記(2005-05-04)» 月表示 編集

日々の流転


2005-05-03 [長年日記]

λ. GHC 6.4 ソースコードHacking: メモ

[haskell-jp:590]によるとテーマは「多言語化」らしいので、そのための個人的メモ。

HaskellのCharはUnicodeなので、同じく文字をUnicodeで扱っているJavaや.NET等のモデルが参考になるはず。

Unicode文字列⇔マルチバイト文字列 の変換
選択肢:
iconv + nl_langinfo(CODESET)
-
libcのmb⇔wc変換関数
現在の Hugs は --enable-char-encoding=locale でコンパイルするとこれを使う。wchar_tがUnicodeである環境(WindowsやLinux)では問題ないが、*BSD等はそうではないので問題となる。wchar_t がUnicodeかどうかを調べるには defined(_WIN32) || defined(__STDC_ISO_10646__) で良いと思う。
その他のライブラリ
the m17n library 等。libm17nはちょっと使ってみた感じでは結構良さそう。
自前でテーブルを持つ
これは出来たら避けたいな
IO周りで、Unicode⇔マルチバイト の変換
基本的には GHC.IO を書き換えればよい。GHC.IOBase と GHC.Handle も参照。
FFI周りで、Unicode⇔マルチバイト の変換
Foreign.C.Stringを書き換えればよい。参考: Hugsへのパッチ
Text.Regex
参考: GHC 6.2 で Oniguruma を使うためのパッチ
コンパイラがマルチバイトで書かれたソースファイルを処理できるように?
IO周りを対応すれば自動的に対応できる? プリプロセッサでエスケープするようにすればコンパイラ自体に手を入れる必要はない?
複数のエンコーディングを同時に使うためのAPI?
-
the m17n library のGUI周りと Input Method 周り?
-
CHISE とのインターフェース?
-
HsLocale
アレな部分もあるけど、パクれそうなコードがある。 HsLocale-win32.diff
Tags: haskell

λ. 第六回圏論勉強会

[勉強会の様子]圏論勉強会も今回で六回目。今回はブラウワー(Brower)の不動点定理のセクションだったのだけど、このセクションは何度読んでも面白い。今回も、これまで「なんとなく」で読み飛ばしてしまっていたところを掘り下げることが出来て興味深かった。やっぱり、色々な視点があるっていいな。

それから、たけをさんがmixiにコミュニティを作ってくれました。mixi:圏論勉強会

写真

Tags: 圏論

λ. GHC ソースコードハッキング 1日目

圏論勉強会後にちょとと遅めの昼食をとり、そのままGHCソースコードハッキングへ。

とりあえず、the m17n library を使ってみる流れに。

Tags: haskell