[Vm-dev] Question about primitives

Eliot Miranda eliot.miranda at gmail.com
Tue Feb 9 18:47:21 UTC 2010

rant alert...

On Tue, Feb 9, 2010 at 10:38 AM, Eliot Miranda <eliot.miranda at gmail.com>wrote:

> On Tue, Feb 9, 2010 at 10:33 AM, Andreas Raab <andreas.raab at gmx.de> wrote:
>> Mariano Martinez Peck wrote:
>>> Exactly that was my idea. I see work in progress for minimal images, but
>>> not for "minimal" or more modular VM. I said I don't see not because there
>>> isn't, just because I don't know.
>> The VM is modular by design, i.e., by using plugins. The most minimal VM
>> at this point is decidedly the Android VM, see
>> http://code.google.com/p/squeak-android-vm/source/browse/trunk/project/jni/
>> From this VM you could still remove the B2DPlugin, LargeIntegers,
>> MiscPrimPlugin, and ZipPlugin. That's pretty damn minimal (the binary is
>> 300k in size).
> 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.

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):

This plugin implements the functionality of
CRStrokeFeature>>sameClassAbsoluteStrokeDistance: aCRFeature forReference:
. This means that changes there should be mirrored here!

GeniePlugin>>majorNO should be in sync with version number of Genie.

This doesn'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.

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.

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.

P.S.  Sorry to single out GeniePlugin; it is simply an example, and
certainly not the worst.

>> Cheers,
>>  - Andreas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20100209/91a27368/attachment.htm

More information about the Vm-dev mailing list