From: Yutaka Kanemoto Date: 2011-01-29T10:42:39+09:00 Subject: [ruby-dev:43140] Fwd: [ruby-cvs:37153] Ruby:r29960 (trunk): * io.c (struct argf): make lineno long, and reorder members. 金本と申します。 AIXでこんなことになっていたので調べてみると、 % ruby -v -e 'gets' ruby 1.9.3dev (2011-01-29 trunk 30717) [powerpc-aix5.3.0.0] -e:1:in `gets': uninitialized stream (IOError) from -e:1:in `gets' from -e:1:in `
' AIXではcharがunsigned扱いでした。 io.cのコンパイルでこんなことをいわれます。 ../trunk/io.c: In function 'argf_next_argv': ../trunk/io.c:6941: warning: comparison is always false due to limited range of data type ... struct argf { VALUE filename, current_file; long last_lineno; /* $. */ long lineno; VALUE argv; char *inplace; struct rb_io_enc_t encs; char init_p, next_p, binmode; }; の最後のメンバをsigned charかint8_tにさせていただきたいのですが、 何か考慮点はありますでしょうか? とりあえず手元にあったi386の環境で、signed charにしてもmake test-allで結果が変わらなかったのは確認しました。 #ifdef _AIXでそこだけ分けたほうがいいでしょうか? よろしくお願いします。 ---------- Forwarded message ---------- From: Date: 2010/11/28 Subject: [ruby-cvs:37153] Ruby:r29960 (trunk): * io.c (struct argf): make lineno long, and reorder members. To: ruby-cvs@ruby-lang.org nobu 2010-11-28 14:56:39 +0900 (Sun, 28 Nov 2010) New Revision: 29960 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=29960 Log: * io.c (struct argf): make lineno long, and reorder members. Modified files: trunk/ChangeLog trunk/io.c -- Yutaka KANEMOTO http://d.hatena.ne.jp/kinpoco/