'From Squeak3.8gamma of ''24 November 2004'' [latest update: #6643] on 11 April 2005 at 12:47:13 am'! "Change Set: MoveSymbol Date: 11 April 2005 Author: Andreas Raab Manually rename and recompile Symbol as a subclass of String." | old new newSym | "First make sure we have all ByteSymbols" old := Symbol allInstances. new := old collect:[:each| (ByteSymbol new: each size) string: each]. old elementsForwardIdentityTo: new. "And that MultiSymbols are interned correctly" MultiSymbol allInstancesDo:[:oldSym| newSym := Symbol intern: oldSym. newSym == oldSym ifFalse:[oldSym becomeForward: newSym]. ]. "And now recompile Symbol" [String subclass: #Symbol instanceVariableNames: '' classVariableNames: 'NewSymbols OneCharacterSymbols SymbolTable' poolDictionaries: '' category: 'Collections-Text'] on: Error do:[:ex| ex messageText = 'Symbol cannot be changed' ifTrue:[ex resumeUnchecked: nil] ifFalse:[ex pass] ].!