[#18440] racc segv revisited — "Akinori MUSHA" <knu@...>

 次のバグの件なんですが、現時点では原因究明を含めて未解決という

24 messages 2002/10/02
[#18617] Re: racc segv revisited — "Akinori MUSHA" <knu@...> 2002/11/02

At Wed, 2 Oct 2002 23:19:59 +0900,

[ruby-dev:18512] Re: How to raise LocalJumpError with next and redo?

From: Tanaka Akira <akr@...17n.org>
Date: 2002-10-12 18:18:16 UTC
List: ruby-dev #18512
In article <200210121757.g9CHvEY02495@sharui.nakada.kanuma.tochigi.jp>,
  nobu.nakada@nifty.ne.jp writes:

> LocalJumpErrorが発生するのは、stackをrewindして該当するTAGが見
> 付からずにスコープから出ちゃったところですから、この場合はトッ
> プレベルのスコープを出たところ、つまり既にrescueは抜けた後です。
> このfooのスコープをトップレベルのスコープと考えれば分かりやすい
> かも。

stack を順番に pop していって、スコープなるものが示すある限界まで、TAG
なるものが示す何かを探すというわけですね。

TAG とスコープがどう決まるかは良くわかんないんですが。
(ソースを読まない奴)

でも、

> うーん、evalはともかく、スコープは静的に決まるんでないような気
> がします。パーサで跳ねることもできるのかも知れませんが、確認し
> てません。

静的に決まるんなら、next/redo を実行した時点で、探さなくてもわかるよう
な。

> > Proc から出す方法はあるんでしょうか?
> 
> eval.cをざっと見て確認しましたがnext/redoではなさそうな感じ。

ということは、マニュアルの記述とは合いませんねぇ。
-- 
[田中 哲][たなか あきら][Tanaka Akira]
「ふえろ! わかめちゃん作戦です$(C⊇」(Little Worker, 桂遊生丸)

In This Thread