<div dir="ltr">For the immediate thing you asked, +1<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/11/28 Frank Shearar <span dir="ltr">&lt;<a href="mailto:frank.shearar@gmail.com" target="_blank">frank.shearar@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 28 November 2013 22:37, Nicolas Cellier<br>
<div><div class="h5">&lt;<a href="mailto:nicolas.cellier.aka.nice@gmail.com">nicolas.cellier.aka.nice@gmail.com</a>&gt; wrote:<br>
&gt; Also remember that we have to move all methods that read/write fonts and<br>
&gt; image out of graphics;<br>
&gt; otherwise it depends on a bunch of packages (system, files, ...).<br>
&gt;<br>
&gt; Note that graphics was focused on BitBlt graphics.<br>
&gt; But this is only one possible backend (Pharo is developing alternate ones).<br>
&gt; Though, the font scanning is independent of BitBlt (well, there is one<br>
&gt; specialized subclass for rendering on BitBlt).<br>
&gt; Thus, in term of modularity these two things could be split eventually<br>
&gt; (BitBltGraphics depending on Text scanning).<br>
&gt; Pharo has grouped text things together (both description and scanning).<br>
&gt; Don&#39;t know if it is a good idea though...<br>
&gt;<br>
&gt; Anyway, I find those classification really limited.<br>
&gt; As emphasized thru the discussions there is more than one classification<br>
&gt; possible.<br>
&gt; For example, you might want to see Array both in Collections and Kernel.<br>
&gt;<br>
&gt; Those classifications are like file system: they do not match our<br>
&gt; need/brain.<br>
&gt; We want something that can be queried like a database.<br>
&gt;<br>
&gt; So sometimes, I wonder if we shouldn&#39;t have class/methods belonging to<br>
&gt; several packages.<br>
&gt; The class/method would be removed only when all it&#39;s parent packages have<br>
&gt; been removed.<br>
&gt; You could then remove Collections without removing Array, because Array is<br>
&gt; also in Kernel.<br>
&gt; I feel like such feature could avoid balkanization of packages.<br>
&gt; Or maybe it&#39;s the most stupid idea...<br>
&gt; We should push it a bit to see how it goes...<br>
<br>
</div></div>That&#39;s an interesting idea, and I wouldn&#39;t mind exploring it... at a<br>
later time :) Right now I want to solve a much smaller problem :)<br>
<span class="HOEnZb"><font color="#888888"><br>
frank<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
&gt; 2013/11/28 Frank Shearar &lt;<a href="mailto:frank.shearar@gmail.com">frank.shearar@gmail.com</a>&gt;<br>
&gt;&gt;<br>
&gt;&gt; One way in which Graphics depends on System is through the resumable<br>
&gt;&gt; exception FontSubstitutionDuringLoading. StrikeFont class &gt;&gt;<br>
&gt;&gt; #familyName:size: uses it to signal that a font family is missing, and<br>
&gt;&gt; ProjectLoading uses it to record missing fonts.<br>
&gt;&gt;<br>
&gt;&gt; The relationship is entirely reasonable, but problematic from a module<br>
&gt;&gt; point of view: it entangles a low level package (Graphics) with a mid-<br>
&gt;&gt; to high-level package (System).<br>
&gt;&gt;<br>
&gt;&gt; I propose the following:<br>
&gt;&gt; * rename FontSubstitutionDuringLoading to MissingFont.<br>
&gt;&gt; * Update the three references to MissingFont.<br>
&gt;&gt; * move MissingFont to Graphics.<br>
&gt;&gt;<br>
&gt;&gt; This preserves the behaviour, but suggests what the problem is rather<br>
&gt;&gt; than under what circumstances the problem appears. More importantly<br>
&gt;&gt; though, it means that Graphics depends that much less on System.<br>
&gt;&gt;<br>
&gt;&gt; Thoughts?<br>
&gt;&gt;<br>
&gt;&gt; (This has the side effect of removing the problems that I reported<br>
&gt;&gt; yesterday regarding not being able to see all users of<br>
&gt;&gt; FontSubstitutionDuringLoading - the new MissingFont literals are all<br>
&gt;&gt; ClassBindings. However, note that during the class rename I didn&#39;t see<br>
&gt;&gt; all the places I needed to change, presumably because of the<br>
&gt;&gt; Alias/ClassBinding discrepancy.)<br>
&gt;&gt;<br>
&gt;&gt; frank<br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
<br>
</div></div></blockquote></div><br></div>