From Guy Decoux <200104191053.f3JArsH28644 / orsay1.moulon.inra.fr>
> >>>>> "K" == K Kosako <kosako / sofnec.co.jp> writes:
> K> In this method, only values are cleared without removing dyna-var objects
> K> at the end of rb_yield_0, and used in the next rb_yield_0 call.
> K> It is not a good method because the argument "acheck" of rb_yield_0
> K> is being referred to to do the decision of yield-call or proc/thread-call.
> 
>  I've quickly look at your patch, but do it solve this ?
> 
>    [0,1].each {|n|
>      print "n: #{n}\n"
>      case n
>      when 1
>        a = 0
>        print "a: #{a}\n"       # => 0
>      when 0
>        b = 1
>        print "a: #{a}\n"       # => "a: "   (a == nil)
>        print "b: #{b}\n"
>      end
>    }

Here is the output. (patch was applied)

n: 0
a: 0
n: 1
a: 
b: 1

It isn't confident whether this modification is right.
----
K.Kosako