yarv-dev:553
From: SASADA Koichi <ko1 atdot.net>
Date: Fri, 29 Jul 2005 17:32:08 +0900
Subject: [yarv-dev:553] Re: line no on backtrace
ささだです。 SASADA Koichi wrote: > バックトレースを作り直してたんですが、 def m enum enum.map{ yield } end begin m(1..3){ raise } rescue => e puts e.backtrace end こんなプログラムにおいて、バックトレースは YARV:------------------------ ../test.rb:19:in `raise' ../test.rb:19:in `b@<main>' ../test.rb:13:in `b@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 こんな感じになります。 YARV 版の表記は、以下の点が異なります。 1)トップレベルは <main> と表示してあります。 2)b@... は、... 中にある block という意味です。 3)(*) で示した部分は省略してあります この部分は、C で書いたブロック(NODE_IFUNC)の呼び出し 4)raise まで表示されちゃってる さて、どの辺まで許容されますかね。とりあえず、4) は駄目だと思うんで Ruby とのマージ後(raise を弄って)変更しますが、その他は別にこのままで もいーかなー、とも思うんですが、どうでしょうか。3) はあんまり気にする人 が居ないので、いいかなー、とか思っていたり。<main> や b@<main> なんかは 好き好きかもなー、とか。 どうでしょうか。 -- // 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 ]