<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Dec 8, 2013 at 5:46 PM, Frank Shearar <span dir="ltr">&lt;<a href="mailto:frank.shearar@gmail.com" target="_blank">frank.shearar@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Compiler depends on System because changing stuff - adding methods,<br>
changing classes, etc. - sends messages to SystemChangeNotifier<br>
uniqueInstance.<br>
<br>
While convenient, it (a) is inflexible and (b) causes a cycle. The<br>
correct relationship is that System uses Compiler.<br>
<br>
With that in mind, _a_ solution to this problem is to log things<br>
through a callback/registration mechanism of some kind. If you care<br>
about logging, you create a Compiler, say &quot;log here&quot; and off you go.<br>
(This means that you remove the log: part of a lot of methods in<br>
Compiler - if you don&#39;t have a logger/loggers attached, nothing<br>
happens, rather than logThis ifTrue: [] blocks. (Because you by<br>
default have a null logger.))<br>
<br>
Thoughts? Other possible approaches?<br></blockquote><div><br></div><div>One thing we ought to do is look at what Pharo has done here. IIRC, they got rid of SystemChangeNotifier, and use Announcements instead. That might, or might not, solve the problem at hand, but it if it does, compatibility would be a plus, and it&#39;s probably less work than coming up with something new.</div>
<div><br></div><div>Colin</div></div></div></div>