The System package and layered dependencies

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The System package and layered dependencies

Frank Shearar-3
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!)