Stripping out unused sources from Squeak [was: RE: [ANN] SqueakOS ]

Norton, Chris chrisn at Kronos.com
Mon Oct 18 19:59:03 UTC 1999


Hi Folks.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Tim Rowledge (rowledge at interval.com) wrote: 

The fully pluginised VM ought to help a lot with this. The core VM will be a
simple as possible but able to add all the other stuff at need. In a sense
it would be a basic BlueBook VM with a single extra facility - adding VM
plugins.

To tell the truth, I'd like to go even further. The VM could be modularized
so far that even the GC code wouldn't get loaded unless it was needed, nor
would BitBLT etc. This should allow 'trivial' applets to load very quickly,
do their thing and quit with very little resource churning. After all a
simple script to convert CRs to CRLF for a  bunch of files could probably
run without ever
needing to run a GC.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

While reading Tim's thoughts on creating a very tiny VM, I was reminded of
another line of thought I have had several times over my ST career.  In my
quest to reduce the installation requirements for customer copies of
Smalltalk programs I have written, I have often wished I had a source
stripper tool that could read my application code and could suggest what
other "base" code could be stripped out of my image.  I've dreamt of a tool
that would, given a set of application specific classes, create a proposed
list of other classes that can be discarded from your image.  You would then
have the option of approving or disproving the removal of all specific
classes, which the tool could automatically discard.  The tool would have be
powerful enough to ensure you didn't remove any required classes after
you've overridden its default choices for removal.  The tool would also have
to be smart enough to keep classes around for any global instances/class
variables that are defined in your image.

Thus, if you create a simple program that has no UI, the whole UI system,
MVC, morphic, balloon 3d, etc., would be discarded and you are left with a
tiny, powerful program that rivals your typical C program in size and power
(except for the fact that it would be platform independent -- Yay!).  This
would be great for all end-user applications.

Has anyone done (or thought about) anything like this?

Cheers.

---==> Chris





More information about the Squeak-dev mailing list