On Aug 3, 2011, at 1:49 PM, Nicolas Cellier wrote:
Oh I see, for the SLICE, this is again the Pharo's version of MCPackageLoader>>basicLoad which is striking. In Squeak trunk it would work because removals are performed AFTER methodAdditions/Changes. In Pharo, removals are performed BEFORE, so yes, the SLICE needs to be split in two parts... Or you can just manually merge it (apply the removal after...).
oops we should fix that
I'm eager to see a true atomic load with a single massive becomeForward: :)
Yes me too
IMHO, this should be coupled with lazy initializations mechanism as I proposed once (based on pragmas).
Can you point us to that?
Now if you simply modify grow from within a browser, I see no obvious reason why it would fail...
Nicolas
2011/8/3 Mariano Martinez Peck <marianopeck@gmail.com>:
On Wed, Aug 3, 2011 at 1:01 PM, Nicolas Cellier <nicolas.cellier.aka.nice@gmail.com> wrote:
You replace Array with self arrayType, that's all.
Here my images freezes and CPU goes 100%. I guess because compiling/saving a method uses OrderedCollection grow at the same time.
But there is better, Pharo already has growAtFirst and growAtLast which are correct. Use them instead of grow. See SLICE in inbox.
I cannot load it since it freezes in "Cleaning Up". It can be the same reason as why I cannot save the modification. I am in Pharo1.3 Latest update: #13277
Thanks a lot for the help!
Nicolas
2011/8/3 Mariano Martinez Peck <marianopeck@gmail.com>:
btw...how can I change OrderedCollection>>grow without shooting my foots?
On Wed, Aug 3, 2011 at 12:51 PM, Mariano Martinez Peck <marianopeck@gmail.com> wrote:
On Wed, Aug 3, 2011 at 12:42 PM, Nicolas Cellier <nicolas.cellier.aka.nice@gmail.com> wrote:
I'm pretty sure the array inst var of your WeakOrderedColleciton is no more a WeakArray but a simple Array.
Yes, indeed, it is a normal Array and that cought my attention. But since I have no idea about Weak stuff...I also noticed that WeakOrderedCollection is declared as:
OrderedCollection subclass: #WeakOrderedCollection instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'Collections-Weak'
instead of using the #weakSubclass: ... message:
OrderedCollection weakSubclass: #WeakOrderedCollection instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'Collections-Weak'
This is because Pharo's WeakOrderedCollection is broken...
Do you know a weak collection that is not broken in Pharo and let me do a addLast: ?
Every reference to Array from within OrderedCollection should be replaced with message send (self arrayType). See for example, OrderedCollection>>#grow
Thanks. I will check how many there are and try to fix them.
Nicolas
2011/8/3 Mariano Martinez Peck <marianopeck@gmail.com>:
Hi guys. I am since yesterday trying to find something and I cannot. So at this point I need external eyes :) I have this little code:
anObject := ClassWith2Var new. sharedObject := ClassWith1Var new. sharedObject var1: 'nose'. anObject var1: Date today. anObject var2: sharedObject.
serializedObjects := FuelMareaSerializer new serializeAndWriteObject: anObject to: 'aFileName'. anObject := nil. sharedObject := nil.
3 timesRepeat: [Smalltalk garbageCollect]. serializedObjects inspect.
What is important here is that FuelMareaSerializer new serializeAndWriteObject: anObject to: 'aFileName' answers a WeakOrderedCollection with each object of the serialized graph (taking anObject as the root) Now, if I print the tempVar serializedObjects I see:
a WeakOrderedCollection(ClassWith1Var ClassWith2Var Date DateAndTime Duration a ClassWith1Var a ClassWith2Var 3 August 2011 2011-08-03T00:00:00+02:00 0:02:00:00 1:00:00:00 86400 2455777 'nose' 0 7200)
WHYYYY?? why are all there if I put a nil to both, anObject and sharedObejct. This WeakOrderedCollection should be with all nils (except classes). Why are not being garbage collected?
If I explore, for example the tempVar sharedObejct, which is at serializedObjects at: 6 and then I put explore pointers I ONLY see the array of the WeakOrderedCollection pointing to it. I don't understand.
Any help is really appreaciated.
-- Mariano http://marianopeck.wordpress.com
-- Mariano http://marianopeck.wordpress.com
-- Mariano http://marianopeck.wordpress.com
-- Mariano http://marianopeck.wordpress.com