The Form of the Squeak Release [LONGISH]

Dan Ingalls Dan.Ingalls at disney.com
Thu Jul 15 02:08:04 UTC 1999


Folks -

[This is really a footnote to my last message about the 2.5 release]
For better or for worse, the form of each Squeak release is a platform-independent "image" (and changes and sources), along with a platform-specific VM and a number of optional plug-ins.  The platform-independent image has many benefits, and we intend to continue with it for the foreseeable future.

There is, however, at least one downside to a single image as the form of a Squeak release:  Either it has too much in it and it's hard to eliminate, or it doesn't have enough in it and it's hard to install.  Another is that it is a judgement call whether a given function should or should not be included in a given release.

The purpose of this message is to summarize our current approach, and to consider other possible approaches in the future.

VARIOUS NEEDS
Mini
Everything optional has been removed, but it is possible to develop Squeak programs and work with the OS in a convenient manner.  It is tuned to require minimal disk space, and a minimal memory footprint.  It decompiles source code, and can run in 1MB.  This is what the "mini" image is.  

Basic
In a way, this is similar to the Minimal need, except that it is not intended to minimize resources, but just to minimize the amount of "excess baggage" in the image.  So this system would have full source code access, and probably network and sound support, but no "Play with Me" example windows, no PWS/Swiki, and probably no 3D or VM construction code.

Jumbo
This is everything as we have shipped it with each release so far.

Other packages
These are packages or changesets that are not part of the main releases, but many people might want them as much as anything else in the release.  Examples are ThingLab, Exception handling, Windoze looks, STP's music work, Bob's FMP game, etc.

THE CURRENT SITUATION
There are lots of reasons for a Jumbo release, and for making it be the default:
	* There is something cool about each thing included,
	* It is everything you need to go off and Squeak by yourself,
	* It has everything you need to download SqueakPages with
		music, speech, graphics, 3D -- any content made to date.
Moreover ther are answers to most of the downsides:
	* Most users have big enough machines to run it,
	* It is simple to derive a Basic image (morphic or MVC) by closing a
		few windows and executing a few do-its.

It is even possible to derive a Mini image from the Jumbo, but this is not so simple.  In fact it is fairly complicated and for this reason, each time I have produced a mini image (about once a year), I have posted it on the server for those who are interested.

Our approach so far has been to stick with a single release image to minimize the administative overhead and the possibility of mistakes.  Our choice of making Jumbo be the default is driven by our desire that every Squeak image should be able to exhibit the latest media capabilities, and have access to other Squeak content that may appear on web pages.

We do have a problem if someone wants to get a Basic Squeak, but they have less than 8MB of ram available so they can't start up the Jumbo release to make it.  Perhaps we should occasionally (once a year, say) post a Basic image for this kind of need, as we do for the mini need.

MODULES
It has been suggested that the whole system should be broken up into modules.  It is now possible, and in the future it should be easy, to install and also to unload major parts of the system as ImageSegments.  Obvious candidates include...
	VM construction
	PWS/Swiki
	Music Synthesis
	Music Editing
	Network Support
	Newtork apps
	Morphic Kernel
	Morphic general
	MVC
	Flash/TrueType
	3D
While I worked hard to make this possible, I don't know how important it is.  The question is, how many people who care enough about space to want to remove, eg, PWS/Swiki, aren't satisfied with just removing it for good from that image.  Moreover, breaking the image up into a lot of little modules actually makes it harder to release and harder for a newbie to download and understand.

We do plan to continue with support for packages, with ThingLab as an archtypal example.  The plan is to bring nested name spaces, segment load/unload and segmented source code all together as the elements of a Squeak package.  However, it's not yet clear to me that this is how we want to release the system.

	- Dan
	





More information about the Squeak-dev mailing list