From: Yukihiro Matsumoto Date: 2008-12-08T00:01:23+09:00 Subject: [ruby-dev:37298] Re: m17n of irb まつもと ゆきひろです In message "Re: [ruby-dev:37293] Re: m17n of irb" on Sun, 7 Dec 2008 11:41:42 +0900, "Yugui (Yuki Sonoda)" writes: |問題なのはirbやerbで-Kを指定して、その中でmagic commentの付いていない |ファイルをloadするというレアなケースだけです。 | |-Kはもともと1.8互換性のためのものと理解していますから、irbやerbではサ |ポートの必要なしというのも1つの選択肢です。一方、irbができるだけrubyコ |マンドのように振る舞うことを期待するならば、irbのためだけにはscript |encodingを設定できないと困ります。 source encodingに関してirbとrubyコマンドは同じではないでしょ う。入力がほぼかならずターミナルになるという時点で、大きく違 いますから。loadに関しては本当に必要であればread+evalを使うん でしょう。でも本当に必要だという話になるまで待ってもいいんじゃ ないですかね。 |では残りのdefault_externalとdefault_internalについて。 | |私は、デフォルト、特にdefault_internalが起動後に変化するのは危険だと思っ |てます。既に述べたように開いてしまったリソースがあるかもしれませんし、ラ |イブラリにむやみに設定して欲しくありません。 | |ただ、irbのように確かにそれを必要とする事例があるわけです。我々の想像の |及ばない似たようなケースが存在するかもしれません。だから、default_ |{internal,external}のsetterを付けるかどうかと言うのは、どの程度「自分の |足を撃ち抜く自由」を認めるかという問題です。 |勿論まつもとさん次第ですけれども、認めちゃって良いんですか? タイミング的にメソッド増やしていいんですか? |== 現状 |* irb -K, erb -Kは必要か? | YES => script encodingの設定方法が必要(RubyレベルかC APIかは別) | NO => 問題なし NO。個人的には問題なしではないかと思っています。 |* エンコーディングのデフォルトをRubyレベルで変更できるべきか? | YES => setterメソッド追加で解決 | NO => IRB.parse_optsの拡張ライブラリ化で解決 YES。リリースマネジメント的に許されるのであればsetterメソッド の追加が良いのでは。