From: Charles Oliver Nutter Date: 2007-12-22T10:56:15+09:00 Subject: Re: Some Ruby 1.9 loose ends to tie up Rocky Bernstein wrote: > I asked (or at least alluded to) this following question a while ago > under the discussion of giving access to frames (even if at only the C > API) at run time. I don't recall an answer. Given the above, how is > caller() implemented in JRuby when procedures are expanded in-line? > Actually, I have the same question for YARV in the face of > tail-recursion removal? (I read somewhere on the net that 1.9 has > tail recursion removal.) Currently we do not optimize away call frame information in most cases, which is all that's needed for caller to work. But there are a few cases currently where we do avoid frame allocation, and could be more in the future. I'm not as interested in changing or limiting what Ruby users can do...I'm more interested in providing an implementation that's normally 100% compatible with "optional incompatibilities" that offer performance gains. - Charlie