bonzini at gnu.org
Thu Nov 8 21:44:22 UTC 2007
> Why would it kill performance? The block is created at the first
> call, and thereafter a reference to it is past, no? That sounds
> pretty fast to me.
If you run this:
[ self next == nil ] whileTrue: [ ... ]
and Stream>>next is this
^self nextIfAtEnd: [ ^ nil ]
every time you invoke #next, it you create a new
BlockContext/BlockClosure, and that makes it impossible to exploit LIFO
behavior for thisContext. It kills performance.
More information about the Squeak-dev