yarv-dev:557
From: SASADA Koichi <ko1 atdot.net>
Date: Sat, 30 Jul 2005 16:55:10 +0900
Subject: [yarv-dev:557] Re: line no on backtrace
ささだです。 SASADA Koichi wrote: > YARV 版の表記は、以下の点が異なります。 > > 1)トップレベルは <main> と表示してあります。 > 2)b@... は、... 中にある block という意味です。 > 3)(*) で示した部分は省略してあります > この部分は、C で書いたブロック(NODE_IFUNC)の呼び出し > 4)raise まで表示されちゃってる > > さて、どの辺まで許容されますかね。とりあえず、4) は駄目だと思うんで > Ruby とのマージ後(raise を弄って)変更しますが、その他は別にこのままで > もいーかなー、とも思うんですが、どうでしょうか。3) はあんまり気にする人 > が居ないので、いいかなー、とか思っていたり。<main> や b@<main> なんかは > 好き好きかもなー、とか。 > > どうでしょうか。 > yarv-devel のほうと、IRC で教えてもらった意見を参考に、上記プログラム は次のようにしてみました。 ../test.rb:19:in `raise' ../test.rb:19:in `block in <main>' ../test.rb:13:in `block in m' ../test.rb:12:in `each' ../test.rb:12:in `map' ../test.rb:12:in `m' ../test.rb:18:in `<main>' (参考:Ruby ../test.rb:19 ../test.rb:18:in `m' ../test.rb:12:in `map' ../test.rb:12:in `each' ../test.rb:12:in `map' ../test.rb:12:in `m' ../test.rb:18 ) ブロックの深いネストでは、 def iter yield end begin iter{ iter{ iter{ raise } } } rescue => e puts e.backtrace end ../test.rb:19:in `raise' ../test.rb:19:in `block (3 levels) in <main>' ../test.rb:12:in `iter' ../test.rb:18:in `block (2 levels) in <main>' ../test.rb:12:in `iter' ../test.rb:17:in `block in <main>' ../test.rb:12:in `iter' ../test.rb:16:in `<main>' こんな感じ。 どうでしょうか。やっぱり今のRubyにあわせたほうがいいですかね。 -- // SASADA Koichi at atdot dot net // -- ML: yarv-dev quickml.atdot.net 使い方: http://www.atdot.net/~ko1/quickml
549 2005-07-29 05:11 [ko1 atdot.net ] line no on backtrace 550 2005-07-29 07:25 ┣[matz ruby-lang.org ] 551 2005-07-29 09:28 ┃┗[nobu.nokada softhome] 552 2005-07-29 09:45 ┃ ┗[matz ruby-lang.org ] 553 2005-07-29 17:32 ┗[ko1 atdot.net ] -> 557 2005-07-30 16:55 ┗[ko1 atdot.net ] 559 2005-07-30 17:27 ┗[matz ruby-lang.org ]