Hi All,<div><br></div><div>    I have just found out why some recent images of ours at Teleplace aren&#39;t logging doits; the system notifications are missing Smalltalk as a target.  If you look at senders of SystemChangeNotifier&gt;&gt;notify:ofAllSystemChangesUsing: in trunk you&#39;ll see the following three key senders (ignoring tests)</div>
<div><br></div><div>    ChangeSet class&gt;&gt;newChanges:          - ensures change sets keep up to date with changes</div><div>    Preferences class&gt;&gt;registerForEvents  - ensures prefs stay up to date when methods with preference method tags get added/removed</div>
<div>    Utilities class&gt;&gt;startUp                        - ensures recent submissions are maintained</div><div><br></div><div>SmalltalkImage is conspicuously absent, yet</div><div><br></div><div><div>|<span class="Apple-tab-span" style="white-space:pre">        </span>| am |</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>am := (SystemChangeNotifier uniqueInstance instVarNamed: &#39;eventSource&#39;) actionMap.</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>am keys select:</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>[:k| | e |</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>(e := am at: k) isArray</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>ifTrue: [e anySatisfy: [:seq| seq receiver == Smalltalk]]</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>ifFalse: [e receiver == Smalltalk]]</div><div><span class="Apple-tab-span" style="white-space:pre">                </span></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>#(#protocolRenamedEvent: #methodModifiedEvent: #protocolAddedEvent: #categoryRemovedEvent: #expressionDoItEvent: #methodRemovedEvent: #classReorganizedEvent: #protocolModifiedEvent: #categoryModifiedEvent: #classRenamedEvent: #protocolRemovedEvent: #classRemovedEvent: #classAddedEvent: #categoryRenamedEvent: #classModifiedEvent: #methodRecategorizedEvent: #classCommentedEvent: #methodAddedEvent: #classRecategorizedEvent: #categoryAddedEvent:)</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>| am |</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>am := (SystemChangeNotifier uniqueInstance instVarNamed: &#39;eventSource&#39;) actionMap.</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>am keys reject:</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>[:k| | e |</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>(e := am at: k) isArray</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>ifTrue: [e anySatisfy: [:seq| seq receiver == Smalltalk]]</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>ifFalse: [e receiver == Smalltalk]]</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>#(#methodReorganizedEvent: #methodCommentedEvent: #methodDoItEvent: #categoryRecategorizedEvent: #methodRenamedEvent:)</div></div><div><br></div>
<div>and there&#39;s the rub.  Why isn&#39;t Smalltalk a target of all events?  Why does it exclude #methodReorganizedEvent: #methodCommentedEvent: #methodDoItEvent: #categoryRecategorizedEvent: #methodRenamedEvent:?  Is this merely accident?</div>
<div><br></div><div>I&#39;m pretty sure that SmalltalkImage class&gt;&gt;startUp needs to ensure system notifications are up-to-date, but are the above exclusions missing for any reason?  It&#39;s kind of hard to figure out (see below).  I *think* that it should read</div>
<div><br></div><div>SmalltalkImage class&gt;&gt;startUp</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>&quot;XXXX: This is broken. SmalltalkImage startUp happens quite late in the startup sequence; earlier startups may very well need the information about the endianness of the platform.&quot;</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>EndianCache := nil.</div><div><span class="Apple-tab-span" style="white-space: pre; ">        SystemChangeNotifier uniqueInstance notify: </span>Smalltalk<span class="Apple-tab-span" style="white-space: pre; "> ofAllSystemChangesUsing: #event:</span></div>
<div><span class="Apple-tab-span" style="white-space: pre; "><br></span></div><div><span class="Apple-tab-span" style="white-space: pre; ">b</span>ut I thought I&#39;d check with y&#39;all.</div><div><br></div><div>and finally when can we reimplement this entire mess using e.g. Anouncements, I mean:</div>
<div><br></div><div>AbstractEvent&gt;&gt;eventSelector</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>^self class eventSelectorBlock value: itemKind value: self changeKind</div><div>
<br></div><div>AbstractEvent class&gt;&gt;eventSelectorBlock</div><div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>^[:itemKind :changeKind | itemKind, changeKind, &#39;Event:&#39;]</div>
</div><div><br></div><div>Surely this is too direct and easy to understand ;)  I mean who /needs/ senders and implementors to work?</div><div><br></div><div>grrr....</div><div>Eliot</div>