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