Thanks.
I will try now doing boring reports.
We should add such information somehwere.

Setf


On Nov 27, 2013, at 8:57 PM, Pavel Krivanek <pavel.krivanek@gmail.com> wrote:

Do you do that on an image where Nautilus was not opened? I remove Nautilus using this script without errors.


deletePackages := [:packageNames | 
  SystemNavigation default removeAllButPackages: ((MCWorkingCopy allManagers collect: #packageName) asSortedCollection copyWithoutAll: packageNames).
  packageNames do: [:pn | 
  (ScriptLoader new workingCopyFromPackageName: pn) unregister.
  (RPackage named: pn) unregister]].

Nautilus cleanUp.
NautilusUI allInstances do: [ :inst |
     SystemAnnouncer uniqueInstance unsubscribe: inst].
Smalltalk garbageCollect.

deletePackages value: #('NautilusRefactoring' 'NautilusCommon' 'Nautilus'
   'Refactoring-Critics'  'Refactoring-Changes' 'Refactoring-Core' 
   'Refactoring-Environment' 'GroupManager' 'Manifest-Core' 'Manifest-CriticBrowser').
listUnimplemented value: #Nautilus.

KMRepository reset.
KMPragmaKeymapBuilder release.
Smalltalk resetTools.
5 timesRepeat:[Smalltalk garbageCollect.].
Smalltalk fixObsoleteReferences.

SystemNavigation default obsoleteClasses.
Undeclared.


-- Pavel



2013/11/27 St�phane Ducasse <stephane.ducasse@inria.fr>
Hi esteban

I'm looking for a change due to the TreePackage introduction.
Before I could simply do something like the following to unload Nautilus


        Smalltalk tools remove: #browser.
        Smalltalk tools register: Browser as: #browser.
        (MCWorkingCopy forPackage: (MCPackage named: 'NautilusRefactoring')) unload. "OK"

        #Nautilus asClass cleanUp.
        KMRepository reset.
        KMPragmaKeymapBuilder release.
        #NautilusUI asClass allSubInstances do: [ :inst |
                SystemAnnouncer uniqueInstance unsubscribe: inst].
        Smalltalk garbageCollect.
        (MCWorkingCopy forPackage: (MCPackage named: 'NautilusCommon')) unload.
        (MCWorkingCopy forPackage: (MCPackage named: 'Nautilus')) unload.

And now if does not work anymore. I get some TreePackage around.

Apparently I get a weakMessageSend on classRemoved: and this message refers to an obsoletePackageTreeNautilus class.

buildGroupManagerFor: anInstance

        | holder |
        holder := GroupHolder new.
        (holder
                addADynamicClassGroupSilentlyNamed: 'Most Viewed Classes'
                block: [ anInstance recentClassesElements ]) removable: false.
        (holder
                addADynamicClassGroupSilentlyNamed: 'Last Modified Classes'
                block: [ self lastModifiedClasses ]) removable: false.

        (holder
                addADynamicGroupSilentlyNamed: 'Work'
                block: [ {} ]) removable: true; isFillable: true.

        ^ holder


Do you have any idea? A registration mechanism? from which I forgot to unregister.

Stef