EndOfStream unused

Paolo Bonzini 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.

Paolo



More information about the Squeak-dev mailing list