On Wed, Apr 4, 2012 at 5:32 PM, Mariano Martinez Peck <marianopeck@gmail.com
wrote:
Hi guys. I noticed that there is a limit in the number of objects you can become. In my case, I am becoming 2312157 objects. So..I don't expect that the become works. I imagine that it was not designed for so many objects in mind ;) However, what I would really understand is where is the limitation and the reason. And of course, if someone already knows which is the real number limit. Otherwise, I will do a kind of binary search and discover it.
If you want to reproduce it:
| dict | dict := Dictionary new. 2312157 timesRepeat: [ dict at: Object new put: Object new ]. 3 timesRepeat: [Smalltalk garbageCollect]. dict keys elementsForwardIdentityTo: dict values.
throws a #primitiveFailed.
Of course the following works correctly: | dict tmp | dict := Dictionary new. 2312157 timesRepeat: [dict at: Object new put: Object new]. 3 timesRepeat: [Smalltalk garbageCollect]. dict associations groupsOf: 50000 atATimeDo: [:each | tmp := Dictionary withAll: each. tmp keys elementsForwardIdentityTo: tmp values ] So... indeed, there seems to be a limit with the amount of objects.
Thanks,
-- Mariano http://marianopeck.wordpress.com
-- Mariano http://marianopeck.wordpress.com