[squeak-dev] The Trunk: System-dtl.255.mcz

commits at source.squeak.org commits at source.squeak.org
Tue Feb 16 03:38:19 UTC 2010

David T. Lewis uploaded a new version of System to project The Trunk:

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

Name: System-dtl.255
Author: dtl
Time: 15 February 2010, 10:37:15.416 pm
UUID: b70348f2-a094-4adc-80fa-696552b171f0
Ancestors: System-dtl.254

Update SystemDictionary>>discardMVC to perform complete MVC removal. MVC may be reinstalled by loading packages ST80 and ToolBuilder-MVC.

=============== Diff against System-dtl.254 ===============

Item was changed:
  ----- Method: SystemDictionary>>discardMVC (in category 'shrinking') -----
+ 	"After suitable checks, remove all of MVC from the system. Removal will destroy current
+ 	MVC projects. MVC may be reinstalled by loading packages ST80 and ToolBuilder-MVC."
- 	"After suitable checks, strip out much of MVC from the system"
  	"Smalltalk discardMVC"
- 	| keepers |
- 	self flag: #bob. "zapping projects"
  	self isMorphic
  		ifFalse: [^self inform: 'You must be in a Morphic project to discard MVC.'].
  	"Check that there are no MVC Projects"
  	(Project allProjects allSatisfy: [:proj | proj isMorphic])
  		ifFalse: [(self confirm: 'Would you like a chance to remove your
  MVC projects in an orderly manner?')
  				ifTrue: [^ self].
  			(self confirm: 'If you wish, I can remove all MVC projects,
  make this project be the top project, and place
  all orphaned sub-projects of MVC parents here.
  Would you like be to do this
  and proceed to discard all MVC classes?')
  				ifTrue: [self zapMVCprojects]
  				ifFalse: [^ self]].
+ 	(MCPackage named: 'ToolBuilder-MVC') unload.
+ 	(MCPackage named: 'ST80') unload.
- 	self reclaimDependents.
- 	"Remove old Paragraph classes and View classes."
- 	self at: #Paragraph ifPresent: [:paraClass |
- 		(ChangeSet superclassOrder: paraClass withAllSubclasses asArray)
- 			reverseDo: [:c | c removeFromSystem]].
- 	self at: #View ifPresent: [:viewClass |
- 		(ChangeSet superclassOrder: viewClass withAllSubclasses asArray)
- 			reverseDo: [:c | c removeFromSystem]].
- 	"Get rid of ParagraphEditor's ScrollController dependence"
- 	self at: #ParagraphEditor ifPresent: [:paragraphEditor |
- 		#(#markerDelta #viewDelta #scrollAmount #scrollBar #computeMarkerRegion )
- 			do: [:sel | paragraphEditor removeSelector: sel].
- 		paragraphEditor compile: 'updateMarker'.
- 		"Reshape to MouseMenuController"
- 		Compiler evaluate: (paragraphEditor definition copyReplaceAll: 'ScrollController' with: 'MouseMenuController')].
- 	"Get rid of all Controller classes not needed by ParagraphEditor and ScreenController"
- 	self at: #ScreenController ifPresent: [:screenController |
- 		keepers := TextMorphEditor withAllSuperclasses copyWith: screenController].
- 	self at: #Controller ifPresent: [:controller |
- 		(ChangeSet superclassOrder: controller withAllSubclasses asArray)
- 			reverseDo: [:c | (keepers includes: c)
- 					ifFalse: [c removeFromSystem]]].
- 	SystemOrganization removeCategoriesMatching: 'ST80-Paths'.
- 	SystemOrganization removeCategoriesMatching: 'ST80-Symbols'.
- 	SystemOrganization removeCategoriesMatching: 'ST80-Pluggable Views'.
- 	self removeClassNamed: 'FormButtonCache'.
- 	self removeClassNamed: 'WindowingTransformation'.
- 	self removeClassNamed: 'ControlManager'.
- 	self removeClassNamed: 'DisplayTextView'.
  	ScheduledControllers := nil.
+ 	Smalltalk garbageCollect.
  	Undeclared removeUnreferencedKeys.
  	SystemOrganization removeEmptyCategories.
  	Symbol rehash!

More information about the Squeak-dev mailing list