SystemNavigation default allObjectsDo: [ :e ] ...never terminates. At least since this is broken since #10268cl. Version #10263 was still working. The suspect are new closures (I guess, creating new context instances while iterating over all objects)... http://code.google.com/p/pharo/issues/detail?id=851 Adrian
I played a bit with it. I came up with the following quick fix, but probably Eliot has a better solution. I find that code quite fragile anyway, if you instantiate an object in your enumeration block your lost (that was already the case before) ... allObjectsDo: aBlock "Evaluate the argument, aBlock, for each object in the system excluding SmallIntegers." | object | object := self someObject. [0 == object] whileFalse: [ (object class == MethodContext and: [ object closure == aBlock ]) ifFalse: [ aBlock value: object ]. object := object nextObject] On Wed, May 27, 2009 at 10:53 PM, Adrian Lienhard <adi@netstyle.ch> wrote:
SystemNavigation default allObjectsDo: [ :e  ]
...never terminates. At least since this is broken since #10268cl. Version #10263 was still working.
The suspect are new closures (I guess, creating new context instances while iterating over all objects)...
http://code.google.com/p/pharo/issues/detail?id=851
Adrian
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- Lukas Renggli http://www.lukas-renggli.ch
There is also http://bugs.squeak.org/view.php?id=7313 to capitalize these changes across forks.
From what I remember, Lukas' fix > Keithy's workaround.
Nicolas 2009/5/27 Lukas Renggli <renggli@gmail.com>:
I played a bit with it. I came up with the following quick fix, but probably Eliot has a better solution. I find that code quite fragile anyway, if you instantiate an object in your enumeration block your lost (that was already the case before) ...
allObjectsDo: aBlock     "Evaluate the argument, aBlock, for each object in the system     excluding SmallIntegers."     | object |     object := self someObject.     [0 == object]         whileFalse: [             (object class == MethodContext and: [ object closure == aBlock ])                 ifFalse: [ aBlock value: object ].             object := object nextObject]
On Wed, May 27, 2009 at 10:53 PM, Adrian Lienhard <adi@netstyle.ch> wrote:
SystemNavigation default allObjectsDo: [ :e  ]
...never terminates. At least since this is broken since #10268cl. Version #10263 was still working.
The suspect are new closures (I guess, creating new context instances while iterating over all objects)...
http://code.google.com/p/pharo/issues/detail?id=851
Adrian
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- Lukas Renggli http://www.lukas-renggli.ch
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
participants (3)
-
Adrian Lienhard -
Lukas Renggli -
Nicolas Cellier