[squeak-dev] Re: Using #= for integer comparison instead of #==

Andres Valloud avalloud at smalltalk.comcastbiz.net
Fri Nov 26 17:15:28 UTC 2010


I'm not familiar with Squeak's GC... can you also assume that a GC 
(e.g.: a "new space" scavenge) won't move the marker so that the 
enumeration goes past it?

On 11/26/10 9:12 , Bert Freudenberg wrote:
>
> On 26.11.2010, at 18:09, Andres Valloud wrote:
>
>> Can you assume that allocation is sequential?
>
> I can.
>
> - Bert -
>
>> On 11/26/10 8:59 , Bert Freudenberg wrote:
>>>
>>> On 26.11.2010, at 17:43, Andres Valloud wrote:
>>>
>>>>> You *must* use an end marker, i.e.,
>>>>>
>>>>> 	last := Object new. "end marker"
>>>>> 	obj := self someObject.
>>>>> 	[last == obj] whileFalse:[
>>>>> 		count := count + 1.
>>>>> 		obj := obj nextObject.
>>>>> 	].
>>>>>
>>>>> This will work because it counts between the beginning of memory and the
>>>>> (arbitrary) end marker. Anything else basically should not be relied on
>>>>> to work, jit or no.
>>>>
>>>> What happens if a process with higher priority interrupts the iteration and creates more objects?
>>>
>>> New objects would come after the end marker in memory.
>>>
>>> - Bert -
>
>
>



More information about the Squeak-dev mailing list