[squeak-dev] The Trunk: System-ar.338.mcz

commits at source.squeak.org commits at source.squeak.org
Thu Jun 17 02:54:23 UTC 2010


Andreas Raab uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-ar.338.mcz

==================== Summary ====================

Name: System-ar.338
Author: ar
Time: 16 June 2010, 7:52:24.553 pm
UUID: afc7591b-0a9a-bc4f-8b36-2081eb2445de
Ancestors: System-ar.337

Make it possible to run cleanup non-interactively.

=============== Diff against System-ar.337 ===============

Item was added:
+ ----- Method: SmalltalkImage>>cleanUp:except:confirming: (in category 'housekeeping') -----
+ cleanUp: aggressive except: exclusions confirming: aBool
+ 	"Clean up. When aggressive is true, this will destroy projects, change sets, etc.
+ 	Leave out any classes specifically listed in exclusions."
+ 
+ 	"Smalltalk cleanUp: true except: {Project. ChangeSet}"
+ 
+ 	| classes |
+ 	aBool ifTrue:[
+ 		"Give the user a chance to bail"
+ 		(self confirm: 'Cleanup will destroy projects, change sets and more.
+ Are you sure you want to proceed?') ifFalse:[^self].
+ 	].
+ 
+ 	"Find all classes implementing #cleanUp or cleanUp:"
+ 	classes := Smalltalk allClasses select:[:aClass| 
+ 		(aClass class includesSelector: #cleanUp) 
+ 			or:[aClass class includesSelector: #cleanUp:]
+ 	].
+ 
+ 	"Leave out the classes in the exclusion set"
+ 	classes := classes reject:[:aClass| exclusions includes: aClass].
+ 
+ 	"Arrange classes in superclass order, superclasses before subclasses.
+ 	This will ensure that specific cleanup (like MethodDictionary compaction)
+ 	will run after generic superclass cleanup (HashedCollection rehashing).
+ 	Otherwise generic superclass cleanup might undo specific one (in this
+ 	case rehashing will undo a good bit of MD compaction)."
+ 	classes := ChangeSet superclassOrder: classes.
+ 
+ 	"Run the cleanup code"
+ 	classes 
+ 		do:[:aClass| aClass cleanUp: aggressive]
+ 		displayingProgress:[:aClass| 'Cleaning up in ', aClass name].!

Item was changed:
  ----- Method: SmalltalkImage>>cleanUp:except: (in category 'housekeeping') -----
  cleanUp: aggressive except: exclusions
  	"Clean up. When aggressive is true, this will destroy projects, change sets, etc.
  	Leave out any classes specifically listed in exclusions."
  
  	"Smalltalk cleanUp: true except: {Project. ChangeSet}"
  
+ 	^self cleanUp: aggressive except: exclusions confirming: aggressive!
- 	| classes |
- 	aggressive ifTrue:[
- 		"Give the user a chance to bail"
- 		(self confirm: 'Aggressive cleanup will destroy projects, change sets and more.
- Are you sure you want to proceed?') ifFalse:[^self].
- 	].
- 
- 	"Find all classes implementing #cleanUp or cleanUp:"
- 	classes := Smalltalk allClasses select:[:aClass| 
- 		(aClass class includesSelector: #cleanUp) 
- 			or:[aClass class includesSelector: #cleanUp:]
- 	].
- 
- 	"Leave out the classes in the exclusion set"
- 	classes := classes reject:[:aClass| exclusions includes: aClass].
- 
- 	"Arrange classes in superclass order, superclasses before subclasses.
- 	This will ensure that specific cleanup (like MethodDictionary compaction)
- 	will run after generic superclass cleanup (HashedCollection rehashing).
- 	Otherwise generic superclass cleanup might undo specific one (in this
- 	case rehashing will undo a good bit of MD compaction)."
- 	classes := ChangeSet superclassOrder: classes.
- 
- 	"Run the cleanup code"
- 	classes 
- 		do:[:aClass| aClass cleanUp: aggressive]
- 		displayingProgress:[:aClass| 'Cleaning up in ', aClass name].!




More information about the Squeak-dev mailing list