9 Feb 21:30
Re: Empty categories
Andreas Raab <andreas.raab <at> gmx.de>
2010-02-09 20:30:46 GMT
2010-02-09 20:30:46 GMT
Thanks, Edgar! That's a really useful script. Cheers, - Andreas Edgar J. De Cleene wrote: > > > On 2/9/10 11:58 AM, "Torsten Bergmann" <astares <at> gmx.de> wrote: > >> Shouldnt we run a script on trunk to remove empty >> categories to clean up a little bit? > > Trying to see if the cleanup I have was in Squeak3.11-8931-alpha.image > originate the attached walkback > > The error was with the .cs via drag and drop and selecting code browser > Using message names tool I see no cleanup in image, so I copy paste here. > Come from original code of Ramon Leon and IMHO should be used before any > image go to ftp > > !SmalltalkImage methodsFor: 'image cleanup' stamp: 'edc 12/13/2009 08:34'! > cleanup > "SmalltalkImage current cleanup" > | tasks | > Transcript open. > tasks := OrderedCollection new > add: [Smalltalk removeEmptyMessageCategories]; > > add: [Workspace > allSubInstancesDo: [:each | each setBindings: > Dictionary new]]; > > add: [Undeclared removeUnreferencedKeys]; > > add: [Categorizer sortAllCategories]; > > add: [Symbol compactSymbolTable]; > > add: [#(#TheWorldMenu #FileServices #AppRegistry > #Preferences #FileList ) > do: [:cl | (Smalltalk at: cl) removeObsolete]]; > > add: [Flaps freshFlapsStart]; > > add: [MCFileBasedRepository flushAllCaches]; > > add: [HandMorph releaseCachedState; initForEvents. > self fixObsoleteReferences]; > > add: [Smalltalk forgetDoIts. > DataStream initialize. > Behavior flushObsoleteSubclasses. > "The pointer to currentMethod is not realy needed > (anybody care to fix this) and often holds on to > obsolete bindings" > MethodChangeRecord > allInstancesDo: [:each | each noteNewMethod: nil]. > Smalltalk garbageCollectMost]; > yourself. > Utilities > informUserDuring: [:bar | tasks > do: [:block | > bar value: block printString. > [block value] > on: Error > do: [:error | Transcript show: error; > cr]]]. > SystemNavigation default obsoleteClasses isEmpty > ifTrue: [SmalltalkImage current saveSession] > ifFalse: [SystemNavigation default obsoleteClasses > do: [:each | > self halt. > [PointerFinder on: each] > on: Error > do: [:error | Transcript show: error; > cr]]]! ! > > Edgar > > > > ------------------------------------------------------------------------ > >
RSS Feed