Andreas Raab uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-ar.412.mcz==================== Summary ====================
Name: Kernel-ar.412
Author: ar
Time: 26 February 2010, 11:26:03.981 pm
UUID: 59fae938-7c7e-714c-8299-9d6e1ae5583b
Ancestors: Kernel-ar.411
Introduce a cleanUp/cleanUp: protocol based on the proposal from Mantis:
http://bugs.squeak.org/view.php?id=7244The cleanUp protocol takes an optional argument to indicate whether we're doing an aggressive cleanup (which involves deleting projects, change sets, and possibly other destructive actions) or a more gentle cleanup that's only supposed to clean out transient caches.
=============== Diff against Kernel-ar.411 ===============
Item was added:
+ ----- Method: Behavior>>cleanUp (in category 'initialize-release') -----
+ cleanUp
+ "Clean out any caches and other state that should be flushed when trying to get an image into a pristine state. Subclasses may override #cleanUp: to provide different levels of cleanliness"
+ !
Item was added:
+ ----- Method: ClassOrganizer class>>cleanUp: (in category 'class initialization') -----
+ cleanUp: aggressive
+ "Remove empty method categories when cleaning aggressively"
+
+ aggressive ifTrue:[Smalltalk removeEmptyMessageCategories].
+ !
Item was added:
+ ----- Method: MethodDictionary class>>cleanUp: (in category 'initialization') -----
+ cleanUp: aggressive
+ "Compact method dictionaries when aggressively cleaning up"
+
+ aggressive ifTrue:[self compactAllInstances].
+ !
Item was added:
+ ----- Method: Behavior class>>cleanUp (in category 'class initialization') -----
+ cleanUp
+ "Flush the obsolete subclasses."
+
+ self flushObsoleteSubclasses!
Item was added:
+ ----- Method: Behavior>>cleanUp: (in category 'initialize-release') -----
+ cleanUp: aggressive
+ "Clean out any caches and other state that should be flushed when trying to get an image into a pristine state. The argument should be used to indicate how aggressive the cleanup should be. Some subclasses may act differently depending on its value - for example, ChangeSet will only delete all unused and reinitialize the current change set if we're asking it to be aggressive."
+
+ ^self cleanUp!