On Sun, Jul 29, 2012 at 12:34 AM, camille teruel
<[email protected]>wrote:

> 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?
>
>
But the mess is consistent :/.  If I evaluate in a workspace:

 (RemovedEvent class: SystemChangeNotifier  category: 'aCategoryName')
asAnnouncement event

It yields to the event and not to nil.... So there is another problem in
the shrinking maybe...


>
> 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
>>
>>
>

Reply via email to