From: Nobuhiro IMAI Date: 2010-05-17T07:12:27+09:00 Subject: [ruby-dev:41330] caller at toplevel いまいです。 るりまのバグ報告を処理していて気づいたのですが、トップレベルで caller を呼ぶと、1.8系では [] が返っていたのですが、1.9系では nil が返ります。 # http://redmine.ruby-lang.org/issues/show/3301 $ ruby1.8 -ve 'p caller' ruby 1.8.8dev (2010-05-15 revision 26358) [i686-linux] [] $ ruby1.9 -ve 'p caller' ruby 1.9.3dev (2010-05-16 trunk 27849) [i686-linux] nil NEWS などには書いてないようなのですが、これは意図的な変更でしょうか? 意図的だとして、eval.c や vm_eval.c には * call-seq: * caller(start=1) => array と書いてあるのですが、トップレベルでなくても引数によっては nil が返る 場合があるので、 * call-seq: * caller(start=1) => Array or nil と変えるのはどうでしょうか?説明やサンプルコードの追加にいいアイデアが ないのですが、とりあえず報告します。 ちなみに、ちょっと古いですが、JRuby では、[] が返ります。 $ jruby --1.9 -ve 'p caller' jruby 1.1.6 (ruby 1.9.1 patchlevel 114) (2009-07-06 rev 6586) [i386-java] [] -- Nobuhiro IMAI Key fingerprint = F39E D552 545D 7C64 D690 F644 5A15 746C BD8E 7106