[#24395] "a".sum(32) is 0 — Tanaka Akira <akr@...17n.org>
次のように、"a".sum(32) が 0 になるのは変ではないでしょうか。
まつもと ゆきひろです
In article <1096716505.531808.29662.nullmailer@x31.priv.netlab.jp>,
[#24400] IO#read with 1 argument dumps core — Tanaka Akira <akr@...17n.org>
次のようにすると core を吐きます。
[#24405] Auto stack growing on Mac OS X — Mitsuhiro Kondo <miche@...>
近藤と申します。
[#24413] Re: new NKF2拡張ライブラリ — "NARUSE, Yui" <naruse@...>
naruseです。
[#24444] ARGF.read(len) and EOF — Tanaka Akira <akr@...17n.org>
次のように、ARGF.read(len) から読み込もうとしたときに、引数にファイル
In article <1097228154.590547.23205.nullmailer@x31.priv.netlab.jp>,
[#24464] DelegateClass#clone — pegacorn@...
こんにちは。
From: pegacorn@jcom.home.ne.jp
まつもと ゆきひろです
From: Yukihiro Matsumoto <matz@ruby-lang.org>
[#24467] DBM#select: `select': wrong argument type false (expected Data) (TypeError) — Tanaka Akira <akr@...17n.org>
DBM#select を呼び出すと `select': wrong argument type false (expected
[#24481] can't build ruby 1.9.0 on mswin32 — 木村浩一 <kimura.koichi@...>
木村です。
わたなべです。
[#24493] Init_stack prototype — Tanaka Akira <akr@...17n.org>
eval.c 内で Init_stack が
[#24505] File::open and mode 'w+' — sheepman <sheepman@...>
こんにちは、sheepman です。
[#24507] test_truncate_rbuf fails — "URABE Shyouhei aka.mput" <root@...>
mput です。 make test-all で以下のエラーが出ています。
In article <80041A7C-2022-11D9-9FB0-000393735AAE@mput.dip.jp>,
なかだです。
In article <200410172227.i9HMRGnh016104@sharui.nakada.niregi.kanuma.tochigi.jp>,
[#24515] Marshal.load causes core dump — Tanaka Akira <akr@...17n.org>
次のようにすると core を吐きます。
[#24519] raise dumps core — Tanaka Akira <akr@...17n.org>
次のようにすると core を吐きます。
[#24536] 「Rubyの落し方」 v.s. ruby_1_8 — akira yamada / やまだあきら <akira@...>
<URL:http://jp.rubyist.net/magazine/?0002-RubyCore>
なかだです。
まつもと ゆきひろです
2004-10-20 (水) の 21:38 +0900 に Yukihiro Matsumoto さんは書きました:
2004-10-26 (火) の 16:16 +0900 に akira yamada / やまだあきら さんは書きました:
まつもと ゆきひろです
こんにちは、なかむら(う)です。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
2004-10-27 (水) の 11:48 +0900 に Yukihiro Matsumoto さんは書きました:
2004-10-27 (水) の 12:42 +0900 に akira yamada / やまだあきら さんは書きました:
In article <1098888819.9446.14.camel@rice.p.arika.org>,
2004-10-29 (金) の 11:30 +0900 に Tanaka Akira さんは書きました:
まつもと ゆきひろです
永井@知能.九工大です.
[#24537] No warning when using alias with exsisting method name — SASADA Koichi <ko1@...>
ささだです。
[#24540] IO#readpartial dumps core — Tanaka Akira <akr@...17n.org>
次のようにすると core を吐きます。
まつもと ゆきひろです
[#24594] unpack("p") dumps core — Tanaka Akira <akr@...17n.org>
次のようにすると core を吐きます。
[#24595] NKF(nkf2)をCVS Headに入れます — "NARUSE, Yui" <naruse@...>
naruseです。
[#24621] Zlib::Deflate#flush_next_in causes core dump on 1.8 — Tanaka Akira <akr@...17n.org>
次のようにすると core を吐きます。
[#24647] Re: oniguruma: big regexp dumps core — "K.Kosako" <kosako@...>
> 次のようにすると core を吐きます。
In article <20041030082637.6A78A33BFF@beryllium.ruby-lang.org>,
まつもと ゆきひろです
斉藤です。CVS の変更以来、鬼車はそう急がないだろうと
[ruby-dev:24450] Re: ARGF.read(len) and EOF
In article <1097228154.590547.23205.nullmailer@x31.priv.netlab.jp>,
Yukihiro Matsumoto <matz@ruby-lang.org> writes:
> まず、readは決してnilを返しません。指定した長さ(または現状入
> 手可能なすべて)ぶんだけ読み込んで返します。EOFに当たると指定
> した長さより短い文字列を返します。
>
> ARGFは引数にファイルが指定されている時には、そのすべてを連結
> した仮想的なファイルとして動作し、その仮想ファイルが(最後の
> ファイルの)EOFに突き当たってからもう一度読もうとすると、今度
> は改めて標準入力から読み込む、という動作になっています。
>
> ですから、最初のARGF.read(4096)で仮想ファイルの全てを読み込
> みEOFに突き当たり、次のARGF.read(4096)では標準入力から読み込
> むのではないかと思います。ループする場合には
>
> loop do
> s = ARGF.read(4096)
> p s
> break if s.size < 4096
> end
>
> のようになるのではないかと思います。
>
> これでは使いにくいなどありましたら聞かせてください。
その挙動は IO と異なり、polymorphic でないため、IO を受け取るメソッド
に、ARGF を渡せないという問題が発生します。
たとえば、fileutils に FileUtils.compare_stream というメソッドがありま
す。これに IO を渡すと動くのに、ARGF を渡すと標準入力を待ってしまいます。
% echo aaa > a
% ruby -rfileutils -e 'p FileUtils.compare_stream(open("a"), open("a"))'
true
% ruby -rfileutils -e 'p FileUtils.compare_stream(open("a"), ARGF)' a
(標準入力待ち)
一般に read をくりかえし呼ぶとそのうち EOF で nil が返って来る、という
期待をしているライブラリに ARGF を渡すとこういう症状が現われるわけです。
これはおそらくそれなりにある状況で、たとえば、iconv-io もそうです。
% date > aaa
% ruby -riconv/io -e 'p Iconv::Reader.new(open("aaa"), "US-ASCII", "US-ASCII").read'
"Fri Oct 8 19:06:41 JST 2004\n"
% ruby -riconv/io -e 'p Iconv::Reader.new(ARGF, "US-ASCII", "US-ASCII").read' aaa
(標準入力待ち)
そして、今作っている C 言語の字句解析を行なうライブラリでも引っかかり
ました。(それで発見したのですが。)
というわけで、IO が使える所で ARGF が使えないケースがいくつかあるのは
事実で、そのときには使いにくい、というわけです。
EOF を通知した後に標準入力から読み始めるのが根本的な問題だと思うんです
が、これを EOF を通知し続けるようにするのはどうでしょう?
なお、perl の read に ARGV をではちゃんと止まります。
% (date; date) > aaa
% perl -e 'printf "line:[%s]\n", scalar(<>); while(read(ARGV, $buf, 3)) { print "read:[$buf]\n" }' aaa
line:[Fri Oct 8 19:38:36 JST 2004
]
read:[Fri]
read:[ Oc]
read:[t ]
read:[8 1]
read:[9:3]
read:[8:3]
read:[6 J]
read:[ST ]
read:[200]
read:[4
]
まぁ、ARGV を設定したりするのは <> なので、
--
[田中 哲][たなか あきら][Tanaka Akira]