rant alert...<br><br><div class="gmail_quote">On Tue, Feb 9, 2010 at 10:38 AM, Eliot Miranda <span dir="ltr">&lt;<a href="mailto:eliot.miranda@gmail.com">eliot.miranda@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;">
<br><br><div class="gmail_quote"><div><div></div><div class="h5">On Tue, Feb 9, 2010 at 10:33 AM, Andreas Raab <span dir="ltr">&lt;<a href="mailto:andreas.raab@gmx.de" target="_blank">andreas.raab@gmx.de</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Mariano Martinez Peck wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Exactly that was my idea. I see work in progress for minimal images, but not for &quot;minimal&quot; or more modular VM. I said I don&#39;t see not because there isn&#39;t, just because I don&#39;t know.<br>
</blockquote>
<br>
The VM is modular by design, i.e., by using plugins. The most minimal VM at this point is decidedly the Android VM, see<br>
<br>
<a href="http://code.google.com/p/squeak-android-vm/source/browse/trunk/project/jni/" target="_blank">http://code.google.com/p/squeak-android-vm/source/browse/trunk/project/jni/</a><br>
<br>
>From this VM you could still remove the B2DPlugin, LargeIntegers, MiscPrimPlugin, and ZipPlugin. That&#39;s pretty damn minimal (the binary is 300k in size).<br></blockquote><div><br></div></div></div><div>I would definitely /not/ remove LargeIntegers (core arithmetic) or ZipPlugin (method trailers, loading/unloading compressed files).  We need to start making a chart of plugin vs functionality supported and (as Tim has encouraged us to do in the past) start evicting plugins that do not support core language functionality (e.g. LargeIntegers) or near universal utility (e.g. ZipPlugin) to external status.</div>
</div></blockquote><div><br></div><div>To this end, good class comments for plugins helps.  For example this was not helpful to me when doing the closure compiler (a primitive in GeniePlugin overflowed the frame size):</div>
<div><br></div><div>This plugin implements the functionality of</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>CRStrokeFeature&gt;&gt;sameClassAbsoluteStrokeDistance: aCRFeature forReference: aBoolean</div>
<div>. This means that changes there should be mirrored here!</div><div><br></div><div>GeniePlugin&gt;&gt;majorNO should be in sync with version number of Genie.</div><div><br></div><div>This doesn&#39;t tell me what GeniePlugin is useful for unless I go find CRStrokeFeature and read its class comment if it has one.  The class comment needs to at last mention that the GeniePlugin supports gesture recognition of gestures made with input devices such as a pen tablet.</div>
<div><br></div><div><br></div><div>In general packages in the Smalltalk world all too often lack good high-level comments, and announcements of new versions lack them too.  being told that version N.M of package foo is now available is, to me, useless unless I know what foo does at a high level.</div>
<div><br></div><div><br></div><div>To this end I plead with all plugin authors to revisit their plugins and, where lacking, add good high-level information on what their plugins do.</div><div><br></div><div>P.S.  Sorry to single out GeniePlugin; it is simply an example, and certainly not the worst.</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Cheers,<br><font color="#888888">
  - Andreas<br>
</font></blockquote></div><br>
</blockquote></div><br>