[#17876] cbase in module_eval {...} — Koji Arai <JCA02266@...>
新井です。
[#17881] Re: [ruby-list:35696] Re: サブクラスのオブジェクト生成時に、スーパークラスの初期化を行うには ? — nobu.nakada@...
なかだです。
なかだです。
At Fri, 2 Aug 2002 12:17:33 +0900,
まつもと ゆきひろです
At Sat, 3 Aug 2002 23:32:39 +0900,
まつもと ゆきひろです
At Sun, 4 Aug 2002 18:18:56 +0900,
[#17882] nested method, etc — Minero Aoki <aamine@...>
あおきです。
[#17885] Ruby Development Roadmap? — TAKAHASHI Masayoshi <maki@...>
高橋征義です。
まつもと ゆきひろです
[#17887] next parser (Re: parenthesize argument(s) for future version) — Minero Aoki <aamine@...>
あおきです。スレッド切ります。
まつもと ゆきひろです
あおきです。
まつもと ゆきひろです
あおきです。
まつもと ゆきひろです
まつもと ゆきひろです
あおきです。
まつもと ゆきひろです
[#17889] ruby-bugs-ja incoming/277 — Takaaki Tateishi <ttate@...>
立石です.
At Sat, 3 Aug 2002 05:13:32 +0900,
At Sat, 3 Aug 2002 05:53:29 +0900,
なかだです。
At Mon, 5 Aug 2002 19:15:25 +0900,
At Mon, 5 Aug 2002 22:11:55 +0900,
なかだです。
At Tue, 6 Aug 2002 18:06:06 +0900,
[#17927] Re: import-module (Re: Re: scope-in-state) — keiju@... (石塚圭樹)
けいじゅ@日本ラショナルソフトウェアです.
原です。
けいじゅ@日本ラショナルソフトウェアです.
原です。
けいじゅ@日本ラショナルソフトウェアです.
けいじゅ@日本ラショナルソフトウェアです.
原です。
けいじゅ@日本ラショナルソフトウェアです.
原です。
[#17954] Selection IPv4/IPv6 at TCPSocket — NISHI Takao <zophos@...9.com>
にし@おかやまです。
At Wed, 7 Aug 2002 13:23:37 +0900,
At Sun, 1 Sep 2002 03:31:01 +0900,
At Sun, 1 Sep 2002 04:00:33 +0900,
At Sun, 1 Sep 2002 12:37:05 +0900,
At Sun, 1 Sep 2002 13:00:46 +0900,
あおきです。
あづみです。
なひです。ruby-devな話じゃないので、続きがあればruby-list?
In article <002301c25224$bdbbffb0$85222fc0@sarion.co.jp>,
にし@おかやまです。
[#17965] inferior-ruby-mode and irb — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
なかだです。
けいじゅ@日本ラショナルソフトウェアです.
なかだです。
まつもと ゆきひろです
[#17966] Hash has default block? — Tanaka Akira <akr@...17n.org>
ふと、ひさしぶりに(一年ぶりくらい?) AMarshal に手を入れていて気になっ
Tanaka Akiraさんの<hvo8z3gnvr6.fsf@coulee.a02.aist.go.jp>から
In article <20020809121059.B6DC51560@helium.ruby-lang.org>,
Tanaka Akiraさんの<hvo65yknitf.fsf@coulee.a02.aist.go.jp>から
In article <20020812052018.C7F9B1671@helium.ruby-lang.org>,
まつもと ゆきひろです
まつもと ゆきひろです
Yukihiro Matsumotoさんの
In article <20020813075933.DBB611415@helium.ruby-lang.org>,
まつもと ゆきひろです
In article <1029229143.399680.2549.nullmailer@picachu.netlab.jp>,
In article <1029229143.399680.2549.nullmailer@picachu.netlab.jp>,
まつもと ゆきひろです
In article <1029423141.763951.25373.nullmailer@picachu.netlab.jp>,
まつもと ゆきひろです
In article <1029464034.601483.27585.nullmailer@picachu.netlab.jp>,
まつもと ゆきひろです
In article <1029468386.308580.28125.nullmailer@picachu.netlab.jp>,
まつもと ゆきひろです
In article <1029471721.083381.28488.nullmailer@picachu.netlab.jp>,
ふと気がついたんですが、core を出せるのは allocation framework のせい
けいじゅ@日本ラショナルソフトウェアです.
In article <200208201159.UAA19826.keiju@ishitsuka.com>,
[#17968] [PATCH] source file/line of Proc — nobu.nakada@...
なかだです。
まつもと ゆきひろです
新井です。
At Sat, 7 Sep 2002 20:23:46 +0900,
なかだです。
新井です。
At Sun, 8 Sep 2002 04:01:33 +0900,
[#17982] optimization module (Re: [ruby-list:35735] Re: tail recursion elimination) — Tanaka Akira <akr@...17n.org>
In article <200208101420.g7AEKSWN009284@smtp16.dti.ne.jp>,
At Mon, 12 Aug 2002 22:33:38 +0900,
In article <200208121403.g7CE3VWN022924@smtp16.dti.ne.jp>,
At Tue, 13 Aug 2002 12:27:32 +0900,
In article <200208130601.g7D61VWN014235@smtp16.dti.ne.jp>,
なかだです。
[#18038] Kernel::putc ignores $defout — Tietew <tietew-ml-ruby-dev@...>
Tietew です。
[#18052] [Bug] rb_thread_create sometimes returns 0 — Tietew <tietew-ml-ruby-dev@...>
Tietew です。
まつもと ゆきひろです
[#18074] source file name at -r option — nobu.nakada@...
なかだです。
なかだです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
In article <1033179659.378897.17493.nullmailer@picachu.netlab.jp>,
なひです。
なかだです。
まつもと ゆきひろです
なかだです。
なひです。
[#18076] Win32 signal, process etc — nobu.nakada@...
なかだです。
こんにちは、なかむら(う)です。
なかだです。
なかだです。
[#18077] load/require from current directory — Minero Aoki <aamine@...>
あおきです。
[#18087] IO.read returns nil with empty file — Tanaka Akira <akr@...17n.org>
ふと、空ファイルに対して IO.read を使って nil が返ってきて驚きました。
[#18103] autoload patch for ruby-1.7 — "Yoshinori K. Okuji" <okuji@...>
[ruby-dev:16180]でトップレベル以外の定数についてもautoloadができるよう
あおきです。
At Sun, 1 Sep 2002 15:53:24 +0900,
なかだです。
あおきです。
まつもと ゆきひろです
あおきです。
まつもと ゆきひろです
なかだです。
あおきです。
[#18104] Shim with VC++5 — "U.Nakamura" <usa@...>
CVSにあるShimをVC++5でmakeしようとしたところ、いくつか問題に
なかだです。
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
[#18109] mkmf.rb and extmk.rb — WATANABE Hirofumi <eban@...>
わたなべです。
まつもと ゆきひろです
わたなべです。
まつもと ゆきひろです
わたなべです。
早坂@北陸先端です.
わたなべです。
早坂@北陸先端です.
わたなべです。
早坂@北陸先端です.
[ruby-dev:17871] Re: non-blocking IO
なかだです。
At Wed, 31 Jul 2002 22:44:28 +0900,
Yukihiro Matsumoto wrote:
> ということで、現時点での私の気持ちは
>
> * getsなど行指向入力はEWOULDBLOCKを無視
> * read系はEWOULDBLOCKがきたらすでに読み込んだぶんを文字列
> で返す。
すでに読み込んだぶんが0だったら単に空文字列ということでしょうか?
ZnZさんのブロックを使うという案もどうかなと思うのですが…。
<http://znz.s1.xrea.com/t/?date=20020731#p02>
それと、1.6で末尾にゴミがつきます。
Index: io.c
===================================================================
RCS file: /cvs/ruby/src/ruby/io.c,v
retrieving revision 1.69.2.27
diff -u -2 -p -r1.69.2.27 io.c
--- io.c 20 May 2002 04:32:54 -0000 1.69.2.27
+++ io.c 31 Jul 2002 18:21:52 -0000
@@ -464,5 +464,5 @@ io_fread(ptr, len, f)
int c;
- while (n--) {
+ for (; n > 0; --n) {
if (!READ_DATA_PENDING(f)) {
rb_thread_wait_fd(fileno(f));
@@ -474,7 +474,7 @@ io_fread(ptr, len, f)
if (ferror(f)) {
if (errno == EINTR) continue;
- if (errno == EAGAIN) return len - n;
+ if (errno == EAGAIN) break;
#if defined(EWOULDBLOCK) && EWOULDBLOCK != EAGAIN
- if (errno == EWOULDBLOCK) return len - n;
+ if (errno == EWOULDBLOCK) break;
#endif
return 0;
@@ -486,5 +486,5 @@ io_fread(ptr, len, f)
}
- return len - n - 1;
+ return len - n;
}
Index: io.c
===================================================================
RCS file: /cvs/ruby/src/ruby/io.c,v
retrieving revision 1.142
diff -u -2 -p -r1.142 io.c
--- io.c 28 Jun 2002 18:26:00 -0000 1.142
+++ io.c 31 Jul 2002 18:11:27 -0000
@@ -259,4 +259,24 @@ io_fflush(f, fptr)
}
+void
+rb_io_wait_readable(f)
+ int f;
+{
+ fd_set rfds;
+ FD_ZERO(&rfds);
+ FD_SET(f, &rfds);
+ rb_thread_select(f + 1, &rfds, NULL, NULL, NULL);
+}
+
+void
+rb_io_wait_writable(f)
+ int f;
+{
+ fd_set wfds;
+ FD_ZERO(&wfds);
+ FD_SET(f, &wfds);
+ rb_thread_select(f + 1, NULL, &wfds, NULL, NULL);
+}
+
/* writing functions */
static VALUE
@@ -266,5 +286,6 @@ io_write(io, str)
OpenFile *fptr;
FILE *f;
- long n;
+ long n, r;
+ register char *ptr;
rb_secure(4);
@@ -282,21 +303,28 @@ io_write(io, str)
f = GetWriteFile(fptr);
+ ptr = RSTRING(str)->ptr;
+ n = RSTRING(str)->len;
+ do {
#ifdef __human68k__
- {
- register char *ptr = RSTRING(str)->ptr;
- n = RSTRING(str)->len;
- while (--n >= 0)
- if (fputc(*ptr++, f) == EOF)
- break;
- n = ptr - RSTRING(str)->ptr;
- }
- if (n != RSTRING(str)->len && ferror(f))
- rb_sys_fail(fptr->path);
+ if (fputc(*ptr++, f) == EOF) {
+ if (ferror(f)) rb_sys_fail(fptr->path);
+ break;
+ }
+ --n;
#else
- n = fwrite(RSTRING(str)->ptr, 1, RSTRING(str)->len, f);
- if (n != RSTRING(str)->len && ferror(f)) {
+ r = fwrite(ptr, 1, n, f);
+ if (r == n || !ferror(f)) break;
+#ifdef EWOULDBLOCK
+ if (errno == EWOULDBLOCK) {
+ rb_io_wait_writable(fileno(f));
+ ptr += r;
+ n -= r;
+ continue;
+ }
+#endif
rb_sys_fail(fptr->path);
- }
#endif
+ } while (n > 0);
+ n = ptr - RSTRING(str)->ptr;
if (fptr->mode & FMODE_SYNC) {
io_fflush(f, fptr);
@@ -542,4 +570,24 @@ rb_io_to_io(io)
/* reading functions */
+static void
+io_retryable(f, path)
+ FILE *f;
+ const char *path;
+{
+ switch (errno) {
+ case EAGAIN:
+#if defined(EWOULDBLOCK) && EWOULDBLOCK != EAGAIN
+ case EWOULDBLOCK:
+#endif
+ rb_io_wait_readable(fileno(f));
+ /* fall through */
+ case EINTR:
+ clearerr(f);
+ break;
+ default:
+ rb_sys_fail(path);
+ break;
+ }
+}
static long
@@ -583,4 +631,5 @@ io_fread(ptr, len, f)
switch (errno) {
case EINTR:
+ clearerr(f);
continue;
case EAGAIN:
@@ -588,4 +637,5 @@ io_fread(ptr, len, f)
case EWOULDBLOCK:
#endif
+ clearerr(f);
#ifdef __BORLANDC__
case EPIPE:
@@ -654,4 +704,5 @@ read_all(fptr, siz)
if (n == 0 && bytes == 0) {
if (feof(fptr->f)) return Qnil;
+ if (!ferror(fptr->f)) return rb_str_new(0, 0);
rb_sys_fail(fptr->path);
}
@@ -753,6 +804,6 @@ appendline(fptr, delim, strp)
if (c == EOF) {
if (ferror(f)) {
- if (errno == EINTR) continue;
- rb_sys_fail(fptr->path);
+ io_retryable(f, fptr->path);
+ continue;
}
return c;
@@ -1065,6 +1116,6 @@ rb_io_each_byte(io)
if (c == EOF) {
if (ferror(f)) {
- if (errno == EINTR) continue;
- rb_sys_fail(fptr->path);
+ io_retryable(f, fptr->path);
+ continue;
}
break;
@@ -1096,6 +1147,6 @@ rb_io_getc(io)
if (c == EOF) {
if (ferror(f)) {
- if (errno == EINTR) goto retry;
- rb_sys_fail(fptr->path);
+ io_retryable(f, fptr->path);
+ continue;
}
return Qnil;
--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦