On Sun, Jul 29, 2012 at 12:34 AM, camille teruel <camille.teruel@gmail.com> 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 <pavel.krivanek@gmail.com>
On Fri, Jul 27, 2012 at 9:18 PM, Esteban Lorenzano <estebanlm@gmail.com> 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