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.

