Andreas Raab uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-ar.238.mcz==================== Summary ====================
Name: System-ar.238
Author: ar
Time: 23 January 2010, 2:58:55.97 pm
UUID: addb8be5-8830-6f47-b583-65eb6bb42c85
Ancestors: System-nice.237
Provide a script via Smalltalk unloadAllKnownPackages that can be used to unload all packages that we know how to un- and reload.
=============== Diff against System-nice.237 ===============
Item was added:
+ ----- Method: SystemDictionary>>unloadAllKnownPackages (in category 'shrinking') -----
+ unloadAllKnownPackages
+ "Unload all packages we know how to unload and reload"
+
+ "Prepare unloading"
+ Flaps disableGlobalFlaps: false.
+ StandardScriptingSystem removeUnreferencedPlayers.
+ Project removeAllButCurrent.
+ #('Morphic-UserObjects' 'EToy-UserObjects' 'Morphic-Imported' )
+ do: [:each | SystemOrganization removeSystemCategory: each].
+ Smalltalk at: #ServiceRegistry ifPresent:[:aClass|
+ SystemChangeNotifier uniqueInstance
+ noMoreNotificationsFor: aClass.
+ ].
+ World removeAllMorphs.
+
+ "Go unloading"
+ #( 'ReleaseBuilder' 'ScriptLoader'
+ '311Deprecated' '39Deprecated'
+ 'Universes' 'SMLoader' 'SMBase' 'Installer-Core'
+ 'VersionNumberTests' 'VersionNumber'
+ 'Services-Base' 'PreferenceBrowser' 'Nebraska'
+ 'CollectionsTests' 'GraphicsTests' 'KernelTests' 'MorphicTests'
+ 'MultilingualTests' 'NetworkTests' 'ToolsTests' 'TraitsTests'
+ 'SystemChangeNotification-Tests' 'FlexibleVocabularies'
+ 'EToys' 'Protocols' 'XML-Parser' 'Tests' 'SUnitGUI'
+ ) do:[:pkgName| (MCPackage named: pkgName) unload].
+ "Traits use custom unload"
+ Smalltalk at: #Trait ifPresent:[:aClass| aClass unloadTraits].
+
+ "Post-unload cleanup"
+ PackageOrganizer instVarNamed: 'default' put: nil.
+ SystemOrganization removeSystemCategory: 'UserObjects'.
+ Presenter defaultPresenterClass: nil.
+ World dumpPresenter.
+ Preferences removePreference: #allowEtoyUserCustomEvents.
+ SystemOrganization removeEmptyCategories.
+ ChangeSet removeChangeSetsNamedSuchThat:[:cs | (cs == ChangeSet current) not].
+ Undeclared removeUnreferencedKeys.
+ StandardScriptingSystem initialize.
+ MCFileBasedRepository flushAllCaches.
+ MCDefinition clearInstances.
+ Behavior flushObsoleteSubclasses.
+ ChangeSet current clear.
+ ChangeSet current name: 'Unnamed1'.
+ Smalltalk flushClassNameCache.
+ Smalltalk at: #Browser ifPresent:[:br| br initialize].
+ DebuggerMethodMap voidMapCache.
+ DataStream initialize.
+ Smalltalk forgetDoIts.
+ AppRegistry removeObsolete.
+ FileServices removeObsolete.
+ Preferences removeObsolete.
+ TheWorldMenu removeObsolete.
+ Smalltalk garbageCollect.
+ Symbol compactSymbolTable.
+ TheWorldMainDockingBar updateInstances.
+ !