[#4060] [patch] require problem — shugo@... (Shugo Maeda)
前田です。
新井です。
[#4076] Re: call/cc — shugo@... (Shugo Maeda)
前田@リコーです。
In message <m0zyZO8-0003EbC@crunkey.chocolate.or.jp>
えぐち@エスアンドイー です。
[#4090] finalizers — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
[#4095] Ruby on CYGWIN — TAKAHASHI Masayoshi <maki@...>
高橋です。久しぶりに書きます。
わたなべです.
高橋です。Rubyのリンク集から見つけたのですが、sgmailって
前橋です。
高橋です。
前橋です。
[#4186] UTF-8 patch for Ruby-1.2.1 — Yoshida Masato <yoshidam@...>
よしだです
まつもと ゆきひろです
[#4193] open with O_CREAT|O_EXCL — 民斗 <tommy@...>
民斗です。
[#4203] Compile via WATCOM C — ARIMA Yasuhiro <fit0298@...>
有馬です。
Regard to "[ruby-dev:4204] Re: Compile via WATCOM C"
Regard to "[ruby-dev:4215] Re: Compile via WATCOM C"
[#4237] extmk.rb.in patch, environment variable — Ryo HAYASAKA <hayasaka@...>
早坂@会津大学です。
まつもと ゆきひろです
[#4244] %//, %!! — Wakou Aoyama <wakou@...>
青山です。
[#4248] patch for ruby-mswin32 — Koji Oda <oda@...1.qnes.nec.co.jp>
小田@QNES です。
まつもと ゆきひろです
わたなべです.
まつもと ゆきひろです
小田@QNES です。
小田@QNES です。
[#4290] signed/unsigned char — ARIMA Yasuhiro <fit0298@...>
有馬です。
えぐち@エスアンドイー です。
Regard to "[ruby-dev:4292] Re: signed/unsigned char"
えぐち@エスアンドイー です。
笠原です。
Regard to "[ruby-dev:4295] Re: signed/unsigned char"
[#4302] ruby-1.3 MacRuby patch — 藤本尚邦 / Hisakuni FUJIMOTO <hisa@...>
藤本です。こんにちは。
まつもと ゆきひろです
[#4306] MacRuby 1.3 binary test release — 藤本尚邦 / Hisakuni FUJIMOTO <hisa@...>
藤本です。
[#4327] pack("F") for bigendian float — gotoken@... (GOTO Kentaro)
ごとけんです。
ごとけんです
ごとけんです
まつもと ゆきひろです
ごとけんです
山下 純司です。
ごとけんです
まつもと ゆきひろです
ごとけんです
[#4341] cascades on ruby — Kazunori NISHI <kazunori@...>
西@九大です。
ひわだです。
西@九大です。
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
まつもと ゆきひろです
まつもと ゆきひろです
前田です。
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
[#4347] ordered number — "D.Kanda" <MAP2303@...>
[#4349] Re: [ruby-list:11707] Re: ruby 1.2.2 released — EGUCHI Osamu <eguchi@...>
えぐち@エスアンドイー です。
えぐち@エスアンドイー です。
えぐち@エスアンドイー です。
まつもと ゆきひろです
えぐち@エスアンドイー です。
まつもと ゆきひろです
えぐち@エスアンドイー です。
まつもと ゆきひろです
えぐち@エスアンドイー です。
笠原です。
えぐち@エスアンドイー です。
笠原です。
立石です。
えぐち@エスアンドイー です。
[#4419] Re: module Precision — Inaba Hiroto <inaba@...>
ごとけんです
From: gotoken@math.sci.hokudai.ac.jp (GOTO Kentaro)
ごとけんです
まつもと ゆきひろです
ごとけんです
まつもと ゆきひろです
ごとけんです
まつもと ゆきひろです
ごとけんです
[#4420] ruby 1.3.1-990126 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
えぐち@エスアンドイー です。
[#4442] Forward: ruby 1.3.1-990126 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#4452] permit to put a comma — Koji Arai <JCA02266@...>
新井です。
まつもと ゆきひろです
新井です。
[#4480] option -h — Wakou Aoyama <wakou@...>
青山です。
[#4481] bug? thread — WATANABE Tetsuya <tetsu@...>
渡辺哲也です。
[#4498] cookie on cgi-lib.rb — IKARASHI Akira <ikarashi@...>
五十嵐です。
[#4518] Inf.0 — gotoken@... (GOTO Kentaro)
ごとけんです
[ruby-dev:4098] Re: call/cc
前田です。
EGUCHI Osamu <eguchi@shizuokanet.ne.jp> writes:
> FreeBSD-2.2.8上で再現させた時、気づきました。
> irb で GC.disable を *2回* 評価すると
>
> irb(main):002:0> GC.disable
> false
> irb(main):003:0> GC.disable
> true
> irb(main):004:0> call_cc {|c| $cont = c}
> #<Continuation:0xd8928>
> irb(main):005:0> $cont
> #<Continuation:0xd8928>
>
> や
>
> irb(main):001:0> GC.disable
> false
> irb(main):002:0> GC.disable
> true
> irb(main):003:0> cont = call_cc {|c| c}
> #<Continuation:0xda278>
> irb(main):004:0>
>
> のような(おとなしげな)挙動になります。
>
> Continuation が、GC の捕食対象になっているようです。
以下の動作を見るとContinuationクラス自体がGCされてnilに
なっているわけではないようです。
crunkey[ruby-1.3]$ ./ruby irb.rb
irb(main):001:0> GC.disable
false
irb(main):002:0> GC.disable
true
irb(main):003:0> callcc {|c| $cont = c}
#<Continuation:0x4015a754>
irb(main):004:0> $cont.call
nil
irb(main):005:0> $cont
#<nil:0x4015a754>
irb(main):006:0> $cont.call(0)
0
irb(main):007:0> $cont
#<0:0x4015a754>
irb(main):008:0>
どうもContinuationの__classid__がContinuation#callの引数の値に
書き換えられているようです。
なぜこんなことになるのか見当もつきません。
> Data_Wrap_Struct() の mark が怪しい気がしますが、
> 追い切れませんでした。
こっちはContinuationインスタンスの方なので、おそらく問題ないと思います。
ちなみにirbを使わずに落とすことに成功しました。
# あんまりうれしくないですけど(^^;
crunkey[ruby-1.3]$ ./ruby -e 'i=0;loop{p i+=1;callcc{|c|c.call}}'
1
2
3
4
5
6
7
8
9
10
11
12
13
/tmp/rba00934:1: [BUG] Segmentation fault
Aborted
必ず13回目のループで落ちます。
# GC.disableにすると落ちません。
gdbでおっかけるとメソッドテーブル(おそらくContinuationの)がNULLになって
いて、st_lookup()で落ちていました。
ちなみにこちらのケースではスタックが浅くなる方向へのジャンプなので、試しに
rb_thread_save_context()/rb_thread_restore_context()を使わないよう
にしたら落ちなくなりました。
でもスレッド使っててこんな落ち方をしたことはないですし、なぜ落ちるのかは
やはり謎です。
--
前田 修吾 (mailto:shugo@aianet.ne.jp)