On Thu, Apr 24, 2008 at 02:56:54AM +0900, Charles Oliver Nutter wrote: > Hmm, block unwrapping? Essentially what you want to do to make > define_method methods as fast as regular methods is to make them regular > methods; that means unwrapping the block and making its body the body of > an actual method, rather than doing block dispatch semantics wrapped in > method dispatch semantics. And with 1.9's much more restrictive block > arguments, you're not losing much there. Obviously you lose the fact > that it might be a true closure, and you'd have to go through the > AST/bytecode and check for variable depths > 0, but it would be worth it > to make performance decent. IMHO define_method would be a lot more > useful if it actually made a (fast) method rather than an ugly (slow) > conglomeration of a method and a proc. But if you don't need to access variables outside your scope, then why use define_method at all? In that case def works just fine. Paul