This is the minimum testcase that reproduces the problem:

-- lambda.rb --
 max = 20
 rec = lambda{|n|
        
   if n > 0
       rec[n-1]
   end
 }

 #rec[max]
 Fiber.new{
   rec[max]
 }.resume

That you should call with:
 # ./miniruby tool/runruby.rb  lambda.rb

Some further findings:

 * The problem is not reproducible if we use functions recursion instead of
lambda recursion.

 * The problem does not happen if we run the recursion outside of a Fiber.

Reply via email to