|
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!)
|