https://bugs.ruby-lang.org/
https://bugs.ruby-lang.org/favicon.ico?1711330511
2009-06-06T10:44:12Z
Ruby Issue Tracking System
Ruby master - Bug #1582: IO.new Raises Other Errors between 1.8 and 1.9
https://bugs.ruby-lang.org/issues/1582?journal_id=4195
2009-06-06T10:44:12Z
akr (Akira Tanaka)
akr@fsij.org
<ul></ul><p>=begin<br>
32bit Solaris の FILE 構造体は fd が 1byte で表現されているため、rb_fdopen で FILE構造体を生成すると、256以上の fd を扱えなくなります。</p>
<p>=end</p>
Ruby master - Bug #1582: IO.new Raises Other Errors between 1.8 and 1.9
https://bugs.ruby-lang.org/issues/1582?journal_id=4197
2009-06-06T16:44:26Z
ujihisa (Tatsuhiro Ujihisa)
<ul></ul><p>=begin<br>
とするとこのパッチの参考元の、ruby1.8系のio.cのrb_io_initialize()でrb_fdopen()を呼び出している部分が気になります。</p>
<p>ruby_1_8_7/io.c r23641 line4366<br>
fp->f = rb_fdopen(fd, rb_io_modenum_mode(flags));</p>
<p>ほかにも多数。</p>
<p>いっぽうruby1.9系ですとrb_io_stdio_file()で同様に</p>
<p>trunk/io.c r23641 line5993<br>
fptr->stdio_file = rb_fdopen(fptr->fd, rb_io_oflags_modestr(oflags));</p>
<p>とrb_fdopen()が呼ばれているものの、ここではstdin, stdout, stderrしか与えられないと仮定しているためSolarisでも大丈夫、とそんな風に見えます。</p>
<p>手元に32bit Solarisがなくて試すことができず心もとないですが、報告までに。<br>
=end</p>
Ruby master - Bug #1582: IO.new Raises Other Errors between 1.8 and 1.9
https://bugs.ruby-lang.org/issues/1582?journal_id=4204
2009-06-07T12:32:10Z
akr (Akira Tanaka)
akr@fsij.org
<ul></ul><p>=begin<br>
そのとおりで、1.8 では動きません。</p>
<p>1.9 では動くようにしたので、それを動かないようにするのは受け入れられません。<br>
=end</p>
Ruby master - Bug #1582: IO.new Raises Other Errors between 1.8 and 1.9
https://bugs.ruby-lang.org/issues/1582?journal_id=4637
2009-07-13T23:23:32Z
yugui (Yuki Sonoda)
yugui@yugui.jp
<ul><li><strong>Status</strong> changed from <i>Open</i> to <i>Rejected</i></li></ul><p>=begin<br>
本件はrejectということで良いでしょうか?<br>
=end</p>
Ruby master - Bug #1582: IO.new Raises Other Errors between 1.8 and 1.9
https://bugs.ruby-lang.org/issues/1582?journal_id=4699
2009-07-14T16:12:40Z
nobu (Nobuyoshi Nakada)
nobu@ruby-lang.org
<ul><li><strong>Status</strong> changed from <i>Rejected</i> to <i>Open</i></li></ul><p>=begin</p>
<p>=end</p>
Ruby master - Bug #1582: IO.new Raises Other Errors between 1.8 and 1.9
https://bugs.ruby-lang.org/issues/1582?journal_id=4700
2009-07-14T16:17:06Z
nobu (Nobuyoshi Nakada)
nobu@ruby-lang.org
<ul><li><strong>Status</strong> changed from <i>Open</i> to <i>Closed</i></li><li><strong>% Done</strong> changed from <i>0</i> to <i>100</i></li></ul><p>=begin<br>
Applied in changeset r24102.<br>
=end</p>
Ruby master - Bug #1582: IO.new Raises Other Errors between 1.8 and 1.9
https://bugs.ruby-lang.org/issues/1582?journal_id=8428
2010-02-27T01:28:41Z
mame (Yusuke Endoh)
mame@ruby-lang.org
<ul><li><strong>Status</strong> changed from <i>Closed</i> to <i>Open</i></li></ul><p>=begin<br>
遠藤です。</p>
<p>なかださんの修正に regression があるみたいです。<br>
いまから kosaki さんが詳細を書いてくれます。</p>
<p>--<br>
Yusuke Endoh <a href="mailto:mame@tsg.ne.jp" class="email">mame@tsg.ne.jp</a><br>
=end</p>
Ruby master - Bug #1582: IO.new Raises Other Errors between 1.8 and 1.9
https://bugs.ruby-lang.org/issues/1582?journal_id=8429
2010-02-27T01:45:35Z
kosaki (Motohiro KOSAKI)
kosaki.motohiro@gmail.com
<ul></ul><p>=begin<br>
すいません、regressionは言い過ぎというか間違っていて修正不十分ぐらいが適当でした。<br>
まず、Linuxでは以下の結果になります。</p>
<p>% ./ruby -e 'f1 = File.open("foo.txt", "w"); f1.puts "foo"; f2 = IO.new(f1.fileno); p f2.gets'<br>
-e:1:in <code>gets': not opened for reading (IOError) from -e:1:in </code>'</p>
<p>% ./ruby -e 'f1 = File.open("foo.txt", "w"); f1.puts "foo"; f2 = IO.new(f1.fi<br>
leno, "r"); p f2.gets'<br>
-e:1:in <code>initialize': Invalid argument (Errno::EINVAL) from -e:1:in </code>new'<br>
from -e:1:in `'</p>
<p><a href="http://doc.okkez.net/static/191/class/IO.html" class="external">http://doc.okkez.net/static/191/class/IO.html</a> をみると</p>
<p>new(fd, mode = "r") -> IO</p>
<p>と書いてあるので、IO.new()のmode引数のデフォルトは"r"のはずで、これは変です。<br>
そのカラクリですが、</p>
<p>rb_io_initialize で<br>
#if defined(HAVE_FCNTL) && defined(F_GETFL)<br>
oflags = fcntl(fd, F_GETFL);<br>
(snip)<br>
ofmode = rb_io_oflags_fmode(oflags);<br>
if (NIL_P(vmode)) {<br>
fmode = ofmode;<br>
}</p>
<p>というコードがあるために、引数なしの時はfd引数のアクセス権を継承する仕様に変わってしまっています。<br>
リファレンスが正しいなら、mode引数を省略したときも単に"r"と解釈してEINVALになるべきに見えます。</p>
<p>これは意図的でしょうか?意図したものである場合、ドキュメントの修正をご検討くださいませ</p>
<p>=end</p>
Ruby master - Bug #1582: IO.new Raises Other Errors between 1.8 and 1.9
https://bugs.ruby-lang.org/issues/1582?journal_id=8430
2010-02-27T09:43:18Z
nobu (Nobuyoshi Nakada)
nobu@ruby-lang.org
<ul></ul><p>=begin<br>
なかだです。</p>
<p>At Sat, 27 Feb 2010 01:45:54 +0900,<br>
Motohiro KOSAKI wrote in <a href="https://blade.ruby-lang.org/ruby-dev/40509">[ruby-dev:40509]</a>:</p>
<blockquote>
<p>すいません、regressionは言い過ぎというか間違っていて修正不十分ぐらいが適当でした。<br>
まず、Linuxでは以下の結果になります。</p>
<p>% ./ruby -e 'f1 = File.open("foo.txt", "w"); f1.puts "foo"; f2 = IO.new(f1.fileno); p f2.gets'<br>
-e:1:in <code>gets': not opened for reading (IOError) from -e:1:in </code>'</p>
<p>% ./ruby -e 'f1 = File.open("foo.txt", "w"); f1.puts "foo"; f2 = IO.new(f1.fileno, "r"); p f2.gets'<br>
-e:1:in <code>initialize': Invalid argument (Errno::EINVAL) from -e:1:in </code>new'<br>
from -e:1:in `'</p>
</blockquote>
<p>1.8までと動作を合わせてあります。</p>
<blockquote>
<p><a href="http://doc.okkez.net/static/191/class/IO.html" class="external">http://doc.okkez.net/static/191/class/IO.html</a> をみると</p>
<p>new(fd, mode = "r") -> IO</p>
</blockquote>
<p>1.9のrdocではmodeのデフォルト値についての記述は削られています。</p>
<blockquote>
<p>これは意図的でしょうか?意図したものである場合、ドキュメントの修正をご検討くださいませ</p>
</blockquote>
<p>1.8までのドキュメントのバグだと思います。</p>
<p>--<br>
--- 僕の前にBugはない。<br>
--- 僕の後ろにBugはできる。<br>
中田 伸悦</p>
<p>=end</p>
Ruby master - Bug #1582: IO.new Raises Other Errors between 1.8 and 1.9
https://bugs.ruby-lang.org/issues/1582?journal_id=8431
2010-02-27T12:07:25Z
kosaki (Motohiro KOSAKI)
kosaki.motohiro@gmail.com
<ul></ul><p>=begin<br>
2010年2月27日9:43 Nobuyoshi Nakada <a href="mailto:nobu@ruby-lang.org" class="email">nobu@ruby-lang.org</a>:</p>
<blockquote>
<p>なかだです。</p>
<p>At Sat, 27 Feb 2010 01:45:54 +0900,<br>
Motohiro KOSAKI wrote in <a href="https://blade.ruby-lang.org/ruby-dev/40509">[ruby-dev:40509]</a>:</p>
<blockquote>
<p>すいません、regressionは言い過ぎというか間違っていて修正不十分ぐらいが適当でした。<br>
まず、Linuxでは以下の結果になります。</p>
<p>% ./ruby -e 'f1 = File.open("foo.txt", "w"); f1.puts "foo"; f2 = IO.new(f1.fileno); p f2.gets'<br>
-e:1:in <code>gets': not opened for reading (IOError) from -e:1:in </code>'</p>
<p>% ./ruby -e 'f1 = File.open("foo.txt", "w"); f1.puts "foo"; f2 = IO.new(f1.fileno, "r"); p f2.gets'<br>
-e:1:in <code>initialize': Invalid argument (Errno::EINVAL) from -e:1:in </code>new'<br>
from -e:1:in `'</p>
</blockquote>
<p>1.8までと動作を合わせてあります。</p>
<blockquote>
<p><a href="http://doc.okkez.net/static/191/class/IO.html" class="external">http://doc.okkez.net/static/191/class/IO.html</a> をみると</p>
<p>new(fd, mode = "r") -> IO</p>
</blockquote>
<p>1.9のrdocではmodeのデフォルト値についての記述は削られています。</p>
</blockquote>
<p>上記URLはいちおう1.9.1用のはずなんですが、誰が修正担当なんでしょう??<br>
あのURLを見るのが間違い? ruby-lang.org からリンクが貼ってあるから、ほとんどの人は<br>
そこから誘導されていると思いますが</p>
<blockquote>
<blockquote>
<p>これは意図的でしょうか?意図したものである場合、ドキュメントの修正をご検討くださいませ</p>
</blockquote>
<p>1.8までのドキュメントのバグだと思います。</p>
</blockquote>
<p>動作としては現在の挙動が望ましいことには同意します。ただ、windowsのようにfcntl(GETFL)できない環境ではmode継承がされてないので挙動が変わってしまうのですがどこにも文書化されてません。これはこれで問題だと思います。</p>
<p>この問題の発端は <a href="/issues/2796">[ruby-dev:40506]</a> の (2) 課題提起でした。</p>
<p>とりあえず、このチケット自体は再度クローズしてよくて、<a href="/issues/2796">[ruby-dev:40506]</a><br>
で継続議論すればいいと思うのですが、私には閉じる権限がないので親切なコミッターさんが閉じてくれるのを期待します。</p>
<p>=end</p>
Ruby master - Bug #1582: IO.new Raises Other Errors between 1.8 and 1.9
https://bugs.ruby-lang.org/issues/1582?journal_id=8450
2010-02-27T13:01:43Z
no6v (Nobuhiro IMAI)
nov@yo.rim.or.jp
<ul></ul><p>=begin<br>
いまいです。</p>
<p>From: KOSAKI Motohiro <kosaki.motohiro_at_gmail.com><br>
Date: Sat, 27 Feb 2010 12:07:11 +0900</p>
<blockquote>
<blockquote>
<blockquote>
<p><a href="http://doc.okkez.net/static/191/class/IO.html" class="external">http://doc.okkez.net/static/191/class/IO.html</a> をみると</p>
<p>new(fd, mode = "r") -> IO</p>
</blockquote>
<p>1.9のrdocではmodeのデフォルト値についての記述は削られています。</p>
</blockquote>
<p>上記URLはいちおう1.9.1用のはずなんですが、誰が修正担当なんでしょう??<br>
あのURLを見るのが間違い? ruby-lang.org からリンクが貼ってあるから、ほとんどの人は<br>
そこから誘導されていると思いますが</p>
</blockquote>
<p>私にはどう修正してよいのかまだ理解できていないのですが、リファレンスの<br>
問題ということは認識できたので、以下に記録してしておきました。</p>
<a name="題名が不適切かもしれません"></a>
<h1 >題名が不適切かもしれません。<a href="#題名が不適切かもしれません" class="wiki-anchor">¶</a></h1>
<p><a href="http://redmine.ruby-lang.org/issues/show/2800" class="external">http://redmine.ruby-lang.org/issues/show/2800</a></p>
<blockquote>
<blockquote>
<blockquote>
<p>これは意図的でしょうか?意図したものである場合、ドキュメントの修正をご検討くださいませ</p>
</blockquote>
<p>1.8までのドキュメントのバグだと思います。</p>
</blockquote>
<p>動作としては現在の挙動が望ましいことには同意します。ただ、windowsのようにfcntl(GETFL)できない環境ではmode継承がされてないので挙動が変わってしまうのですがどこにも文書化されてません。これはこれで問題だと思います。</p>
</blockquote>
<a name="引数だけでなく記述を追加する必要もあるということですよね"></a>
<h2 >引数だけでなく、記述を追加する必要もあるということですよね。<a href="#引数だけでなく記述を追加する必要もあるということですよね" class="wiki-anchor">¶</a></h2>
<p>Nobuhiro IMAI <a href="mailto:nov@yo.rim.or.jp" class="email">nov@yo.rim.or.jp</a><br>
Key fingerprint = F39E D552 545D 7C64 D690 F644 5A15 746C BD8E 7106</p>
<p>=end</p>
Ruby master - Bug #1582: IO.new Raises Other Errors between 1.8 and 1.9
https://bugs.ruby-lang.org/issues/1582?journal_id=8552
2010-03-03T12:52:04Z
no6v (Nobuhiro IMAI)
nov@yo.rim.or.jp
<ul></ul><p>=begin<br>
いまいです。</p>
<p>From: Nobuhiro IMAI <nov_at_yo.rim.or.jp><br>
Date: Sat, 27 Feb 2010 13:01:30 +0900</p>
<blockquote>
<blockquote>
<p>上記URLはいちおう1.9.1用のはずなんですが、誰が修正担当なんでしょう??<br>
あのURLを見るのが間違い? ruby-lang.org からリンクが貼ってあるから、ほとんどの人は<br>
そこから誘導されていると思いますが</p>
</blockquote>
<p>私にはどう修正してよいのかまだ理解できていないのですが、リファレンスの<br>
問題ということは認識できたので、以下に記録してしておきました。</p>
<a name="題名が不適切かもしれません"></a>
<h1 >題名が不適切かもしれません。<a href="#題名が不適切かもしれません" class="wiki-anchor">¶</a></h1>
<p><a href="http://redmine.ruby-lang.org/issues/show/2800" class="external">http://redmine.ruby-lang.org/issues/show/2800</a></p>
<blockquote>
<blockquote>
<blockquote>
<p>これは意図的でしょうか?意図したものである場合、ドキュメントの修正をご検討くださいませ</p>
</blockquote>
<p>1.8までのドキュメントのバグだと思います。</p>
</blockquote>
<p>動作としては現在の挙動が望ましいことには同意します。ただ、windowsのようにfcntl(GETFL)できない環境ではmode継承がされてないので挙動が変わってしまうのですがどこにも文書化されてません。これはこれで問題だと思います。</p>
</blockquote>
<p>引数だけでなく、記述を追加する必要もあるということですよね。</p>
</blockquote>
<p>今のところ、メソッドシグネチャで引数にデフォルト値がある場合は書いてお<br>
く、というルール[1]があるようなので、説明文だけ追加[2]しました。内容が<br>
あっているか見ていただけるとありがたいです。</p>
<ol>
<li><a href="http://www.fdiary.net/ml/ruby-reference-manual/msg/360" class="external">http://www.fdiary.net/ml/ruby-reference-manual/msg/360</a></li>
<li>
<a href="http://redmine.ruby-lang.org/repositories/diff/rurema?rev=3924" class="external">http://redmine.ruby-lang.org/repositories/diff/rurema?rev=3924</a><br>
--<br>
Nobuhiro IMAI <a href="mailto:nov@yo.rim.or.jp" class="email">nov@yo.rim.or.jp</a><br>
Key fingerprint = F39E D552 545D 7C64 D690 F644 5A15 746C BD8E 7106</li>
</ol>
<p>=end</p>
Ruby master - Bug #1582: IO.new Raises Other Errors between 1.8 and 1.9
https://bugs.ruby-lang.org/issues/1582?journal_id=8564
2010-03-03T18:12:14Z
no6v (Nobuhiro IMAI)
nov@yo.rim.or.jp
<ul></ul><p>=begin<br>
いまいです。</p>
<p>From: KOSAKI Motohiro <kosaki.motohiro_at_jp.fujitsu.com><br>
Date: Wed, 3 Mar 2010 13:23:29 +0900</p>
<blockquote>
<blockquote>
<p>今のところ、メソッドシグネチャで引数にデフォルト値がある場合は書いてお<br>
く、というルール[1]があるようなので、説明文だけ追加[2]しました。内容が<br>
あっているか見ていただけるとありがたいです。</p>
<ol>
<li><a href="http://www.fdiary.net/ml/ruby-reference-manual/msg/360" class="external">http://www.fdiary.net/ml/ruby-reference-manual/msg/360</a></li>
<li><a href="http://redmine.ruby-lang.org/repositories/diff/rurema?rev=3924" class="external">http://redmine.ruby-lang.org/repositories/diff/rurema?rev=3924</a></li>
</ol>
</blockquote>
<p>確認しました。</p>
</blockquote>
<p>ありがとうございます。</p>
<blockquote>
<p>エンドユーザは自分の環境がfcntlが利用できる環境かどうか知っているのだろうか?<br>
と素朴な疑問がわきました。</p>
</blockquote>
<p>require "fcntl" できるとか、今回の用途では Fcntl::F_GETFL が定義されて<br>
いる、とか見ればいいのかな?私自身、よく分かってません。</p>
<blockquote>
<p>まったく分かってなくて恐縮なのですが、リファレンスの習慣的には「xxが利用できる環境」<br>
という表記と「Windows環境では」という表記のどちらが一般的なのでしょうか。<br>
前者の場合、なにも問題ないと思います。</p>
</blockquote>
<h2>行単位でしか調べていませんが、「Windows 環境」という表現は少なく、例え<br>
ば、Encoding.locale_charmap の説明には「nl_langinfo 等がない環境では」<br>
という表現があったので、今回はとりあえずこのままにしておこうと思います。</h2>
<p>Nobuhiro IMAI <a href="mailto:nov@yo.rim.or.jp" class="email">nov@yo.rim.or.jp</a><br>
Key fingerprint = F39E D552 545D 7C64 D690 F644 5A15 746C BD8E 7106</p>
<p>=end</p>
Ruby master - Bug #1582: IO.new Raises Other Errors between 1.8 and 1.9
https://bugs.ruby-lang.org/issues/1582?journal_id=9859
2010-04-04T07:56:49Z
wanabe (_ wanabe)
s.wanabe@gmail.com
<ul><li><strong>Status</strong> changed from <i>Open</i> to <i>Closed</i></li></ul><p>=begin<br>
r24102 についての議論は [Bug <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: IO behaviors on mingw (Closed)" href="https://bugs.ruby-lang.org/issues/2796">#2796</a>] で、とのことですのでクローズさせて頂きます。<br>
問題がありましたら再オープンをお願いします。<br>
=end</p>