[#35333] [Ruby 1.8 - Bug #221] (Open) Net::SMTPでSMTPのHELO/EHLOにデフォルトで不正なホスト名を使用 — Anonymous <redmine@...>
チケット #221 が報告されました。 (by Anonymous)
チケット #221 が更新されました。 (by Masahiro Tomita)
チケット #221 が更新されました。 (by Anonymous)
とみたです。
とみたです。
卜部です。
西山和広です。
[#35355] リリース前ToDoリスト — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
高尾宏治です。
高尾宏治です。
なかだです。
高尾宏治です。
なかだです。
前田です。
なかだです。
前田です。
なかだです。
高尾宏治です。
山口と申します。
高尾宏治です。
高尾宏治です。
高尾宏治です。
GyRCJDMkcyRLJEEkTyEjGyhCTS5TdXp1a2kbJEIkRyQ5ISMbKEINCg0KGyRCO24kNyRGJF8kXiQ3
高尾宏治です。
高尾宏治です。
高尾宏治です。
GyRCJDMkcyRLJEEkTxsoQiBNLlN1enVraSAbJEIkRyQ5ISMbKEINCg0KTWFjIE9TWCAxMC40GyRC
高尾宏治です。
[#35372] patch for ruby-core:17472 — wanabe <s.wanabe@...>
ワナベと申します。
なかだです。
ワナベです。
遠藤です。
=1B$B$`$i$?$G$9!#=1B(B
豊福です。
[#35375] Re: [ruby-cvs:25121] Ruby:r17902 (ruby_1_8_6): * re.c (rb_reg_search): need to free allocated buffer in re_register. [ruby-core:17518] — Urabe Shyouhei <shyouhei@...>
卜部です。ruby_1_8_xの枝を弄る人全員にお願いです。チェックインする前に必
[#35389] Re: [ruby-cvs:25164] Ruby:r17945 (trunk, ruby_1_8): * string.c (rb_str_succ): limit carrying in an alphanumeric region if — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
[#35396] cc always picks ruby/ruby.h on OS X — "Akinori MUSHA" <knu@...>
ruby 1.8 の tk ライブラリが OS X 上でビルドできない件です。
[#35404] ruby_1_8_6/ruby_1_8_7ブランチのメンテナンスポリシーについて — "Shugo Maeda" <shugo@...>
前田です。
卜部です。
前田です。
卜部です。
前田です。
Shugo Maeda さんは書きました:
どこにぶら下げるのがいいのかわからないので、単に意思表明ですが、
卜部です。
At Fri, 11 Jul 2008 01:00:29 +0900,
前田です。
In article <704d5db90807110028o238594f2wda0ec1bf12abc940@mail.gmail.com>,
そういえばこの部分に言及するのを忘れていた
前田です。
卜部です。
前田です。
In article <704d5db90807121803o5ea67361ucbf968f8a18a845d@mail.gmail.com>,
Tanaka Akira さんは書きました:
前田です。
卜部です。
前田です。
卜部です。
前田です。
卜部です。
前田です。
こんにちは、なかむら(う)です。
卜部です。
[#35420] Re: [ruby-cvs:25212] Ruby:r17993 (trunk): * test/ruby/envutil.rb (assert_normal_exit): finish writing script — Tanaka Akira <akr@...>
In article <200807100931.m6A9V4vi014459@ci.ruby-lang.org>,
ワナベです。
こんにちは、なかむら(う)です。
ワナベです。
こんにちは、なかむら(う)です。
こんにちは、なかむら(う)です。
In article <20080711050939.531D.C613B076@garbagecollect.jp>,
こんにちは、なかむら(う)です。
[#35446] [Bug:trunk] Thread#kill cannot break BLOCKING_REGION() on windows — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
[#35450] [BUG] cfp consistency error in Win32OLE — Masaki Suketa <masaki.suketa@...>
助田です。
ワナベと申します。
助田です。
[#35458] make profiler for gc — authorNari <authornari@...>
nariです。
In article <1153cee60807122239t19f6ae05vc0c1995c77349377@mail.gmail.com>,
nariです。
nariです。
三浦と申します。
[#35471] [Bug: 1.9] lazy timer thraed creation — SASADA Koichi <ko1@...>
ささだです.
[#35484] Re: [ruby-core:17739] [Ruby 1.9 - Bug #256] (Open) defined?(Gem::RubyGemsVersion) behaves strange — wanabe <s.wanabe@...>
ワナベと申します。
西山和広です。
斎藤と申します。
[#35542] [Bug:1.9] sleep and Thread#run — Tanaka Akira <akr@...>
1.9 では sleep で寝ているスレッドを Thread#run で起こせない
[#35545] Test::Unit -> miniunit — Kouhei Sutou <kou@...>
須藤です。
まつもと ゆきひろです
[#35555] [Ruby 1.9 - Bug #282] (Open) failure of test_asctime(TestTime) on mswin32 — Usaku NAKAMURA <redmine@...>
チケット #282 が報告されました。 (by Usaku NAKAMURA)
ワナベと申します。
[#35578] [Bug:1.9] context switch may occur during freeing io — "Yusuke ENDOH" <mame@...>
遠藤です。
[#35597] [request]C APIの拡張 — "Goro Fuji" <g.psy.va@...>
藤と申します。
なかだです。
ご意見ありがとうございます。
なかだです。
卜部さん
卜部です。
[#35620] non-locale filename encoding — Tanaka Akira <akr@...>
Dir の使いかたとして、ファイル名のエンコーディングが locale
成瀬です。
In article <48866F3F.80906@airemix.jp>,
成瀬です。
In article <488771FD.4020800@airemix.jp>,
Tanaka Akira wrote:
In article <4888B29D.7030009@airemix.jp>,
成瀬です。
In article <488AC157.7090203@airemix.jp>,
[#35646] [Bug:1.9] Rinda has a race condition — "Yusuke ENDOH" <mame@...>
遠藤です。
[#35648] [Bug:1.9] MingwでIO#dupがブロックする — wanabe <s.wanabe@...>
ワナベと申します。
[#35649] PENDINGS.rb (Was: Re: [Ruby 1.9 - Bug #354] (Assigned) Test failure test/ruby/test_transcode.rb) — "Yusuke ENDOH" <mame@...>
遠藤です。
In article <e0b1e5700807240845o4c09cfa5gae142c1dd0c74170@mail.gmail.com>,
2008/07/25 1:02 Tanaka Akira <akr@fsij.org>:
成瀬です。
遠藤です。
In article <e0b1e5700807290517mee11539lfbd82d4dfc98c53f@mail.gmail.com>,
遠藤です。
In article <e0b1e5700807300311v13752775mcf8bb5086753051d@mail.gmail.com>,
[#35669] [Ruby 1.9 - Bug #368] (Open) 境界における Math.atanh 等の動作 — Yui NARUSE <redmine@...>
チケット #368 が報告されました。 (by Yui NARUSE)
斎藤と申します。
[#35681] [Ruby 1.9 - Bug #369] (Open) Ruby 1.9.0-3で R — Akira Matsuda <redmine@...>
チケット #369 が報告されました。 (by Akira Matsuda)
[ruby-dev:35635] Re: non-locale filename encoding
In article <48866F3F.80906@airemix.jp>,
"NARUSE, Yui" <naruse@airemix.jp> writes:
> あまりプログラムにがんばらせたくないなぁと思っているのですが、
> いちいち引数を与えあり、Ruby 自体ががんばるのもその中に入る
> という主張も成り立つのでしょうねぇ。
Dir の internal_encoding, external_encoding を使うには、プロ
グラムが変な方向にがんばる必要が有るように思えます。
> しかし、実際のところ、現在自動変換が行われるのは
> Windows くらいなわけで (これも検討中ではある)、
> たいていの場合は動作が変わらないわけです。
>
> とすると、田中さんの提案は、デフォルトをもっと自動変換側に
> 倒した場合に真価を発揮するのですかね。
いいえ。
たとえば、あるディレクトリの各ファイルのサイズを表示すること
を考えてみましょう。
% mkdir /tmp/xyz
% cd /tmp/xyz
% ruby -e 'open("\x91\x92\x93\x94", "w")'
% ls
????
ここで、エンコーディングを指定しなければ、以下のようになりま
す。
% ruby -e '
Dir.open(".") {|d|
while n = d.read
p [File.size(n), n]
end
}'
[4096, "."]
[45056, ".."]
[0, "\x91\x92\x93\x94"]
このプログラムは、Unix では任意のファイル名について動作しま
す。たとえば、上記の \x91\x92\x93\x94 でも動きます。
しかし、Windows で、Unicode にはあるが、システムコードページ
では表現できない文字 (日本語版 Windows の場合でいえば、CP932
では表現できない文字) がファイル名に使われていると、おそらく
動かないでしょう。
Windows でそういうファイル名も扱おうと考えた場合、現時点では、
Ruby にはそのための機構が入っていないのでどう指定するかは明
らかでは有りませんが、仮に、:external_encoding=>"utf-16le"
とすると Unicode なファイル名を扱うようになり、
:external_encoding=>"utf-16le", :internal_encoding=>"utf-8"
とするとそれを UTF-8 にしてわたしてくれるしてみましょう。
そうすると次のようになります。
% ./ruby -e '
Dir.open(".", :external_encoding=>"utf-16le", :internal_encoding=>"utf-8") {|d|
while n = d.read
p [File.size(n), n]
end
}'
-e:3:in `read': invalid byte sequence (RuntimeError)
from -e:3:in `block in <main>'
from -e:2:in `open'
from -e:2:in `<main>'
しかし、残念なことに、これは Unix では動きません。
直接的には、上記のエラーは、"." を UTF-16LE から UTF-8 に変
換しようとして発生しています。
また、仮に変換エラーが起きなかったとしても、一般に変換を行う
とバイト列が変化します。しかし、File.size はファイルをちゃん
と同定する必要があります。とすると、逆変換が必要になりますが、
一般に変換・逆変換でバイト列が round trip する保証はありませ
ん。
明らかなケースとしては、GB18030 があげられます。GB18030 は
UTF-8 のスーパーセットですから、GB18030 -> UTF-8 -> GB18030
では元に戻らないケースが存在します。
そうすると、こういう変換を行うのは Windows だけに限定する必
要が有ります。そすると次のようになります。
% ./ruby -e '
opt = /windows/ =~ RUBY_PLATFORM ? {:external_encoding=>"utf-16le", :internal_encoding=>"utf-8"} : {}
Dir.open(".", opt) {|d|
while n = d.read
p [File.size(n), n]
end
}'
結局、File.size は確実にファイルを同定する必要があって、その
点では文字コードの変換は基本的に邪魔で、厄介者でしか有りませ
ん。
もちろん、この問題は File.size だけではなくて、ファイルの実
体にアクセスするすべての操作 (stat, open, unlink, link, ...)
で問題になります。
そうすると、やはり変換していない生のファイル名が必要で、
Unix ではバイト列そのままで locale な encoding がついたもの、
Windows では UTF-8 なものを返すオプションを仮に
:native_filename=>true とすると、以下のように書けます。
% ruby -e '
Dir.open(".", :native_filename=>true) {|d|
while n = d.read
p [File.size(n), n]
end
}'
ここでは、生のファイル名を p で表示していますが、ちゃんと
locale に従ってエンコードするなら、以下のように変換します。
(ここで変換に失敗したときの対処が必要かもしれません)
しかし、File.size に渡すファイル名は変換しませんし、してはい
けません。
% ruby -e '
Dir.open(".", :native_filename=>true) {|d|
while n = d.read
p [File.size(n), n.encode(Encoding.locale_charmap)]
end
}'
また、ファイル名を標準入力に出すのでなく、GUI で表示するので
あれば、GUI の扱うコードに変換する必要があるでしょう。しかし、
やはりその場合でも File.size に渡すファイル名は変換しません
し、してはいけません。
このように、結局、ファイル名を確実に扱うのに必要な機構は、確
実にファイルを同定できるファイル名を得ることで、文字コードの
変換は邪魔です。
変換は表示の際に必要になりますが、対象がファイル名である以上、
ファイルが同定できなくなるのはむしろ問題が大きいと考えられま
す。
それなのに、なんでそんな機構を Dir につけるんでしょう?
>> internal_encoding, external_encoding って、どういうアプリケー
>> ションで役に立つんでしょう?
>
> 当時はあまり明示的に force_encoding / encode させたくないという趣旨でした。
locale に従って運用されているシステムを想定する用法なら
現状で force_encoding も encode も不要です。
そうでない想定をするなら、internal_encoding,
external_encoding が役に立つアプリケーションってどういうケー
スでしょう?
Windows で Unicode なファイル名を扱うときだとしても、その書
き方として、ポータブルにならない書き方を提案するのはよくない
んじゃないでしょうか。
internal_encoding, external_encoding が役に立つアプリケーショ
ンの具体的な例ってないんでしょうか?
> 結局のところ、プログラムで頑張らせるべきか、
> 設定の手段をするべきかという所なのですかねぇ。
Dir による変換は、プログラムを変な方向にがんばらせるのではな
いでしょうか。
Windows かどうかを条件判断するとか、逆変換が必要になるとか。
> # つまるところ、例外が出た時の処理の利便性か
逆変換が可能であるような場合には、変換しても問題がないのかも
しれません。そういう意味で、この問題を変換で例外が出たときの
問題というとらえかたはありえるでしょう。
しかし、私は、そもそも変換するのが問題だととらえています。
--
[田中 哲][たなか あきら][Tanaka Akira]