Moin, moin!

I was a little bit surprized that the following code snippets run into 
stack overflow...

myprompt> irb191-p0
irb(main):001:0> def a
irb(main):002:1>   b=2+1
irb(main):003:1>   a
irb(main):004:1> end
=> nil
irb(main):005:0> a

...and...

myprompt> irb191-p0
irb(main):001:0> f = lambda{print "-";STDOUT.flush;f[]}
=> #<Proc:0xee2870@(irb):1 (lambda)>
irb(main):002:0> f[]

...because I thought Ruby 1.9.1 has tail recursion optimization implemented.

Was this a wrong assumption?

Wolfgang N?dasi-Donner