[#26430] compile error of missing/*.c — nobuyoshi nakada <nobuyoshi.nakada@...>
なかだです。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
こんにちは、なかむら(う)です。
[#26443] cvs [diff aborted]: cannot open file .cvsignore for comparing: No such file or directory — Tanaka Akira <akr@...17n.org>
最近、cvs diff に -k option を付けると、エラーになる (ことがある) ので
[#26463] String#each_byte and String#each_char — "NARUSE, Yui" <naruse@...>
成瀬です。
[#26468] $SAFE=1 の open-uri で redirect 時にエラー — Kazuhiko <kazuhiko@...>
かずひこです。
In article <m3zmsylimn.wl%kazuhiko@fdiary.net>,
まつもと ゆきひろです
In article <1120754832.716261.15867.nullmailer@x31.priv.netlab.jp>,
まつもと ゆきひろです
In article <1120762886.189058.18880.nullmailer@x31.priv.netlab.jp>,
まつもと ゆきひろです
In article <1120810939.815280.27104.nullmailer@x31.priv.netlab.jp>,
まつもと ゆきひろです
前田です。
まつもと ゆきひろです
In article <42CF1918.5000603@ruby-lang.org>,
前田です。
In article <42D7C230.7030509@ruby-lang.org>,
In article <42DDBA82.7030307@ruby-lang.org>,
[#26493] can't handle \c\ — KIMURA Koichi <kbk@...>
木村です。
卜部でございます。
木村です。
[#26508] rmdir(2) on windows doesn't set ENOTDIR — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
山本です。
まつもと ゆきひろです
山本です。
山本です。
[#26530] removing static variables in parse.y — nobuyoshi nakada <nobuyoshi.nakada@...>
なかだです。
[#26566] cannot compile io.c on windows — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
山本です。
[#26574] SystemCallError.new("abc") => #<SystemCallError: unknown error - ab> — Tanaka Akira <akr@...17n.org>
次のように、メッセージの最後が切れます。
まつもと ゆきひろです
なかだです。
山本です。
まつもと ゆきひろです
なかだです。
山本です。
なかだです。
山本です。
なかだです。
なかだです。
まつもと ゆきひろです
山本です。
この変更があってからだと思うのですが、リンカが以下のように警告を発するよ
卜部です。自己レス
At Sat, 30 Jul 2005 02:32:38 +0900,
[#26594] test_s_open_lock failed on Solaris — Tanaka Akira <akr@...17n.org>
次のように、Solaris で test_s_open_lock が失敗します。
[#26618] Re: [ruby-cvs] ruby/ext/socket, ruby, ruby: * ext/socket/socket.c (ruby_connect): break immediately if a — Tanaka Akira <akr@...17n.org>
In article <20050728015209.0F30DC6734@lithium.ruby-lang.org>,
In article <1122518643.429222.1408.nullmailer@x31.priv.netlab.jp>,
[#26623] Ruby2.0BlockParameterNotation — SASADA Koichi <ko1@...>
ささだです。
まつもと ゆきひろです
[#26628] show information of '--enable-pthread' — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
わたなべです。
こんにちは、なかむら(う)です。
永井@知能.九工大です.
永井@知能.九工大です.
In message <20050731.094203.74726476.nagai@ai.kyutech.ac.jp>
永井@知能.九工大です.
こんにちは、なかむら(う)です。
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
なかだです。
永井@知能.九工大です.
永井@知能.九工大です.
こんにちは、なかむら(う)です。
永井@知能.九工大です.
こんにちは、なかむら(う)です。
こんにちは、なかむら(う)です。
[#26639] SEGV at zsuper with anonymous rest args. — nobu@...
なかだです。
まつもと ゆきひろです
山本です。
なかだです。
[ruby-dev:26569] Re: cannot compile io.c on windows
山本です。
>>よくは知らないのですが、windows にも nonblocking I/O は存在すると聞い
>>たことがある気がするので、単に削るのは不適切なように感じます。
もしくは、わからないときは分割しないほうが良い、ということでしょうか。
Index: io.c
===================================================================
RCS file: /src/ruby/io.c,v
retrieving revision 1.368
diff -u -w -b -p -r1.368 io.c
--- io.c 18 Jul 2005 00:59:32 -0000 1.368
+++ io.c 18 Jul 2005 10:54:33 -0000
@@ -375,6 +375,7 @@ io_alloc(klass)
static int
wsplit_p(OpenFile *fptr)
{
+#if defined(HAVE_FCNTL) && defined(F_GETFL) && defined(O_NONBLOCK)
int r;
if (!(fptr->mode & FMODE_WSPLIT_INITIALIZED)) {
struct stat buf;
@@ -387,6 +388,7 @@ wsplit_p(OpenFile *fptr)
}
fptr->mode |= FMODE_WSPLIT_INITIALIZED;
}
+#endif
return fptr->mode & FMODE_WSPLIT;
}
または
Index: io.c
===================================================================
RCS file: /src/ruby/io.c,v
retrieving revision 1.368
diff -u -w -b -p -r1.368 io.c
--- io.c 18 Jul 2005 00:59:32 -0000 1.368
+++ io.c 18 Jul 2005 10:58:47 -0000
@@ -372,6 +372,7 @@ io_alloc(klass)
return (VALUE)io;
}
+#if defined(HAVE_FCNTL) && defined(F_GETFL) && defined(O_NONBLOCK)
static int
wsplit_p(OpenFile *fptr)
{
@@ -389,6 +390,7 @@ wsplit_p(OpenFile *fptr)
}
return fptr->mode & FMODE_WSPLIT;
}
+#endif
static int
io_fflush(fptr)
@@ -409,12 +411,14 @@ io_fflush(fptr)
wbuf_off = fptr->wbuf_off;
wbuf_len = fptr->wbuf_len;
l = fptr->wbuf_len;
+#if defined(HAVE_FCNTL) && defined(F_GETFL) && defined(O_NONBLOCK)
if (PIPE_BUF < l &&
!rb_thread_critical &&
!rb_thread_alone() &&
wsplit_p(fptr)) {
l = PIPE_BUF;
}
+#endif
TRAP_BEG;
r = write(fptr->fd, fptr->wbuf+fptr->wbuf_off, l);
TRAP_END; /* xxx: signal handler may modify wbuf */
@@ -563,12 +567,14 @@ io_fwrite(str, fptr)
}
retry:
l = n;
+#if defined(HAVE_FCNTL) && defined(F_GETFL) && defined(O_NONBLOCK)
if (PIPE_BUF < l &&
!rb_thread_critical &&
!rb_thread_alone() &&
wsplit_p(fptr)) {
l = PIPE_BUF;
}
+#endif
TRAP_BEG;
r = write(fptr->fd, RSTRING(str)->ptr+offset, l);
TRAP_END; /* xxx: signal handler may modify given string. */
あと気になったのですが、F_SETFL + O_NONBLOCK でモードが変更された場合、
rb_io_ctl 辺りで FMODE_WSPLIT_INITIALIZED をクリアしないと追随できない
ような気がします。(間違ってたらすみません)
でも直接 fcntl(2) を呼ばれると追随できませんね・・・