Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
August 2011
- 104 participants
- 1359 messages
[Pharo-project] [ANN] SmalltalkHub demo online
by Torsten Bergmann
>Request: please include a way to store contributions from the public (like
>maybe per-project inboxes).
>Motivation: With SqS, it seems great fixes and enhancements often get lost
>on old hard drives or the mailing list because the authors don't have write
>access to the repo, and it's often hard to contact the admins.
>Result: every contribution will be preserved and easily findable from the
>project's repo, while admins maintain control over their codebase if
>desired.
Great idead!
+1000
Bye
T.
--
Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir
belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de
Aug. 4, 2011
Re: [Pharo-project] How to deprecate a Class?
by Chris Cunningham
On Mon, Aug 1, 2011 at 12:21 PM, Stéphane Ducasse
<stephane.ducasse(a)inria.fr> wrote:
> The most important aspects is that there is not reference to it.
> and that if we replace it by something else, it works.
> After we can write in the comments in big that the class is deprecated.
>
Could you (we) also deprecate all the methods in the class? Ideally
in some automated way, of course.
Aug. 3, 2011
[Pharo-project] [PBE-Spanish] Status update 2011-08-03
by Nicolás Paez
Hello everyone,
Finally we were able to fix the some of the errors in PDF generation and
now, all the 14 chapters are published in PDF format :-)
You can download them from PharoByExample page.
Direct link:
https://gforge.inria.fr/frs/download.php/28829/PBE1-Spanish-FullDraft-2011-…
At the same time, some new volunteers joined the project to collaborate in
the revision.
Saludos!
Nico.
blog: nicopaez.wordpress.com
Aug. 3, 2011
Re: [Pharo-project] Small Seaside image
by laurent laffont
Thanks for your help all.
My steps:
- Seaside/Magritte: load only what's needed for SmallHarbour
- load Zinc-Seaside instead of Comanche
- cleanUpForProduction
- zapOrganization
I now have a 10MB image.
Laurent.
On Wed, Aug 3, 2011 at 10:38 AM, Mariano Martinez Peck <
marianopeck(a)gmail.com> wrote:
> Hi Laurent. First, as Marcus said, there is no magic. You should really
> load the packages of seaside and all the minimal dependes. Just load what
> you need. Once you are done, evaluate ScriptLoader new cleanUpForRelease.
> But take a look to what that method does.
> Then, if you are sure you don't need certain packages from pharo core,
> thanks to the better modularization we have, you can remove it. Esteban did
> that for his images for iPhone.
>
> There are also some shrink you can do. For example,
> "To put all all classes with the default category. Still can browse and
> recompile the whole image.
> Most production enviroments don't care about categories...this make sense
> when developing."
>
> Smalltalk allClassesAndTraitsDo: [:each | each zapOrganization ].
>
> how much did it help?
>
> Fonts. Do you need al fonts? no...remove them.
>
> etc...
>
>
>
> On Wed, Aug 3, 2011 at 10:24 AM, Marcus Denker <marcus.denker(a)inria.fr>wrote:
>
>>
>> On Aug 3, 2011, at 10:17 AM, laurent laffont wrote:
>>
>> > Hi,
>> >
>> > actually using PharoCore 1.3, loading ConfigurationOfSeaside30 Core,
>> then ScriptLoader>>cleanUpForProduction I have a 13MB image. Is it possible
>> to have it smaller ? (I know a next step is to be able to use PharoKernel).
>>
>> cleanUpForProduction should result in a Core image that is just 6.5MB...
>> so the ConfigurationOfSeaside30 seems to load *a lot* of stuff? Maybe be a
>> bit selective?
>>
>> Marcus
>>
>>
>> --
>> Marcus Denker -- http://marcusdenker.de
>>
>>
>>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
>
Aug. 3, 2011
Re: [Pharo-project] Help with a WeakOrderedCollection and objects not being GCed
by Mariano Martinez Peck
On Wed, Aug 3, 2011 at 10:47 PM, Igor Stasenko <siguctua(a)gmail.com> wrote:
> On 3 August 2011 22:27, Stéphane Ducasse <stephane.ducasse(a)inria.fr>
> wrote:
> > How can we test and make sure that in the future we know automatically if
> the weak is broken?
> >
>
> object := Object new.
>
> coll := WeakOrderedCollection new add: anObject.
> anObject := nil.
> Smalltalk garbageCollect.
> self assert: coll removeLast isNil
>
That was not enought in this case. In fact, it was really difficult for me
to find the bug, because it used to ONLY fail when sending #grow.
(WeakOrderedCollection new instVarNamed: 'array') class ->>>> WeakArray
(WeakOrderedCollection new grow instVarNamed: 'array') class ->>>> Array
:)
> :)
>
> > Stef
> >
> > On Aug 3, 2011, at 1:01 PM, Nicolas Cellier wrote:
> >
> >> You replace Array with self arrayType, that's all.
> >> But there is better, Pharo already has growAtFirst and growAtLast
> >> which are correct.
> >> Use them instead of grow.
> >> See SLICE in inbox.
> >>
> >> Nicolas
> >>
> >> 2011/8/3 Mariano Martinez Peck <marianopeck(a)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(a)gmail.com> wrote:
> >>>>
> >>>>
> >>>> On Wed, Aug 3, 2011 at 12:42 PM, Nicolas Cellier
> >>>> <nicolas.cellier.aka.nice(a)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(a)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
> >>>
> >>>
> >>
> >
> >
> >
>
>
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>
>
--
Mariano
http://marianopeck.wordpress.com
Aug. 3, 2011
Re: [Pharo-project] Help with a WeakOrderedCollection and objects not being GCed
by Igor Stasenko
On 3 August 2011 22:27, Stéphane Ducasse <stephane.ducasse(a)inria.fr> wrote:
> How can we test and make sure that in the future we know automatically if the weak is broken?
>
object := Object new.
coll := WeakOrderedCollection new add: anObject.
anObject := nil.
Smalltalk garbageCollect.
self assert: coll removeLast isNil
:)
> Stef
>
> On Aug 3, 2011, at 1:01 PM, Nicolas Cellier wrote:
>
>> You replace Array with self arrayType, that's all.
>> But there is better, Pharo already has growAtFirst and growAtLast
>> which are correct.
>> Use them instead of grow.
>> See SLICE in inbox.
>>
>> Nicolas
>>
>> 2011/8/3 Mariano Martinez Peck <marianopeck(a)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(a)gmail.com> wrote:
>>>>
>>>>
>>>> On Wed, Aug 3, 2011 at 12:42 PM, Nicolas Cellier
>>>> <nicolas.cellier.aka.nice(a)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(a)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
>>>
>>>
>>
>
>
>
--
Best regards,
Igor Stasenko AKA sig.
Aug. 3, 2011
Re: [Pharo-project] Help with a WeakOrderedCollection and objects not being GCed
by Igor Stasenko
On 3 August 2011 12:51, Mariano Martinez Peck <marianopeck(a)gmail.com> wrote:
>
>
> On Wed, Aug 3, 2011 at 12:42 PM, Nicolas Cellier
> <nicolas.cellier.aka.nice(a)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'
>
no you don't need that, because ordered collection contains is
elements in its array,
and to make it 'weak' you have to make the container to hold elements weakly,
but not the wrapper class, which should hold it's array strongly.
>
>>
>> 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(a)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
>
>
--
Best regards,
Igor Stasenko AKA sig.
Aug. 3, 2011
Re: [Pharo-project] Help with a WeakOrderedCollection and objects not being GCed
by Stéphane Ducasse
Thanks
I will have a look tomorrow morning, before packing to get back in the deep north (of France henrik).
On Aug 3, 2011, at 2:45 PM, Mariano Martinez Peck wrote:
> Ok, I have splitted the slice in two parts: PART1 and PART2. PART1 includes the fixes in #makeRoomAtFirst and #makeRoomAtLast and a new class WeakOrderedCollectionTest with two tests: #testWeakOrderedCollectionSomeGarbageCollected and #testWeakOrderedCollectionAllGarbageCollected.
>
> Those tests can be improved a lot and make them look like those in WeakSetTest where each collection operation is tested. I don't have the time/knowledge to do that right now, but if someone can, excellent.
>
> The second part is just the revome of OrderedCollection >> grow.
>
>
> Name: SLICE-Issue-4596-WeakOrderedColllection-array-is-replaced-by-an-Array-instead-of-a-WeakArray-PART1-MarianoMartinezPeck.1
> Author: MarianoMartinezPeck
> Time: 3 August 2011, 2:40:10 pm
> UUID: 35f20200-98ef-581f-1100-000044ef581f
> Ancestors:
> Dependencies: CollectionsTests-MarianoMartinezPeck.529, Collections-Sequenceable-MarianoMartinezPeck.97
>
> This is the first part. It includes the fix and 2 tests.
>
>
>
>
> Name: SLICE-Issue-4596-WeakOrderedColllection-array-is-replaced-by-an-Array-instead-of-a-WeakArray-PART2-MarianoMartinezPeck.1
> Author: MarianoMartinezPeck
> Time: 3 August 2011, 2:41:42 pm
> UUID: caf00200-1007-401f-18ec-0e0008e05c1f
> Ancestors:
> Dependencies: Collections-Sequenceable-MarianoMartinezPeck.98
>
> It just removes OrderedCollection >> grow
>
>
>
> On Wed, Aug 3, 2011 at 2:11 PM, Mariano Martinez Peck <marianopeck(a)gmail.com> wrote:
> 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 <nicolas.cellier.aka.nice(a)gmail.com> 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 <marianopeck(a)gmail.com>:
> >
> >
> > On Wed, Aug 3, 2011 at 1:01 PM, Nicolas Cellier
> > <nicolas.cellier.aka.nice(a)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(a)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(a)gmail.com> wrote:
> >> >>
> >> >>
> >> >> On Wed, Aug 3, 2011 at 12:42 PM, Nicolas Cellier
> >> >> <nicolas.cellier.aka.nice(a)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(a)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
> >
> >
>
>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
Aug. 3, 2011
Re: [Pharo-project] Help with a WeakOrderedCollection and objects not being GCed
by Mariano Martinez Peck
On Wed, Aug 3, 2011 at 10:27 PM, Stéphane Ducasse <stephane.ducasse(a)inria.fr
> wrote:
> How can we test and make sure that in the future we know automatically if
> the weak is broken?
>
>
If you check the issue traker, I've uploaded to tests for this case.
> Stef
>
> On Aug 3, 2011, at 1:01 PM, Nicolas Cellier wrote:
>
> > You replace Array with self arrayType, that's all.
> > But there is better, Pharo already has growAtFirst and growAtLast
> > which are correct.
> > Use them instead of grow.
> > See SLICE in inbox.
> >
> > Nicolas
> >
> > 2011/8/3 Mariano Martinez Peck <marianopeck(a)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(a)gmail.com> wrote:
> >>>
> >>>
> >>> On Wed, Aug 3, 2011 at 12:42 PM, Nicolas Cellier
> >>> <nicolas.cellier.aka.nice(a)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(a)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
Aug. 3, 2011
Re: [Pharo-project] Help with a WeakOrderedCollection and objects not being GCed
by Stéphane Ducasse
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(a)gmail.com>:
>>
>>
>> On Wed, Aug 3, 2011 at 1:01 PM, Nicolas Cellier
>> <nicolas.cellier.aka.nice(a)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(a)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(a)gmail.com> wrote:
>>>>>
>>>>>
>>>>> On Wed, Aug 3, 2011 at 12:42 PM, Nicolas Cellier
>>>>> <nicolas.cellier.aka.nice(a)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(a)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
>>
>>
>
Aug. 3, 2011