[Pharo-dev] Nautilus unload...

Stéphane Ducasse stephane.ducasse at inria.fr
Wed Nov 27 15:01:22 EST 2013


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 at 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 at 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
> 
> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20131127/8e0b354f/attachment-0002.html>


More information about the Pharo-dev mailing list