Thanks a lot Nicolas and Henrik.  I have split the slice and it works!
I will upload soon both slides, part1 and part2 and a test for it.

On Wed, Aug 3, 2011 at 1:49 PM, Nicolas Cellier <
[email protected]> 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...).
>
> I'm eager to see a true atomic load with a single massive becomeForward: :)
> IMHO, this should be coupled with lazy initializations mechanism as I
> proposed once (based on pragmas).
>
> 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
> >
> >
>
>


-- 
Mariano
http://marianopeck.wordpress.com

Reply via email to