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