From: Yukihiro Matsumoto Date: 2008-12-07T02:59:24+09:00 Subject: [ruby-dev:37292] Re: m17n of irb まつもと ゆきひろです Yuguiさんにせっつかれました(笑 In message "Re: [ruby-dev:37203] Re: m17n of irb" on Wed, 26 Nov 2008 20:40:31 +0900, "Yugui (Yuki Sonoda)" writes: |既にdefault_internal, default_externalで開かれたリソースが存在する可能性 |があると思います。ですから、変更するならばそのリソースに対して責任を負う |必要があって、あまり気軽に変更して欲しくはないと思います。 | |言語デザインとしてどうでしょうか? < まつもとさん | |言い換えると、「一度だけ代入化」の選択肢ははあり得ますか? |あるんだったら本件は割と簡単になりますよね。 default_{internal,external,source}をインタプリタ起動後に変更 したいという話ですよね。どういう局面で必要なるのかよくわから なかったので、無反応だったわけですが。 まずsource encodingについては * loadはmagic commentを理解します * evalはソース文字列のencodingをsource encodingとして解釈 するので、文字列のencodingを適切に設定すればdefault source encodingを指定する必要はないのでは とすると、loadでmagic commentがついてないファイルをUS-ASCII 以外として読み込みたいというかなりレアケース以外では特別な対 応は不要ではないでしょうか。そのようなケースでもソースを読み 込んでencodingを設定してevalすればよいわけですし。 で、default internalとexternalを切り替える件ですが、改めて考 えてみると許してもよいような気がします。アプリケーション全体 で共通であるのがお行儀が良いとは思いますが、変更できないこと を強制しなくてはならないほど邪悪でもないでしょう。あくまでも defaultなので。 |この辺りも含めて、デフォルトのエンコーディング設定の変更を許すことが言語 |デザイン的にあり得るのかどうかまつもとさんに伺いたいです。 |私は結構現状に納得してます。 いまさらEncoding.default_external=メソッドなどを追加するとい うのはどうなんでしょうね。 あと、-E us-ascii で default_internal が勝手に utf-8 になる のはあんまり良くないような気がしてきました。 まつもと ゆきひろ /:|)