[#25010] test_flush fails. — "URABE Shyouhei aka.mput" <root@...>
mput です。以下のように test_flush が失敗します。
[#25031] Method#to_proc とブロックの引渡し — Masahiro Sakai (酒井政裕) <sakai@...>
酒井といいます。
[#25035] 拡張ライブラリへの共有ライブラリのPATHの埋め込み — Takahiro Kambe <taca@...>
こんにちは。
なかだです。
In message <200412060607.iB667giF007533@sharui.nakada.niregi.kanuma.tochigi.jp>
なかだです。
In message <200412070015.iB70FAiF012770@sharui.nakada.niregi.kanuma.tochigi.jp>
2004-12-07 (火) の 12:27 +0900 に Takahiro Kambe さんは書きました:
こんにちは、なかむら(う)です。
In message <1102395885.21598.19.camel@rice.p.arika.org>
なかだです。
In message <200412071613.iB7GD2r4007918@sharui.nakada.niregi.kanuma.tochigi.jp>
[#25041] temporal locking already locked string on simultaneous write — Tanaka Akira <akr@...17n.org>
同じ文字列をほぼ同時に IO に書き込むと、temporal locking already
まつもと ゆきひろです
In article <1102133507.339625.10453.nullmailer@x31.priv.netlab.jp>,
In article <1102176395.383559.21204.nullmailer@x31.priv.netlab.jp>,
まつもと ゆきひろです
Tietew です。
[#25054] rexml — Takahiro Kambe <taca@...>
こんばんは。
なかだです。
In message <200412051451.iB5EpYiF009060@sharui.nakada.niregi.kanuma.tochigi.jp>
まつもと ゆきひろです
In message <1102290330.040938.1210.nullmailer@x31.priv.netlab.jp>
[#25096] double free problem — "Akinori MUSHA" <knu@...>
ご無沙汰しております。
Hi,
In article <1102401703.030252.2480.nullmailer@x31.priv.netlab.jp>,
まつもと ゆきひろです
Yukihiro Matsumoto wrote:
Yukihiro Matsumoto wrote:
In article <41BEF768.7030008@ttsky.net>,
Tanaka Akira wrote:
[#25101] non-stdio buffering — Tanaka Akira <akr@...17n.org>
えぇと、今回 1.9 でなにが起きたのかを私が把握している範囲でまとめてお
こんにちは、なかむら(う)です。
In article <20041208.033521.635728872.gotoyuzo@sawara.does.notwork.org>,
[#25103] ruby_xrealloc dumps core — Tietew <tietew-ml-ruby-dev@...>
Tietew です。
[#25134] Set/test_eq failed on Tru64UNIX — Minero Aoki <aamine@...>
青木です。
なかだです。
まつもと ゆきひろです
[#25152] 1.8 reopen problem with duplex popen — Tanaka Akira <akr@...17n.org>
次のように、1.8 で双方向 popen な IO を reopen するとエラーになること
なかだです。
In article <200412110142.iBB1gDIh004622@sharui.nakada.niregi.kanuma.tochigi.jp>,
なかだです。
わたなべです。
In article <41-Tue21Dec2004123451+0900-eban@os.rim.or.jp>,
[#25158] core dump on NetBSD 2.0 — Tanaka Akira <akr@...17n.org>
NetBSD 2.0 で次のようにすると core を吐きます。
In article <87hdmsivva.fsf@serein.a02.aist.go.jp>,
In article <87ekhwiv7g.fsf@serein.a02.aist.go.jp>,
なかだです。
In article <200412130040.iBD0e8Qh003275@sharui.nakada.niregi.kanuma.tochigi.jp>,
まつもと ゆきひろです
In article <1102906796.625997.23964.nullmailer@x31.priv.netlab.jp>,
前田です。
In article <41BD40DC.6030706@ruby-lang.org>,
まつもと ゆきひろです
[#25160] ripper in snapshot.tar.gz — Tanaka Akira <akr@...17n.org>
ふと、とある autoconf も bison も入っていない環境で Ruby をコンパイル
[#25193] 1.8.2 release schedule — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
[#25226] Zlib::Deflate.deflate dumps core — Tanaka Akira <akr@...17n.org>
次のようにすると core を吐きます。
[#25236] BSD/OS rlim_t — OHARA Shigeki <os@...>
大原です。
[#25252] core dump if local_append_gen invokes GC — Tanaka Akira <akr@...17n.org>
先程 1.9 を make test-all したところ、
[#25270] BSD/OS LDSHARED — OHARA Shigeki <os@...>
大原です。
[#25283] 1.8.2 preview4 — Yukihiro Matsumoto <matz@...>
Hello,
[#25292] tkutil is installed on no tcl/tk environment — Tanaka Akira <akr@...17n.org>
ふと気がついたのですが、Tcl/Tk が入っていない環境でも、tkutil は
[#25299] Re: リリース準備 — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
高橋征義です。
山本です。
小西 弘将です。
山本です。
山本です。
山本です。
永井@知能.九工大です.
[#25302] test_readline.rb blocks on BSD again — GOTOU Yuuzou <gotoyuzo@...>
In message <20041223175402.3116FC6718@lithium.ruby-lang.org>,
In message <20041224.131211.846943951.gotoyuzo@sawara.does.notwork.org>,
まつもと ゆきひろです
わたなべです。
In message <20041225140050.378109.eban@os.rim.or.jp>,
なかだです。
In article <200412251620.iBPGK1xA009288@sharui.nakada.niregi.kanuma.tochigi.jp>,
なかだです。
In article <200412260300.iBQ3038u005055@sharui.nakada.niregi.kanuma.tochigi.jp>,
[#25336] webrick/httpauth.rb must require 'base64' — sheepman <sheepman@...>
こんにちは、sheepman です。
[#25341] String#center dumps core — Tanaka Akira <akr@...17n.org>
次のようにすると core を吐きます。
なかだです。
[#25342] 1.9.0でbcc版がコンパイルできない — 小西 弘将 <konishih@...6.so-net.ne.jp>
小西 弘将です。
山本です。
[#25365] method(:p).to_proc.call([]) — Masahiro Sakai (酒井政裕) <sakai@...>
酒井です。
[#25370] FileUtils.copy_stream on nonblocking IO — Tanaka Akira <akr@...17n.org>
FileUtils.copy_stream を nonblocking な IO に対して使うと、次のように
[ruby-dev:25356] Re: 1.9.0でbcc版がコンパイルできない
山本です。
>問題を最小限にしてみると、
># sample.rb --------------------------------------------------
>until false
>end
>#-------------------------------------------------------------
>で
>C:\>miniruby.exe sample.rb
>で、再現できました。until,while構文の解析でこけているみたいです。
どうも__int64周りのコンパイラのバグのようです。デバッガでトレースしたところ
parse.c 6759: {COND_POP();;}
mov eax,[ebp+0x08]
mov edx,[eax+0x2c]
mov eax,[eax+0x28] # eax にアドレス eax+0x28 の数値(64bit整数の下位32bit)を読み込む
shrd eax,edx,0x01 # eax に格納された数値に対しシフト演算
shr edx,1
mov [eax+0x2c],edx # 落ちる。eax がアドレスを指していないため
mov [eax+0x28],eax
となり、落ちました。落ちる行の前に
mov eax,[ebp+0x08]
が必要なはずですが、そうなっていません。
落ちないようにする方法としては、
Index: parse.y
===================================================================
RCS file: /src/ruby/parse.y,v
retrieving revision 1.364
diff -u -w -b -p -r1.364 parse.y
--- parse.y 20 Dec 2004 01:52:06 -0000 1.364
+++ parse.y 27 Dec 2004 07:12:57 -0000
@@ -66,11 +66,7 @@ enum lex_state_e {
EXPR_TERNARY, /* alike EXPR_BEG but immediate after ternary op. */
};
-# ifdef HAVE_LONG_LONG
-typedef unsigned LONG_LONG stack_type;
-# else
typedef unsigned long stack_type;
-# endif
# define BITSTACK_PUSH(stack, n) (stack = (stack<<1)|((n)&1))
# define BITSTACK_POP(stack) (stack >>= 1)
として stack_type に unsigned long を使うか、(普通は unsigned __int64 を使う)
Index: parse.y
===================================================================
RCS file: /src/ruby/parse.y,v
retrieving revision 1.364
diff -u -w -b -p -r1.364 parse.y
--- parse.y 20 Dec 2004 01:52:06 -0000 1.364
+++ parse.y 27 Dec 2004 07:13:44 -0000
@@ -73,7 +73,7 @@ typedef unsigned long stack_type;
# endif
# define BITSTACK_PUSH(stack, n) (stack = (stack<<1)|((n)&1))
-# define BITSTACK_POP(stack) (stack >>= 1)
+# define BITSTACK_POP(stack) (stack = stack >> 1)
# define BITSTACK_LEXPOP(stack) (stack = (stack >> 1) | (stack & 1))
# define BITSTACK_SET_P(stack) (stack&1)
とすると、落ちなくなります。
/////////////////////////////////////
より単純なコードでも落とせます。ただし、これは bcc32 に -Od をつけないと落ちません。(bcc32 -v -Od)
#include <stdio.h>
struct hoge
{
unsigned __int64 value;
};
void test(void)
{
struct hoge a;
struct hoge *p = &a;
p->value = 0;
p->value = (p->value<<1)|(1);
p->value >>= 1; /* 落ちる */
}
int main()
{
/* hook for debuging */
puts("press enter");
getc(stdin);
test();
}
落ちる部分の生成コードは
mov eax,[ebp-0x0c]
mov edx,[eax+0x04]
mov eax,[eax]
shrd eax,edx,0x01
shr edx,1
mov [eax+0x04],edx # 落ちる
mov [eax],eax
です。
ポインタを介さず、a.value を p->value の代わりに使うと、落ちなくなります。
(ruby_1_8 が落ちないのはこのあたりに理由が?)
mov eax,[ebp-0x08]
mov edx,[ebp-0x04]
shrd eax,edx,0x01
shr edx,1
mov [ebp-0x04],edx
mov [ebp-0x08],eax
また、 p->value = (p->value<<1)|(1); を削除しても落ちなくなります。
mov ecx,[ebp-0x0c]
mov eax,[ecx]
mov edx,[ecx+0x04]
shrd eax,edx,0x01
shr edx,1
mov [ecx+0x04],edx
mov [ecx],eax
bcc32 -v でも落ちなくなります。(単純なコードだと最適化される?)
mov eax,[ecx]
mov edx,[ecx+0x04]
shrd eax,edx,0x01
shr edx,1
mov [ecx+0x04],edx
mov [ecx],eax
bcc32のunsigned __int64には他にもこんなバグ
(http://www.web-one.org/new-5015457-4898.html)があるみたいです。
使わないほうがいいのかもしれません。
/////////////////////
余談ですが、parse.c の #line を削除しないとトレースがおかしくなるのに
はまりました。