[squeak-dev] The Inbox: System-fbs.523.mcz

Bert Freudenberg bert at freudenbergs.de
Sat Apr 13 18:27:46 UTC 2013


On 13.04.2013, at 11:24, Frank Shearar <frank.shearar at gmail.com> wrote:

> On 13 April 2013 19:19, Frank Shearar <frank.shearar at gmail.com> wrote:
>> On 13 April 2013 18:25, Bert Freudenberg <bert at freudenbergs.de> wrote:
>>> 
>>> On 13.04.2013, at 08:05, Frank Shearar <frank.shearar at gmail.com> wrote:
>>> 
>>>> On 12 April 2013 19:00, Bert Freudenberg <bert at freudenbergs.de> wrote:
>>>>> 
>>>>> On 12.04.2013, at 11:32, commits at source.squeak.org wrote:
>>>>> 
>>>>>> Frank Shearar uploaded a new version of System to project The Inbox:
>>>>>> http://source.squeak.org/inbox/System-fbs.523.mcz
>>>> <snip>
>>>> 
>>>>> I'd rather use "Smalltalk cleanUp" which does almost all of what you listed. This is more future-proof. If something is missing, add it to the cleanUp mechanism (that is, implement a class-side cleanUp or cleanUp: method).
>>>> 
>>>> So just to be clear you mean unloading packages should be:
>>>> 
>>>> unloadPackages: somePackageNames
>>>>   "Go unloading"
>>>>   somePackageNames do: [:pkgName|
>>>>                   (MCPackage named: pkgName) unload.
>>>>                   MCMcmUpdater disableUpdatesOfPackage: pkgName.
>>>>                   ].
>>>>   Smalltalk cleanUp: true. "Needed to trigger the MCWorkingCopy's
>>>> #cleanUp: of obsolete PackageInfos; could of course change that method
>>>> to always do this."
>>> 
>>> It should *not* flush all PackageInfos, but only the ones that were actually unloaded. And possibly that should happen in #unload itself.
>>> 
>>>> where we have another commit implementing Preferences >> #cleanUp ?
>>>> 
>>>> frank
>>> 
>>> 
>>> No, "cleanUp: true" should only be done in the release process, or manually, because it will actually modify the image beyond emptying caches. E.g., I might like keeping package infos around even if there is no associated MC package. The system should not simply discard them. Same for empty system categories: If I create a category manually, the system should not simply trash it. Etc.
>> 
>> That sounds like exactly the _right_ thing to do, but perhaps I should
>> indicate that by putting this method with the ReleaseBuilder. Because
>> this _is_ about a release-making like process, in that I'm wanting to
>> cut things out of the image... but at the moment the 4.5 image I use
>> had things ripped out in an untidy manner.
> 
> Actually, no. I don't want to clean the world. I want to remove every
> trace of a particular package, and this unloadPackages: should
> aggressively clean up only that state associated with the package:
> strip menu items, registered apps, and so on. So it shouldn't call
> Smalltalk cleanUp at all, aggressive or otherwise, I would think.
> 
> frank


The regular Smalltalk cleanUp should be perfectly safe to call any time. So you would only need to implement the stuff specific to package unloading.

- Bert -




More information about the Squeak-dev mailing list