cyclic looping with [0 == object] whileFalse: [object := object nextObject].

Rob Withers reefedjib at
Tue Nov 6 16:23:45 UTC 2007

----- Original Message ----- 
From: "Paolo Bonzini" <bonzini at>

> This would work for Rob however.
> Paolo

Hi Paolo,

That would work for me in this situation, yes.  Also, I thought that
Andreas' use of a marker to stop iteration would also work in this
situation.  The issue is that I caused the situation by turning off ifTrue:
inlining in the compiler (with help from others).

This is just an intermediate step to where I really want to be, which is
writing a macro which tests whether the receiver is Boolean, and if it is
then run the inline form of ifTrue:, and if it is not then run the msg send
form of ifTrue:.  This would avoid the above problem by keeping things
inlined.  I have this new compound macro coded up, compiling and some basic
tests and it works, but it makes my environment unstable.  I am getting the
emergency evaluator or outright image crashes when using it.  It is driving
me crazy, if I wasn't already.

I am attching the Compiler package that I believe will load up for those who
may be willing to help me figure this out.  After loading into a scratch
image, run 'Compiler recompileAll'.  Then debug 'FileList open'.   This will
show you one of the soft crashes (the emergency evaluator).  I suspect that
I don't have things I need to do syntax highlighting in the debugger for the
new macro code, but I am not sure if that is enough to cause crashes.  It
does strange things like switch arguments, in this case a DirectoryEntry
suddenly becomes 6.

thanks for any assistance,
-------------- next part --------------
A non-text attachment was scrubbed...
Name: SqueakElib-Compiler-rww.3.mcz
Type: application/octet-stream
Size: 15513 bytes
Desc: not available
Url :

More information about the Squeak-dev mailing list