Platform independent abstractions on platform specific models

Stephen Pair spair at advantive.com
Wed May 19 12:54:40 UTC 1999


A previous message I was writing on this topic appears fallen into the bit
bucket, so I apologize in advance if you receive a mail on this topic twice.

Tim Rowledge writes:

> As has been suggested before, some variety of system description class(es)
> would be a useful way to do this. Given the ability to dump
> objects to a file,
> we could simply attempt to load the appropriate file at startup
> (just like the
> #readDocument: does already) and incorporate the settings. FileDirectory
> related info, keyboard, mouse, sound, network, all sorts of
> machine specific
> data would be useful to keep in this manner.

It seems to me that platform abstractions in general need to be handled in
the image and not in the VM.  Do people generally agree with that?  Platform
dependent issues need to be modeled in the image with higher level, platform
independent abstractions built on top.  Only the simplest platform
independent abstractions need to be in the VM.  To do otherwise would IMHO
make the VM unnecessarily large and complex.

I can think of two features that might be useful here:

1.  Isolate all platform specific models and bundle them in sub-images.  The
distribution image can simple fault these in when needed from the VM folder.
That way, the distribution image remains as small as possible, and only the
platform dependent models for the platform in use are loaded.

2.  Provide a mechanism to warn when one makes use of platform dependent
models.  Perhaps it is as simple as expanding (or maybe it already exists)
the sub-image feature to provide a hook to know when references to the
sub-image are acquired.  That's a feature that's probably useful for many
purposes.  As an aside, a virtual object memory would be really useful.
Perhaps some combination of sub-images and Minnestore can work toward that
end.

- Stephen





More information about the Squeak-dev mailing list