Yes there is still mess in ChangesLog>>logEvent: . I'll clean up this tomorrow. By the way, does somone knows why ChangesLog only logs classes and methods deletion and nothing more?
2012/7/28 Pavel Krivanek <[email protected]> > On Fri, Jul 27, 2012 at 9:18 PM, Esteban Lorenzano <[email protected]> > wrote: > > 20236 > > ----- > > > > Issue 6467: Remove SystemChangeNotifier 2 - All events using > SystemAnnouncer > > http://code.google.com/p/pharo/issues/detail?id=6467 > > > > the beast is not dead yet... but almost :) > > > > Hi Esteban, > > the shrinking to the Pharo Kernel now fails with this error: > > PharoKernel shrinking report > Error: > MessageNotUnderstood: receiver of "isRemoved" is nil > 441 [:e | > | rep | > rep := FileStream forceNewFileNamed: 'PharoDebug.log'. > rep nextPutAll: 'PharoKernel shrinking report'; > cr. > rep nextPutAll: 'Error:'; > cr. > rep nextPutAll: e asString; > cr. > rep nextPutAll: thisContext stack size asString. > thisContext stack copy > withIndexDo: [:stck :i | [rep nextPutAll: i asString; > space; > nextPutAll: stck asString; > cr] > ifError: []]. > rep close. > Smalltalk exitFailure] in SmalltalkImage>>privShrinkingProcess > 2 BlockClosure>>cull: > 3 BlockClosure>>cull:cull: > 4 [:ex | errorHandlerBlock cull: ex description cull: ex receiver] in > BlockClosure>>ifError: > 5 BlockClosure>>cull: > 6 [(self tempAt: 2) > cull: exception] in > MethodContext(ContextPart)>>handleSignal: > 7 BlockClosure>>ensure: > 8 MethodContext(ContextPart)>>handleSignal: > 9 MethodContext(ContextPart)>>handleSignal: > 10 MessageNotUnderstood(Exception)>>signal > 11 UndefinedObject(Object)>>doesNotUnderstand: #isRemoved > 12 ChangesLog>>logEvent: > 13 ChangesLog>>logAnnouncement: > 14 MessageSend>>value: > 15 MessageSend>>cull: > 16 MessageSend>>cull:cull: > 17 [action cull: anAnnouncement cull: announcer] in > AnnouncementSubscription>>deliver: > 18 BlockClosure>>on:do: > 19 BlockClosure>>on:fork: > 20 AnnouncementSubscription>>deliver: > 21 [subscription deliver: anAnnouncement] in > SubscriptionRegistry>>deliver:to:startingAt: > 22 BlockClosure>>ifCurtailed: > 23 SubscriptionRegistry>>deliver:to:startingAt: > 24 SubscriptionRegistry>>deliver:to: > 25 SubscriptionRegistry>>deliver: > 26 SystemAnnouncer(Announcer)>>announce: > 27 SystemAnnouncer>>basicAnnounce: > 28 SystemAnnouncer>>announce: > 29 SystemAnnouncer>>trigger: > 30 SystemAnnouncer>>classRemoved:fromCategory: > 31 SystemDictionary>>forgetClass:logged: > 32 ClassRenameFixTest class(Class)>>removeFromSystem: > 33 ClassRenameFixTest class(Class)>>removeFromSystem > 34 [SystemChangeNotifier uniqueInstance noMoreNotificationsFor: class. > SystemAnnouncer unsubscribe: class. > class isTrait > ifFalse: [(class class includesSelector: #unload) > ifTrue: [class removeSelector: #unload]]. > class removeFromSystem] in [:className | > | class | > class := Smalltalk globals classOrTraitNamed: className. > class allSubclasses > ifEmpty: [SystemChangeNotifier uniqueInstance > noMoreNotificationsFor: class. > SystemAnnouncer unsubscribe: class. > class isTrait > ifFalse: [(class class includesSelector: > #unload) > ifTrue: [class > removeSelector: #unload]]. > class removeFromSystem]] in > SystemNavigation>>removeAllButPackages: > 35 OrderedCollection(Collection)>>ifEmpty: > 36 [:className | > | class | > class := Smalltalk globals classOrTraitNamed: className. > class allSubclasses > ifEmpty: [SystemChangeNotifier uniqueInstance > noMoreNotificationsFor: class. > SystemAnnouncer unsubscribe: class. > class isTrait > ifFalse: [(class class includesSelector: > #unload) > ifTrue: [class > removeSelector: #unload]]. > class removeFromSystem]] in > SystemNavigation>>removeAllButPackages: > 37 SortedCollection(OrderedCollection)>>do: > 38 SystemNavigation>>removeAllButPackages: > 39 [| packages | > 10 > timesRepeat: [(Delay forMilliseconds: 100) wait. > Processor yield]. > Author fullName: 'Mr.Shrinker'. > self privCleanMonticello. > UIManager default: DummyUIManager new. > UIManager default progressBarEnabled: false. > self privCleanProcesses. > self privCleanGlobals. > 5 > timesRepeat: [Smalltalk garbageCollect]. > MCDataStream initialize. > Beeper instVarNamed: #default put: nil. > Smalltalk cleanOutUndeclared. > 5 > timesRepeat: [Smalltalk garbageCollect]. > Author reset. > KMPragmaKeymapBuilder release. > self privShrinkUnicodeTables. > Display newDepth: 1. > self privCleanStartUpList. > self privCleanShutDownList. > Object > subclass: #Model > instanceVariableNames: 'dependents' > classVariableNames: '' > poolDictionaries: '' > category: 'Kernel-Objects'. > self privCleanTextConstants. > SoundService default: nil. > SoundService unregister: DummySoundSystem. > ThreadSafeTranscript install. > self privCleanUnloadMethods. > SystemNavigation new removeAllButPackages: self kernelPackageNames. > Smalltalk flushClassNameCache. > 3 > timesRepeat: [Smalltalk garbageCollect. > Symbol compactSymbolTable]. > Undeclared removeUnreferencedKeys. > self privRecompileAll. > self privCleanChangeSets. > SystemEventManager allInstances > do: [:i | i instVarNamed: #actionMap put: > IdentityDictionary new]. > FileServices removeObsolete. > DebuggerMethodMap voidMapCache. > Object flushEvents. > MCDataStream initialize. > Locale classPool at: #LocaleChangeListeners put: nil. > SmalltalkImage classPool at: #Tools put: nil. > Behavior flushObsoleteSubclasses. > Smalltalk flushClassNameCache. > Smalltalk organization removeEmptyCategories. > WeakArray restartFinalizationProcess. > Smalltalk saveImageInNewContext] in > SmalltalkImage>>privShrinkingProcess > 40 BlockClosure>>on:do: > 41 BlockClosure>>ifError: > 42 SmalltalkImage>>privShrinkingProcess > 43 [self privShrinkingProcess] in SmalltalkImage>>shrinkToKernel > 44 [self value. > Processor terminateActive] in BlockClosure>>newProcess > >
