[Pharo-dev] Nautilus unload...

Pavel Krivanek pavel.krivanek at gmail.com
Wed Nov 27 14:57:41 EST 2013


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/39069170/attachment-0002.html>


More information about the Pharo-dev mailing list