[ruby-dev:31698] Re: [ruby-cvs:20568] Ruby:r13331 (trunk): * eval_jump.ci (rb_f_catch): generate new tag object if no argument is

From: "U.Nakamura" <usa@...>
Date: 2007-09-01 14:11:45 UTC
List: ruby-dev #31698
こんにちは、なかむら(う)です。

# もう気付いてる話だと思いますが記録を残すために。

In message "[ruby-cvs:20568] Ruby:r13331 (trunk): * eval_jump.ci (rb_f_catch): generate new tag object if no argument is"
    on Sep.01,2007 21:56:30, <matz@ruby-lang.org> wrote:
| matz	2007-09-01 21:56:29 +0900 (Sat, 01 Sep 2007)
| 
|   New Revision: 13331
| 
|   Modified files:
|     trunk/ChangeLog
|     trunk/bootstraptest/test_jump.rb
|     trunk/bootstraptest/test_knownbug.rb
|     trunk/eval_jump.ci
|     trunk/variable.c
| 
|   Log:
|     * eval_jump.ci (rb_f_catch): generate new tag object if no argument is
|       given.  backported from MatzRuby.  [ruby-dev:31609]
|     
|     * eval_jump.ci (rb_catch): call #catch without arguments if tag
|       string is NULL.
|     
|     * eval_jump.ci (rb_f_throw): allow throwing non-symbol object.
|     
|     * eval.c (rb_catch_obj): new function to wait throw with arbitrary
|       object. 
|     
|     * eval.c (rb_throw_obj): new function to throw arbitrary object.
|     
|     * variable.c (check_autoload_table): prevent multiple calls from
|       RSTRING_PTR().

(1) eval.c がcommitされてないようです。実際にはrb_catch_objも
    rb_throw_objもeval_jump.ciの中にあるからログだけの問題?
    # これらを呼んでる場所も見当たらない

(2) 以下のコードがfatalになります。
      catch{|t| begin; throw t; ensure; end}


それでは。
-- 
U.Nakamura <usa@garbagecollect.jp>


In This Thread

Prev Next