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 [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
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 <[hidden email]> 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 > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > -- Lukas Renggli http://www.lukas-renggli.ch _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
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 <[hidden email]>: > 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 <[hidden email]> 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 >> [hidden email] >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >> > > > > -- > Lukas Renggli > http://www.lukas-renggli.ch > > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
Free forum by Nabble | Edit this page |