On Wed, Jan 14, 2009 at 08:43:45AM +0900, Charles Oliver Nutter wrote:
> I stand by my assertion that blocks being usable as bindings is a breach  
> of trust (my locals are sacred), and should not be in the language.

For me the biggest issue isn't the breach of trust (though IMO that is
an issue), but that I have to pay a significant performance hit for a
feature that I don't even use.

The problem is that at compile-time it is impossible to know whether or
not it is legal to perform certain optimizations (those that assume
called methods do not modify or use the callee's binding), whenever
blocks are used.

Macros solve this problem quite nicely, providing a compile-time
replacement for method calls -- so that it is possible to know at
compile-time whether these optimizations are allowed.

Paul