From: "NARUSE, Yui" Date: 2008-09-09T00:23:16+09:00 Subject: [ruby-dev:36222] Re: GNU iconv dependency 成瀬です。 Takahiro Kambe wrote: > test/iconv/test_option.rbの中、というよりもtest/iconv/test_option.rb > そのもので行っているテストですが、GNU iconvを前提とした内容となってい > ます。 //TRANSLIT と //IGNORE 系は glibc iconv と GNU libiconv 依存ですね > このため、GNU iconvをインストールして、それを使うようにコンパイルしな > い限り、このテストはBSD系やOpenSolaris(?)で失敗します。 1.9 では先日失敗しないようにしました。 > 1. GNU iconvにどっぷりと依存したコードは(テストと言えども)Ruby本体に > 含めないで欲しい。含めるのであれば、GNU iconvに依存していることを > よーくわかるようにして欲しい。 テスト以前に、 * Iconv.list * Iconv.ctlmethods * Iconv#trivial? * Iconv#transliterate? * Iconv#discard_ilseq? など、Ruby の Iconv ライブラリってそもそも全体的に GNU 寄りなんですよね。 なので、Iconv は glibc iconv か GNU libiconv 前提って割り切りでも いいんじゃないかと思います。 他の実装でテストが失敗するのは直すべきでしょうが。 > 2. GNU iconvの独自の変換指定の文字列に対して、ウォーニングを出すような > オプションか何かがあれば、なお良い。 また、glibc iconv や libiconv は規格に反して、変換元では valid だが、 変換先に対応する文字が存在しないケースでも終了してしまうので、 それの回避のために指定するケースがあるのではという考察もありました。 http://www.hi-matic.org/diary/?20080903#03-2 結局独自仕様の回避のために独自仕様が必要という泥沼にはまっているので、 //IGNORE だけ warning を出せばいいという問題でもないんじゃないですかねぇ。 -- NARUSE, Yui