From: Yukihiro Matsumoto Date: 2008-09-25T14:29:20+09:00 Subject: [ruby-dev:36549] Re: Encoding.default_internal のためのパッチ まつもと ゆきひろです In message "Re: [ruby-dev:36535] Re: Encoding.default_internal のためのパッチ" on Thu, 25 Sep 2008 06:39:14 +0900, Hidetoshi NAGAI writes: |> 今日一日考えて、導入することにしました。 | |細かい仕様に関しては色々と意見はあるようですが, |私自身は少なくとも default_internal の導入自体は歓迎します. | |# 昔お願いしたけれども「グローバルな状態は入れない」ということで |# 強く拒絶されたものと似ているような気もしないではないですが.(^_^; (提案されたパッチと違って)私の仕様ではdefault_encodingは起動 時に決まり、少なくともRubyレベルでは変更できません。ので、状 態ではないですね。以前に反対していたのは事実で、それを考える ともうしわけないと思います。 |> * これが指定されている時IOからの入力は(バイナリでない限り)、 |> このエンコーディングを持つ(必要なら変換する)。 | |外部のライブラリとのやり取りも IO に準ずるものと |考えてもよいですよね? そうです。ライブラリの場合に対応については下に示した通りにな ります。 |> この結果、各種ライブラリは |> |> * 基本UTF-8を返せばよい、入力もUTF-8を期待 |> * より親切なライブラリはdefault_internalで返す。入力は |> encodingを見て対処 |> |> という二段階対応ができます。段階的に前者(レベル1)から、後者 |> (レベル2)に移行すればよいのではないでしょうか。 | |外部のライブラリを用いる拡張ライブラリとしては, |default_internal が空でなければ default_internal で, |default_internal が空であるなら default_extenral で |返すようにするというのが基本でしょうか? はい。そうなります。上記のほかにライブラリによっては、与えら れたデータ(文字列)のエンコーディングをそのまま返すというオウ ム返しタイプのものがありえるでしょうね。 |拡張ライブラリ側は core の仕様が確定しないと動きづらいです. |で,feature freeze が近づいてから core が色々といじられると |対応が全く間に合いません. | |# 「すべての変更に即座に対応し続ける」というのは, |# さすがにご容赦を.(^_^) | |もし可能であるなら,リリーススケジュールにおいて, |core の feature freeze から ext の feature freeze までに |少し間を空けていただけると助かります. これについても申し訳なく思います。Yuguiさんとはまだちゃんと 話していませんが、今回の変更についての対応はfreezeの対象では ないということにできたらいいと思っています。できれば1ヶ月く らいの期間で。 まつもと ゆきひろ /:|)