Belling the cat of complexity (was: Ship it with Squeak)

Paul Fernhout pdfernhout at kurtz-fernhout.com
Fri Jun 30 23:31:54 UTC 2000


Tim Rowledge wrote:
> Another intriuging possibility that would be great in some cases and
> useless in others would be to have an on-demand repository of all the
> class & method (come to that, any object might be useful) so that a
> running image could load just what it needed, when needed. We have
> finally got a basic run at this into the VM codebase. Demand loading
> would probably be great for net connected machines and suchlike, but I
> can also see possibilities for small machines where we would have the
> repository in ROM and thereby keep the RAM demand down to what is really
> needed.

There was a packager product for VisualWorks that did just this at least
five years ago (although I never tried it) that I believe worked with
ENVY (but wasn't from OTI). ("Runtime packager" from Advanced Boolean
Concepts, Ltd. http://www.advbool.com/ ) Basically, the company
spokesperson said IIRC it first stripped your image (of development
tools and other things), and then as you were testing the image, if it
needed anything (determined from walkbacks?) it supposedly loaded it
back from the ENVY repository. 

As I think about it now, it's not completely clear how you would know
you needed a method. Say B inherits from A, and both have a method
"foo". If "foo" is stripped from B by mistake, then A>>foo will get
called and this is a fundamental error with unexpected side effects --
not a walkback. 

Of course, if you assume you would neve strip B>>foo if anyone sends
#foo, then you may be on safer ground. Then the only issue is selectors
that are fabricated by the application (such as for example creating
selectors with the name of XML nodes as they are read from a file).

Here is how Advanced Boolean Concepts explain it: 
http://www.advbool.com/RTP/brochure.html
"Runtime Packager allows you to test your application in a special mode
in which references to classes and methods that would have been stripped
out in the runtime image are still present and the references can be
detected. As stripped items are referenced, they are returned to the
image automatically and your application test continues uninterrupted.
When all tests are completed, you can save the list of references for
next time."

-Paul Fernhout
Kurtz-Fernhout Software 
=========================================================
Developers of custom software and educational simulations
Creators of the Garden with Insight(TM) garden simulator
http://www.kurtz-fernhout.com





More information about the Squeak-dev mailing list