[squeak-dev] The System package and layered dependencies

Frank Shearar frank.shearar at gmail.com
Tue Jul 2 19:24:32 UTC 2013


I've been working on introducing layered dependencies in the base
image. That is, packages depend _only_ on packages below them. An
immediate consequence of such a system is that you cannot have cyclic
dependencies. You also have a _constructible_ system.

The System package, however, stands as "vertical" package in the
system. On one hand, it provides abstract hooks to services -
AppRegistry subclasses like ToolSet, for instance.

It also provides all manner of low level stuff, like System-Change
Notification, SARInstaller and System-Object Events.

And then it provides loads of extra stuff as well: crypto, an HTTP
client, finalization, and so on.

It's not that System is particularly large - it's only a little bigger
than Kernel - but that System is a bit scattered in purpose, and
provides too much inter-layer complications.

Suggestions on how to break up System into smaller, more focused
packages, greatly welcome! (Especially in the form of commits!)


More information about the Squeak-dev mailing list