[Meta] Standard packages?

Ralph Johnson johnson at cs.uiuc.edu
Mon Jul 23 07:53:48 UTC 2007


On 7/22/07, Brad Fuller <bradallenfuller at yahoo.com> wrote:
> Instead of 'standard packages', what if there was an image consisting of the
> fundamental classes required -- the basic building blocks for all images.
> A "core" team could be responsible for this.  Perhaps it consists of the
> improved Squeak classes from the ST-80 image. Or fundamental classes, like
> the ones you listed, that most everyone agrees should be included. The
> fundamental classes wouldn't be packages, they'd just be the basic building
> block for other packages to be added.
>
> For some reason, I thought there was a team like this. Isn't there?

There is a team responsible for making the next release of the Squeak image.
I am the leader of the 3.10 release, Edgar J. De Cleene manages the build
process and so does most of the work, and lots of people fix bugs and submit
changes for Edgar to process.

Our main goal has been to take things OUT of the image.  The 3.9 group also
took a lot of things out of the image.  But the image is still far
from "core".  For
example, it still has eToys, even though eToys is big and most people don't use
it.  That is because my rule was "remove anything that we can load back in" and
we haven't been able to get eToys loaded back in when we delete it.

A basic image has to have a compiler, and there are at least two compilers
out there.  There are dozens of browsers, which should you use?  Should you
include Morphic?  Croquet uses Tweak, instead.

Pavel Krivanek has done some very cool work on KernelImage, which is an
image with no GUI and no tools.  It has a compiler, and it has Monticello.
It has a command line UI and you can tell Monticello to load Morphic and any
programming tools that you want.  So, you can build up a fairly standard image
from it.  This is much more a "core image" than anything else that is readily
available.  It has some bugs, but I think it is getting close to being
usable, and
perhaps it should be the next Squeak image after 3.10.

Craig Latta has a system called Spoon, which is even smaller.  A basic Spoon
image doesn't have a compiler, but can load methods and classes from another
image, which does have a compiler.  Thus, you can easily build up an image
with whatever compiler you want.  Spoon is a much more radical system then
KernelImage, which is really just a slimmed down Squeak, but I am only talking
about the "slimmed-down Squeak" part of Spoon.  Since it is more
radical, Spoon is
further away from becoming the standard, but it also has more
potential benefits.

One of the few things we added in 3.10 was Lex Spoon's "Package Universe".
Package Universe is a way to load packages.  It is sort of like SqueakMap,
but it only holds packages that are supposed to work in 3.10 and it keeps
track of dependencies between packages, so it has "one click loading".
Damien Cassou has used Package Universe to define his "squeak-dev" image.
So, the basic 3.10 image has only one browser and has few extra programming
tools, but if you load "squeak-dev" then suddenly you have the macho programmers
image with code coloring, autocompletion, four kinds of browsers, and so on.
Package Universe means that it is really possible to have a core image with lots
of more complex images built upon it.  At the moment, there is just squeak-dev
and squeak-web, but it is easy to image dozens of more complex images.

If we used Package Universe with KernelImage, the base image wouldn't have
any programming tools and wouldn't even have a GUI.  All that would be
in more complex images.

But we aren't there yet!

-Ralph



More information about the Squeak-dev mailing list