[#41278] [BUG:1.9] BINARY should not be ASCII-compatible — Yugui <yugui@...>

WXVndWkbJEIkRyQ5ISMbKEIKCgo+IBskQiRHISIkKiQqJGAkTSQzJDMkXiRHJE41RE9AJEclKyVQ

15 messages 2010/05/11

[#41407] [Bug #3339] win32ole test failure — Usaku NAKAMURA <redmine@...>

Bug #3339: win32ole test failure

20 messages 2010/05/25
[#41411] Re: [Bug #3339] win32ole test failure — Masaki Suketa <masaki.suketa@...> 2010/05/25

助田です。

[#41412] Re: [Bug #3339] win32ole test failure — "U.Nakamura" <usa@...> 2010/05/25

こんにちは、なかむら(う)です。

[ruby-dev:41298] Re: [BUG:1.9] BINARY should not be ASCII-compatible

From: "NARUSE, Yui" <naruse@...>
Date: 2010-05-12 08:54:36 UTC
List: ruby-dev #41298
成瀬です。

2010年5月12日14:24 Urabe Shyouhei <shyouhei@ruby-lang.org>:
> 卜部です。
>
> (2010/05/12 8:42), Yugui wrote:
>> 2010/5/11 Urabe Shyouhei <shyouhei@ruby-lang.org>:
>>> 偉い人の仕事には「どっしりと構えて些細なことでは動じない」というのもあると思っ
>>> てます。
>>
>> 偉い人は置いておいて、私はよりよい可能性があればいくらでも軽薄に立場を変えます。
>> ただ、それが本当によりよいのかについては慎重でありたく、-devで意見を聞きたい訳です。
>
> 誤解を招いていそうなので補足しますと、-devで意見を聞くことは良いことで、そこは
> 否定してません。また、本当にみんなにとって幸せな解決策が見つかればいいなという
> 祈りのようなものは私も持っています。
>
> そこで技術的な部分にフォーカスして考えるのですが、
>
>> これに賛同します。rb_str_newが生成する文字列はascii-compatibleなままでいきましょう。それでも、もし可能ならば
>> アプリケーション開発者の悲劇を防ぎたいです。たとえば、ASCII-8BIT(1.8との互換性のためのもの, index
>> 0)とBINARY(octetのためもの)を分離して、
>> ASCII-8BITは任意のエンコーディングと結合可能で結果はASCII-8BIT、という仕組みなんかはどうでしょうか。
>
> これはたぶんrb_str_newした文字列は新ASCII-8BITになって、それを連結していくと、
> 非互換な文字列でも黙ってASCII-8BITに汚染されるということかと思いました。すると
> 既存のライブラリをそのまま動かすと、いつのまにかASCII-8BITな文字列が増えること
> が想像できます。それをアプリケーション開発者が避けるにはどうすればいいのかな、
> やっぱことあるごとにforce_encodingつけて回るとかでしょうか。アプリケーションは
> ちょっと不便になりそうですね。その「ちょっと」が許容できるのなら、ありかなあと
> いう気もします。

「ASCII-8BIT(1.8との互換性のためのもの, index 0)とBINARY(octetのためもの)を分離して」
はこのケースの場合分離する理由は何でしょう。

また、ASCII-8BIT は任意のエンコーディングと統合可能とした場合、現状出ていた
Encoding::CompatibilityError が出なくなることを意味するのですが、
それって、当初の問題意識である早期検出という観点に置いて、現状より悪化していませんか。

-- 
NARUSE, Yui
naruse@airemix.jp

In This Thread