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 [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
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 > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by Stéphane Ducasse
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 > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
Free forum by Nabble | Edit this page |