On 05.08.2009, at 12:42, Marcus Denker wrote:
>>>
>> Hmm, if that so, then we would expect to see an interpreter speed
>> degradation. But its not. :)
>
> Yes, see the other mail. The reason is that the allocation of contexts
> in case of blocks happens now at #value, whereas it used to be just
> done
> at the definiton point (#blockCopy).
>
> So nothing to worry about.
Eliot says:
| So you can either
| - wait for the stack VM or
| - inline allInstancesDo: into allInstances or
| - implement allInstacesDo: specially in ContextPart or
| - implement a pair of primitives to answer allInstances and
allObject atomically.
|
| This latter approach allows much more flexibility in implementing
the garbage collector subsequently; for
| example segmenting the heap and adding and freeing segments as
required, which complicates the simple object
| ordering provided by the single heap but has much better memory usage.
I vote for inling for now... this fixes the problem.
allInstances
"Answer a collection of all current instances of the receiver."
| all inst next |
all := OrderedCollection new.
inst := self someInstance.
[inst == nil]
whileFalse: [
next := inst nextInstance.
inst == all ifFalse: [all add: inst].
inst := next].
^ all asArray
Marcus
--
Marcus Denker - http://marcusdenker.de
PLEIAD Lab - Computer Science Department (DCC) - University of Chile
_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project