Well caught! Alexandre On 13 Mar 2010, at 15:20, Stéphane Ducasse wrote:
Here is the reason why Clipboard was not well initialized and the general problem with the startup list if we execute Smalltalk initialize :)
in the startup list not complete (and cannot really because other classes may dynamically register themselves) SmalltalkImage>>initializeStartUpList "SmalltalkImage initializeStartUpList"
| oldList | oldList := StartUpList. StartUpList := OrderedCollection new. "These get processed from the top down..." #( Delay DisplayScreen Cursor InputEventFetcher ProcessorScheduler "Starts low space watcher and bkground." LanguageEnvironment FileDirectory "Enables file stack dump and opens sources." NaturalLanguageTranslator ShortIntegerArray ShortRunArray CrLfFileStream ) do:[:clsName| Smalltalk at: clsName ifPresent:[:cls| Smalltalk addToStartUpList: cls]. ]. oldList ifNotNil: [oldList do: [:className | Smalltalk at: className ifPresent: [:theClass | Smalltalk addToStartUpList: theClass]]]. #( PasteUpMorph "ControlManager" ) do:[:clsName| Smalltalk at: clsName ifPresent:[:cls| Smalltalk addToStartUpList: cls]. ].
Now if we check the classes that have a addToStartUpList: call and that are not in the previous list. We see that we missed a lot of them.
classes := ((SystemNavigation default allCallsOn: #addToStartUpList:) collect: [ :e | e methodClass ]), ((SystemNavigation default allCallsOn: #addToStartUpList:after:) collect: [ :e | e methodClass ]). classNames := classes collect: [ :n | n instanceSide name ]. (Smalltalk class classVarNamed: 'StartUpList') do: [ :s | classNames remove: s ifAbsent: [] ]. classNames asSortedCollection
a SortedCollection(#AutoStart #CPUWatcher #Clipboard #CommandHistory #ExternalSettings #FreeTypeFontProvider #FreeTypeSettings #HostSystemMenus #HostWindowProxy #InputEventSensor #InternetConfiguration #Locale #MenuIcons #MultiByteFileStream #OSPlatform #ProcessBrowser #SecurityManager #SmalltalkImage #SmalltalkImage #SystemDictionary #SystemDictionary #UITheme #UUIDGenerator #WeakArray).
InputEventSensor has startup and shutdown but no initialize
Stef _______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.