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 <[email protected]>: >> >> >> On Wed, Aug 3, 2011 at 1:01 PM, Nicolas Cellier >> <[email protected]> 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 <[email protected]>: >>>> btw...how can I change OrderedCollection>>grow >>>> without shooting my foots? >>>> >>>> On Wed, Aug 3, 2011 at 12:51 PM, Mariano Martinez Peck >>>> <[email protected]> wrote: >>>>> >>>>> >>>>> On Wed, Aug 3, 2011 at 12:42 PM, Nicolas Cellier >>>>> <[email protected]> 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 <[email protected]>: >>>>>>> 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 >> >> >
