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
hi, I think is nothing to do with PackageTree but with the fact that now groups are shown (and because of that created), So, probably reseting the groups before unloading would do the trick. {Nautilus. PackageTreeNautilus} do: #resetGroups. Esteban On Wed, Nov 27, 2013 at 8:05 AM, Stéphane Ducasse <stephane.ducasse@inria.fr
wrote:
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
On Nov 27, 2013, at 4:29 PM, Esteban Lorenzano <estebanlm@gmail.com> wrote:
hi,
I think is nothing to do with PackageTree but with the fact that now groups are shown (and because of that created), So, probably reseting the groups before unloading would do the trick.
{Nautilus. PackageTreeNautilus} do: #resetGroups.
just to tell you; resetGroups is missing in Nautilus but even then it does not solve my problem. stef
Esteban
On Wed, Nov 27, 2013 at 8:05 AM, Stéphane Ducasse <stephane.ducasse@inria.fr> wrote: 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
did not work either :( Really I wonder if we will succeed to have a modular system one day. If we do not exercise it it will never happen. Stef unloadNautilus #Nautilus asClass cleanUp. KMRepository reset. KMPragmaKeymapBuilder release. #NautilusUI asClass allSubInstances do: [ :inst | SystemAnnouncer uniqueInstance unsubscribe: inst]. Smalltalk garbageCollect. Smalltalk garbageCollect. Smalltalk garbageCollect. {Nautilus. PackageTreeNautilus} do: #resetGroups. Smalltalk garbageCollect. Smalltalk garbageCollect. Smalltalk garbageCollect. Smalltalk garbageCollect. Smalltalk garbageCollect. (MCWorkingCopy forPackage: (MCPackage named: 'NautilusCommon')) unload. (MCWorkingCopy forPackage: (MCPackage named: 'Nautilus')) unload. (MCWorkingCopy forPackage: (MCPackage named: 'GroupManager')) unload.
Pavel I tried your scripts (see below) UnReloader unloadNautilusRefactoring UnReloader switchToOldBrowser. UnReloader unloadNautilus2 and I get unloadNautilus2 | deletePackages | 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 asClass cleanUp. #NautilusUI asClass 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'). KMRepository reset. KMPragmaKeymapBuilder release. Smalltalk resetTools. 5 timesRepeat:[Smalltalk garbageCollect.]. Smalltalk fixObsoleteReferences. SystemNavigation default obsoleteClasses. Undeclared. On Nov 30, 2013, at 9:06 AM, Stéphane Ducasse <stephane.ducasse@inria.fr> wrote:
did not work either :( Really I wonder if we will succeed to have a modular system one day. If we do not exercise it it will never happen. Stef
unloadNautilus
#Nautilus asClass cleanUp. KMRepository reset. KMPragmaKeymapBuilder release. #NautilusUI asClass allSubInstances do: [ :inst | SystemAnnouncer uniqueInstance unsubscribe: inst]. Smalltalk garbageCollect. Smalltalk garbageCollect. Smalltalk garbageCollect. {Nautilus. PackageTreeNautilus} do: #resetGroups. Smalltalk garbageCollect. Smalltalk garbageCollect. Smalltalk garbageCollect. Smalltalk garbageCollect. Smalltalk garbageCollect. (MCWorkingCopy forPackage: (MCPackage named: 'NautilusCommon')) unload. (MCWorkingCopy forPackage: (MCPackage named: 'Nautilus')) unload. (MCWorkingCopy forPackage: (MCPackage named: 'GroupManager')) unload.
It's interesting that I have never seen this error. And the Jenkins job is able to unload it too... https://ci.inria.fr/pharo-contribution/view/Pharo-Kernel-3.0/job/PharoKernel... -- Pavel 2013/11/30 Stéphane Ducasse <stephane.ducasse@inria.fr>
Pavel I tried your scripts (see below)
UnReloader unloadNautilusRefactoring UnReloader switchToOldBrowser. UnReloader unloadNautilus2
and I get
unloadNautilus2
| deletePackages | 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 asClass cleanUp. #NautilusUI asClass 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').
KMRepository reset. KMPragmaKeymapBuilder release. Smalltalk resetTools. 5 timesRepeat:[Smalltalk garbageCollect.]. Smalltalk fixObsoleteReferences.
SystemNavigation default obsoleteClasses. Undeclared.
On Nov 30, 2013, at 9:06 AM, Stéphane Ducasse <stephane.ducasse@inria.fr> wrote:
did not work either :( Really I wonder if we will succeed to have a modular system one day. If we do not exercise it it will never happen. Stef
unloadNautilus
#Nautilus asClass cleanUp. KMRepository reset. KMPragmaKeymapBuilder release. #NautilusUI asClass allSubInstances do: [ :inst | SystemAnnouncer uniqueInstance unsubscribe: inst]. Smalltalk garbageCollect. Smalltalk garbageCollect. Smalltalk garbageCollect. {Nautilus. PackageTreeNautilus} do: #resetGroups. Smalltalk garbageCollect. Smalltalk garbageCollect. Smalltalk garbageCollect. Smalltalk garbageCollect. Smalltalk garbageCollect. (MCWorkingCopy forPackage: (MCPackage named: 'NautilusCommon')) unload. (MCWorkingCopy forPackage: (MCPackage named: 'Nautilus')) unload. (MCWorkingCopy forPackage: (MCPackage named: 'GroupManager')) unload.
It's interesting that I have never seen this error. And the Jenkins job is able to unload it too... https://ci.inria.fr/pharo-contribution/view/Pharo-Kernel-3.0/job/PharoKernel...
may because you remove more :) and the ui kills it or something like that. Stef
-- Pavel
2013/11/30 Stéphane Ducasse <stephane.ducasse@inria.fr> Pavel I tried your scripts (see below)
UnReloader unloadNautilusRefactoring UnReloader switchToOldBrowser. UnReloader unloadNautilus2
and I get
unloadNautilus2
| deletePackages | 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 asClass cleanUp. #NautilusUI asClass 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').
KMRepository reset. KMPragmaKeymapBuilder release. Smalltalk resetTools. 5 timesRepeat:[Smalltalk garbageCollect.]. Smalltalk fixObsoleteReferences.
SystemNavigation default obsoleteClasses. Undeclared.
On Nov 30, 2013, at 9:06 AM, Stéphane Ducasse <stephane.ducasse@inria.fr> wrote:
did not work either :( Really I wonder if we will succeed to have a modular system one day. If we do not exercise it it will never happen. Stef
unloadNautilus
#Nautilus asClass cleanUp. KMRepository reset. KMPragmaKeymapBuilder release. #NautilusUI asClass allSubInstances do: [ :inst | SystemAnnouncer uniqueInstance unsubscribe: inst]. Smalltalk garbageCollect. Smalltalk garbageCollect. Smalltalk garbageCollect. {Nautilus. PackageTreeNautilus} do: #resetGroups. Smalltalk garbageCollect. Smalltalk garbageCollect. Smalltalk garbageCollect. Smalltalk garbageCollect. Smalltalk garbageCollect. (MCWorkingCopy forPackage: (MCPackage named: 'NautilusCommon')) unload. (MCWorkingCopy forPackage: (MCPackage named: 'Nautilus')) unload. (MCWorkingCopy forPackage: (MCPackage named: 'GroupManager')) unload.
On 30 Nov 2013, at 09:07, Stéphane Ducasse <stephane.ducasse@inria.fr> wrote:
did not work either :( Really I wonder if we will succeed to have a modular system one day. If we do not exercise it it will never happen.
Yes. And this is related to the #cleanUp scripts, too: When doing âSmalltalk cleanUpâ, Nautilus should kill all itâs caches⦠I made quite some progress on that some weeks ago (Nautilus, but everywhere else, too), but there is still some cases that are not freed correctly. Sadly the only way to improve is to slowly and iteratively spend time on it...
Stef
unloadNautilus
#Nautilus asClass cleanUp. KMRepository reset. KMPragmaKeymapBuilder release. #NautilusUI asClass allSubInstances do: [ :inst | SystemAnnouncer uniqueInstance unsubscribe: inst]. Smalltalk garbageCollect. Smalltalk garbageCollect. Smalltalk garbageCollect. {Nautilus. PackageTreeNautilus} do: #resetGroups. Smalltalk garbageCollect. Smalltalk garbageCollect. Smalltalk garbageCollect. Smalltalk garbageCollect. Smalltalk garbageCollect. (MCWorkingCopy forPackage: (MCPackage named: 'NautilusCommon')) unload. (MCWorkingCopy forPackage: (MCPackage named: 'Nautilus')) unload. (MCWorkingCopy forPackage: (MCPackage named: 'GroupManager')) unload.
On 30 Nov 2013, at 09:48, Marcus Denker <marcus.denker@inria.fr> wrote:
On 30 Nov 2013, at 09:07, Stéphane Ducasse <stephane.ducasse@inria.fr> wrote:
did not work either :( Really I wonder if we will succeed to have a modular system one day. If we do not exercise it it will never happen.
Yes. And this is related to the #cleanUp scripts, too: When doing âSmalltalk cleanUpâ, Nautilus should kill all itâs caches⦠I made quite some progress on that some weeks ago (Nautilus, but everywhere else, too), but there is still some cases that are not freed correctly.
Sadly the only way to improve is to slowly and iteratively spend time on it...
Stef
unloadNautilus
#Nautilus asClass cleanUp.
Here an idea could be to do Smalltalk cleanUp. as the first step. I already made sure that this restarts e.g. all code where a block holds onto a method somewhere. e.g. it resets all the KM* classes. Marcus
Ok I will continue but this is try and error and I cannot see anything because once it crashesâ¦. it crashes. Stef On Nov 30, 2013, at 9:52 AM, Marcus Denker <marcus.denker@inria.fr> wrote:
On 30 Nov 2013, at 09:48, Marcus Denker <marcus.denker@inria.fr> wrote:
On 30 Nov 2013, at 09:07, Stéphane Ducasse <stephane.ducasse@inria.fr> wrote:
did not work either :( Really I wonder if we will succeed to have a modular system one day. If we do not exercise it it will never happen.
Yes. And this is related to the #cleanUp scripts, too: When doing âSmalltalk cleanUpâ, Nautilus should kill all itâs caches⦠I made quite some progress on that some weeks ago (Nautilus, but everywhere else, too), but there is still some cases that are not freed correctly.
Sadly the only way to improve is to slowly and iteratively spend time on it...
Stef
unloadNautilus
#Nautilus asClass cleanUp.
Here an idea could be to do
Smalltalk cleanUp.
as the first step.
I already made sure that this restarts e.g. all code where a block holds onto a method somewhere. e.g. it resets all the KM* classes.
Marcus
I do not understand why {#Nautilus. #PackageTreeNautilus} do: [:each | each asClass resetGroups]. or GroupManager current "reset" (does not exist) and followed by 5 timesRepeat:[Smalltalk garbageCollect.]. do not get rid of the registration especially since they are weak So now what I'm doing instead is #AbstractGroup asClass allSubInstances do: [ :each | SystemAnnouncer uniqueInstance unsubscribe: each ]. And we should probably define that somewhere. I added a bug entry to not forget. So now I can continue to unload the refactoring engine, then I will try to reload RB and Nautilus
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
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
Hi Pavel, El 27/11/2013 16:57, Pavel Krivanek escribió:
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.
Do you mean? (Undeclared at: #listUnimplemented put: #Nautilus). instead of 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 <mailto: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
2013/11/28 Hernán Morales Durand <hernan.morales@gmail.com>
Hi Pavel,
El 27/11/2013 16:57, Pavel Krivanek escribió:
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.
Do you mean?
(Undeclared at: #listUnimplemented put: #Nautilus).
instead of
listUnimplemented value: #Nautilus.
No, sorry, it's a part of a bigger script for this Jenkins job: https://ci.inria.fr/pharo-contribution/view/Pharo-Kernel-3.0/job/PharoKernel... -- Pavel
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 <mailto: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
participants (5)
-
Esteban Lorenzano -
Hernán Morales Durand -
Marcus Denker -
Pavel Krivanek -
Stéphane Ducasse