[#40298] Re: [ruby-cvs:33760] Ruby:r26545 (trunk): Wed Feb 3 10:12:09 2010 Aaron Patterson <tenderlove@ruby-lang.org> — "NARUSE, Yui" <naruse@...>

成瀬です。

29 messages 2010/02/03
[#40307] Re: [ruby-cvs:33760] Ruby:r26545 (trunk): Wed Feb 3 10:12:09 2010 Aaron Patterson <tenderlove@ruby-lang.org> — KOSAKI Motohiro <kosaki.motohiro@...> 2010/02/03

小崎です

[#40339] Re: [ruby-cvs:33760] Ruby:r26545 (trunk): Wed Feb 3 10:12:09 2010 Aaron Patterson <tenderlove@ruby-lang.org> — Tanaka Akira <akr@...> 2010/02/07

2010年2月3日21:07 KOSAKI Motohiro <kosaki.motohiro@gmail.com>:

[#40345] Re: [ruby-cvs:33760] Ruby:r26545 (trunk): Wed Feb 3 10:12:09 2010 Aaron Patterson <tenderlove@ruby-lang.org> — "NARUSE, Yui" <naruse@...> 2010/02/07

成瀬です。

[#40490] Re: [ruby-cvs:33760] Ruby:r26545 (trunk): Wed Feb 3 10:12:09 2010 Aaron Patterson <tenderlove@ruby-lang.org> — "NARUSE, Yui" <naruse@...> 2010/02/25

成瀬です。

[#40511] Re: [ruby-cvs:33760] Ruby:r26545 (trunk): Wed Feb 3 10:12:09 2010 Aaron Patterson <tenderlove@ruby-lang.org> — Aaron Patterson <aaron.patterson@...> 2010/02/27

2010/2/25 NARUSE, Yui <naruse@airemix.jp>:

[#40513] Re: [ruby-cvs:33760] Ruby:r26545 (trunk): Wed Feb 3 10:12:09 2010 Aaron Patterson <tenderlove@ruby-lang.org> — "U.Nakamura" <usa@...> 2010/02/27

アーロン宛

[#40317] [Bug:trunk] TCPServer#gets gets stuck — Yusuke ENDOH <mame@...>

遠藤です。

19 messages 2010/02/04
[#40371] Re: [Bug:trunk] TCPServer#gets gets stuck — Yusuke ENDOH <mame@...> 2010/02/09

遠藤です。

[#40382] [Bug:trunk] rubyspec: ObjectSpace.define_finalizer doesn't call self-referencing finalizers FAILED — Yusuke ENDOH <mame@...>

なかださんかまつもとさん

9 messages 2010/02/10

[#40418] [Feature #2746] ビルドする拡張ライブラリを configure 時に指定するための --with-exts オプション — Kenta Murata <redmine@...>

Feature #2746: ビルドする拡張ライブラリを configure 時に指定するための --with-exts オプション

11 messages 2010/02/15

[#40461] respond_to?(<protected method name>) returns true — "Akinori MUSHA" <knu@...>

 今さらかもしれませんが、 respond_to? で protected メソッドを

14 messages 2010/02/22
[#40462] Re: respond_to?(<protected method name>) returns true — Yukihiro Matsumoto <matz@...> 2010/02/23

まつもと ゆきひろです

[#40463] Re: respond_to?(<protected method name>) returns true — "Akinori MUSHA" <knu@...> 2010/02/23

At Tue, 23 Feb 2010 14:09:52 +0900,

[#40467] Re: [ruby-cvs:33954] Ruby:r26739 (trunk): * ext/openssl/ossl_digest.c (GetDigestPtr): Allow to pass the — "NARUSE, Yui" <naruse@...>

成瀬です。

27 messages 2010/02/23
[#40468] Re: [ruby-cvs:33954] Ruby:r26739 (trunk): * ext/openssl/ossl_digest.c (GetDigestPtr): Allow to pass the — "Akinori MUSHA" <knu@...> 2010/02/23

At Wed, 24 Feb 2010 01:28:24 +0900,

[#40469] Re: [ruby-cvs:33954] Ruby:r26739 (trunk): * ext/openssl/ossl_digest.c (GetDigestPtr): Allow to pass the — "NARUSE, Yui" <naruse@...> 2010/02/23

(2010/02/24 1:57), Akinori MUSHA wrote:

[#40470] Re: [ruby-cvs:33954] Ruby:r26739 (trunk): * ext/openssl/ossl_digest.c (GetDigestPtr): Allow to pass the — "Akinori MUSHA" <knu@...> 2010/02/23

At Wed, 24 Feb 2010 02:07:00 +0900,

[#40472] Re: [ruby-cvs:33954] Ruby:r26739 (trunk): * ext/openssl/ossl_digest.c (GetDigestPtr): Allow to pass the — "NAKAMURA, Hiroshi" <nakahiro@...> 2010/02/23

2010/2/24 Akinori MUSHA <knu@idaemons.org>:

[#40473] Re: [ruby-cvs:33954] Ruby:r26739 (trunk): * ext/openssl/ossl_digest.c (GetDigestPtr): Allow to pass the — "Akinori MUSHA" <knu@...> 2010/02/23

At Wed, 24 Feb 2010 06:06:13 +0900,

[#40486] Re: [ruby-cvs:33954] Ruby:r26739 (trunk): * ext/openssl/ossl_digest.c (GetDigestPtr): Allow to pass the — "NAKAMURA, Hiroshi" <nakahiro@...> 2010/02/25

2010/2/24 Akinori MUSHA <knu@idaemons.org>:

[#41367] Re: [ruby-cvs:33954] Ruby:r26739 (trunk): * ext/openssl/ossl_digest.c (GetDigestPtr): Allow to pass the — "NAKAMURA, Hiroshi" <nakahiro@...> 2010/05/20

2010/2/25 NAKAMURA, Hiroshi <nakahiro@gmail.com>:

[#41373] Re: [ruby-cvs:33954] Ruby:r26739 (trunk): * ext/openssl/ossl_digest.c (GetDigestPtr): Allow to pass the — "Akinori MUSHA" <knu@...> 2010/05/20

 長いことほとんど Ruby に時間が割けておらずすみません。

[#41518] Re: [ruby-cvs:33954] Ruby:r26739 (trunk): * ext/openssl/ossl_digest.c (GetDigestPtr): Allow to pass the — "NAKAMURA, Hiroshi" <nakahiro@...> 2010/06/03

2010/5/20 Akinori MUSHA <knu@idaemons.org>:

[#41520] Re: [ruby-cvs:33954] Ruby:r26739 (trunk): * ext/openssl/ossl_digest.c (GetDigestPtr): Allow to pass the — "NARUSE, Yui" <naruse@...> 2010/06/03

成瀬です。

[#40492] [Bug #2794] Aborted (core dumped) BUG on Ruby/DL — Takao NISHI <redmine@...>

Bug #2794: Aborted (core dumped) BUG on Ruby/DL

10 messages 2010/02/26

[ruby-dev:40413] Re: [Bug #2516] IO#reopen Compatibility (original: )

From: KOSAKI Motohiro <kosaki.motohiro@...>
Date: 2010-02-13 05:06:26 UTC
List: ruby-dev #40413
2010年2月11日15:24 Yusuke Endoh <redmine@ruby-lang.org>:
> チケット #2516 が更新されました。 (by Yusuke Endoh)
>
>
> 遠藤です。
>
> IO#reopen について調べているのですが、さっぱりわかりません。
>
>
>  $ cat foo.txt
>  1
>  2
>  3
>
>  # 1.8: 途中位置の File に reopen したら読み込めない
>  f1, f2 = File.new("foo.txt"), File.new("foo.txt")
>  f2.gets
>  f1.reopen(f2)
>  p f1.gets #=> nil
>  p f1.gets #=> nil
>  p f1.gets #=> nil
>  p f1.pos  #=> 2
>
>  # 1.9: reopen した後は get 早い者勝ち? pos の結果が違う
>  f1, f2 = File.new("foo.txt"), File.new("foo.txt")
>  f1.reopen(f2)
>  p f1.gets #=> "1\n"
>  p f2.gets #=> nil
>  p f1.pos  #=> 2
>  p f2.pos  #=> 2
>
>  f1, f2 = File.new("foo.txt"), File.new("foo.txt")
>  f1.reopen(f2)
>  p f2.gets #=> "1\n"
>  p f1.gets #=> nil
>  p f1.pos  #=> 6
>  p f2.pos  #=> 2
>
>
> reopen の想定ユースケースってどんなんでしょうか。
> dup2 のようなものかと思っていたのですが、そんな挙動でもないですよね。
> ユースケース次第では、reopen の引数に渡された IO は close してしまう
> 方が混乱しなくてすむと思います。
>
> # できればユースケースの議論の前に挙動が変わった理由を把握したかった
> # のですが、何がバグで何が仕様かわかりませんでした。

Linuxだと同等の以下のCプログラムが

#include <stdio.h>

int main(void)
{
        FILE *f1, *f2;
        char buf[80];

        f1 = fopen("inputfile", "r+");
        printf("%s", fgets(buf, 80, f1));
        f2 = freopen("inputfile", "r+", f1);

        printf("%s", fgets(buf, 80, f1));
        printf("%s", fgets(buf, 80, f1));
        printf("%s", fgets(buf, 80, f1));

        printf("pos %d\n", ftell(f1));
        printf("pos %d\n", ftell(f2));

}

こうなります。

1
1
2
3
pos 6
pos 6

内部的には struct FILEが struct _IO_marker をポイントしていて、 _IO_markerは共有、そっちでpos管理している。

また SUSをみると

http://www.opengroup.org/onlinepubs/009695399/functions/freopen.html

最初に引数streamをflushしてcloseするよん。とか書いてあるけど、Linuxは単にdupしてるだけなんでcloseしてないみたい。なんか互換性の理由があるのかな?

IO系は見るからに標準Cライブラリの影響が色濃いので、これに合わせればいいんじゃないでしょうかねぇ・・・
nalshさんあたりが悲鳴を上げる恐れがありますが。

In This Thread