Yukihiro Matsumoto wrote: > |1) Will Proc.binding be made to work in 1.9? > > Just done. I would like to hear from Koichi how this affects various optimizations we talked about at RubyConf. Specifically, in JRuby, the ability to turn a proc into a binding means that all scopes with a block in them must use a (slower) heap-based local variable store rather than a (faster) stack-based store. However Ruby 1.9 has more control over the stack, so perhaps it's not as difficult to pull it into a heap structure. Beyond implementation details, I still think it's a problematic feature that breaks encapsulation of the caller's local variables. I don't like the idea that some API I call with a block can then modify my local vars...it has the same feel as retry-outside-rescue did. > |2) Will Kernel.__callee__ be implemented so it works as documented in > |1.9? If not, may I delete its rdoc comment? > > Oh, it's yet another unaddressed issue. I'd like to implement > __callee__ as it described, but I have to ask Koichi how to do it. > Stay tuned. I must have missed it, what is __callee__ supposed to do? > JRuby people did. So I guess I can safely say it will be part of the > spec. Other implementers, it's the last chance to say objection. I agree it should be specified, but only for 1.9.1+. We support it in JRuby in 1.8 mode, but that's incidental (it's easier to just have it on all the time, and it makes certain types of iteration more deterministic). - Charlie