[squeak-dev] Empty categories
Edgar J. De Cleene
edgardec2001 at yahoo.com.ar
Tue Feb 9 19:20:05 UTC 2010
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
-------------- next part --------------
MessageNotUnderstood: Array>>isByteString
9 February 2010 5:07:38.355 pm
VM: Mac OS - a SmalltalkImage
Image: Squeak3.11alpha [latest update: #8931]
SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /Users/edgar/SqueakDevelop/imagesZip/Squeak3.11-8931-alpha
Trusted Dir /foobar/tooBar/forSqueak/bogus
Untrusted Dir /Users/edgar/Library/Preferences/Squeak/Internet/My Squeak
Array(Object)>>doesNotUnderstand: #isByteString
Receiver: #('*MinimalMorphic-changeset utilities' #basicNewChangeSet: #changeSetNamed:)
Arguments and temporary variables:
aMessage: isByteString
exception: MessageNotUnderstood: Array>>isByteString
resumeValue: nil
Receiver's instance variables:
#('*MinimalMorphic-changeset utilities' #basicNewChangeSet: #changeSetNamed:)
ByteSymbol(String)>>compare:with:collated:
Receiver: #SmalltalkImage
Arguments and temporary variables:
string1: #SmalltalkImage
string2: #('*MinimalMorphic-changeset utilities' #basicNewChangeSet: #changeSet...etc...
order: #[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26...etc...
Receiver's instance variables:
#SmalltalkImage
ByteSymbol(String)>>>=
Receiver: #SmalltalkImage
Arguments and temporary variables:
aString: #('*MinimalMorphic-changeset utilities' #basicNewChangeSet: #changeSet...etc...
Receiver's instance variables:
#SmalltalkImage
SystemOrganizer(Categorizer)>>classify:under:suppressIfDefault:
Receiver: <<error during printing>>
Arguments and temporary variables:
element: #SmalltalkImage
heading: '7253SmalltalkImage-cleanup.1.cs'
aBoolean: true
catName: nil
catIndex: 1
elemIndex: 1
realHeading: #'7253SmalltalkImage-cleanup.1.cs'
i: nil
iLimiT: nil
Receiver's instance variables:
categoryArray: #(#'7253SmalltalkImage-cleanup.1.cs')
categoryStops: #(1)
elementArray: #(#('*MinimalMorphic-changeset utilities' #basicNewChangeSet: #ch...etc...
--- The full stack ---
Array(Object)>>doesNotUnderstand: #isByteString
ByteSymbol(String)>>compare:with:collated:
ByteSymbol(String)>>>=
SystemOrganizer(Categorizer)>>classify:under:suppressIfDefault:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SystemOrganizer(Categorizer)>>classify:under:
[] in SystemOrganizer(Categorizer)>>classifyAll:under:
Array(SequenceableCollection)>>do:
SystemOrganizer(Categorizer)>>classifyAll:under:
[] in FileContentsBrowser class>>browseStream:named:
BlockClosure>>ensure:
CursorWithMask(Cursor)>>showWhile:
FileContentsBrowser class>>browseStream:named:
FileContentsBrowser class>>browseStream:
SimpleServiceEntry>>performServiceFor:
[] in ExternalDropHandler class>>lookupServiceBasedHandler:
ExternalDropHandler>>handle:in:dropEvent:
[] in PasteUpMorph>>dropFiles:
BlockClosure>>ensure:
PasteUpMorph>>dropFiles:
PasteUpMorph(Morph)>>handleDropFiles:
DropFilesEvent>>sentTo:
PasteUpMorph(Morph)>>handleEvent:
MorphicEventDispatcher>>dispatchDefault:with:
MorphicEventDispatcher>>dispatchEvent:with:
PasteUpMorph(Morph)>>processEvent:using:
PasteUpMorph>>processEvent:using:
PasteUpMorph(Morph)>>processEvent:
HandMorph>>sendEvent:focus:clear:
HandMorph>>sendEvent:focus:
HandMorph>>handleEvent:
HandMorph>>processEvents
[] in WorldState>>doOneCycleNowFor:
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in Project class>>spawnNewProcess
[] in BlockClosure>>newProcess
More information about the Squeak-dev
mailing list
|