David T. Lewis uploaded a new version of ST80 to project The Trunk: http://source.squeak.org/trunk/ST80-dtl.204.mcz
==================== Summary ====================
Name: ST80-dtl.204 Author: dtl Time: 30 April 2016, 3:19:53.457686 pm UUID: acbcf1f1-f922-49b2-a551-cc7bcec09d61 Ancestors: ST80-mt.203
Simplify unloading and reloading MVC.
Originally described circa Squeak 4.1: http://lists.squeakfoundation.org/pipermail/squeak-dev/2010-February/144305....
The original SystemImage>>zapMVCProjects method is reimplemented as MVCProject class>>removeProjectsFromSystem.
To completely remove MVC: "MVCProject unloadMVC".
To reinstall MVC, load packages ST80, ST880Tools, ST80Tests, and ToolBuild-MVC from the trunk repository.
Note - unloading MVC when the current project is MVC should work, but does not.
=============== Diff against ST80-mt.203 ===============
Item was added: + ----- Method: MVCProject class>>removeProjectsFromSystem (in category 'shrinking') ----- + removeProjectsFromSystem + "Remove all MVC projects from the system, reorganizing the project hierarchy as needed. + This method was originally implemented as SmalltalkImage>>zapMVCProjects in earlier + versions of Squeak." + + "MVCProject removeProjectsFromSystem" + + Smalltalk garbageCollect. "So allInstances is precise" + Project + allSubInstancesDo: [:proj | | window | proj isTopProject + ifTrue: [(proj isKindOf: self) + ifTrue: ["Root project is MVC -- we must become the root" + Project current setParent: Project current.]] + ifFalse: [(proj parent isKindOf: self) + ifTrue: [(proj isKindOf: self) + ifFalse: ["Remove Morphic projects from MVC views " + "... and add them back here." + window := (SystemWindow labelled: proj name) + model: proj. + window + addMorph: (ProjectViewMorph on: proj) + frame: (0 @ 0 corner: 1.0 @ 1.0). + window openInWorld. + proj setParent: Project current]]. + (proj isKindOf: self) + ifTrue: ["Remove MVC projects from Morphic views" + Project deletingProject: proj]]]!
Item was added: + ----- Method: MVCProject class>>unloadMVC (in category 'shrinking') ----- + unloadMVC + "Completely remove MVC from the system. All MVC projects will be destroyed. + To reinstall MVC, load all of the ST80 and MVCToolbuilder packages." + + "MVCProject unloadMVC" + + self removeProjectsFromSystem. + ScheduledControllers := nil. + { 'ToolBuilder-MVC' . 'ST80Tests' . 'ST80Tools' . 'ST80' } + do: [ :package | (MCPackage named: package) unload ]. + + !
squeak-dev@lists.squeakfoundation.org