[#37050] [Feature #735] Date#inspect — "rubikitch ." <redmine@...>

Feature #735: Date#inspect

14 messages 2008/11/09

[#37075] [Feature #747] /\A/u ignores BOM — Shyouhei Urabe <redmine@...>

Feature #747: /\A/u ignores BOM

14 messages 2008/11/12

[#37161] m17n of irb — "Yugui (Yuki Sonoda)" <yugui@...>

Yuguiです。

35 messages 2008/11/24
[#37183] Re: m17n of irb — keiju@... (keiju ISHITSUKA) 2008/11/25

けいじゅ@いしつかです.

[#37203] Re: m17n of irb — "Yugui (Yuki Sonoda)" <yugui@...> 2008/11/26

keiju ISHITSUKA さんは書きました:

[#37292] Re: m17n of irb — Yukihiro Matsumoto <matz@...> 2008/12/06

まつもと ゆきひろです

[#37293] Re: m17n of irb — "Yugui (Yuki Sonoda)" <yugui@...> 2008/12/07

Yuguiです。

[#37298] Re: m17n of irb — Yukihiro Matsumoto <matz@...> 2008/12/07

まつもと ゆきひろです

[#37210] RSS::Maker.create(version) — "Akinori MUSHA" <knu@...>

 RSS::Maker で、 "2.0" 等の文字列でフィードのフォーマットを渡す

15 messages 2008/11/27

[#37213] Re: [ruby-cvs:27586] Ruby:r20368 (trunk): * ext/bigdecimal/bigdecimal.c (BigDecimal_div2): should return — Tadayoshi Funaba <tadf@...>

> * ext/bigdecimal/bigdecimal.c (BigDecimal_div2): should return

8 messages 2008/11/27

[ruby-dev:37136] Re: [Bug:1.9] 1+1+1+...+1 dumps core

From: Tietew <tietew@...>
Date: 2008-11-21 09:02:28 UTC
List: ruby-dev #37136
On Fri, 21 Nov 2008 15:12:37 +0900
In article <20081121144608.C08F.C613B076@garbagecollect.jp>
[[ruby-dev:37133] Re: [Bug:1.9] 1+1+1+...+1 dumps core]
"U.Nakamura" <usa@garbagecollect.jp> wrote:

> > Windowsで代替スタックを使えないのかと思って調べたらこんなのが見つかりま
> > した。
> > http://www.nminoru.jp/~nminoru/programming/stackoverflow_handling.html#winnt
> > 
> > もしかしてcall_cfuncで構造化例外を捕まえてSystemStackErrorに変換したりで
> > きます?
> 
> call_cfuncじゃなくてrb_iseq_evalの中身あたりをくくるのがいい
> んじゃないかと思いますが、まあそうです。
> 
> しかしこれ代替スタック領域なのかな。単に今ぶっ壊したスタック
> 領域をなかったことにして__try〜__except節の深さにまで巻き戻さ
> れてるされてるだけのような気が...

SEHはCPUがトラップした例外を通知する仕組みなので、STATUS_STACK_OVERFLOW 
が発生してもスタックは(まだ)ぶっ壊れていません。

__except( ... ) の括弧内を実行中は、元のスタックの続き(代替スタック)を
使っています。そうじゃないと EXCEPTION_CONTINUE_EXECUTION で再実行できな
いから。

EXCEPTION_EXECUTE_HANDLER を返すと、そこから __finally を実行しつつスタッ
クを巻き戻します。

ただ、ここで SystemStackError を生成して実行を継続できるかというと疑問で
す。CPUがトラップするので、たとえば malloc が帰ってきた次の命令がトラッ
プされるとそのメモリ領域はリークします。

abort() か、fatal を投げて終了、くらいが関の山かなあと。



-- 
Tietew <tietew@tietew.net>
Blog: http://www.tietew.jp/
PGP: 26CB 71BB B595 09C4 0153  81C4 773C 963A D51B 8CAA


In This Thread