Colin Putney uploaded a new version of System to project The Trunk: http://source.squeak.org/trunk/System-cwp.501.mcz
==================== Summary ====================
Name: System-cwp.501 Author: cwp Time: 7 November 2012, 10:06:06.385 pm UUID: 6cc43c45-80fd-43fd-bf05-13adf4e37864 Ancestors: System-dtl.500
When removing a class from the system, catch AttemptToWriteReadOnlyGlobal, and proceed with the modification.
=============== Diff against System-dtl.500 ===============
Item was changed: ----- Method: SystemDictionary>>forgetClass:logged: (in category 'classes and traits') ----- forgetClass: aClass logged: aBool "Delete the class, aClass, from the system. Note that this doesn't do everything required to dispose of a class - to do that use Class>>removeFromSystem."
aBool ifTrue: [SystemChangeNotifier uniqueInstance classRemoved: aClass fromCategory: aClass category]. self organization removeElement: aClass name. Smalltalk removeFromStartUpList: aClass. Smalltalk removeFromShutDownList: aClass. aClass isObsolete ifFalse: [ (self associationAt: aClass name ifAbsent: [ nil ]) ifNotNil: [ :oldBinding | | newBinding | newBinding := oldBinding shallowCopy. self replaceBinding: oldBinding in: aClass with: newBinding. (self isThisBindingReferred: oldBinding) ifTrue: [ + [oldBinding value: nil] + on: AttemptToWriteReadOnlyGlobal + do: [:ex | true]. - oldBinding value: nil. Undeclared add: oldBinding ] ] ]. self removeKey: aClass name ifAbsent: []. self flushClassNameCache!
squeak-dev@lists.squeakfoundation.org