Just to anticipate a certain category of comments ;-)
Top 10 ways in which the modules system sucks (ordering depends on particular tastes).
- Documentation. This is a feature. No really. I had to remove the documentation to make this system Squeak-compliant. But some of the rationale behind the system is to be found at http://minnow.cc.gatech.edu/squeak/modules.
- Things are probably broken in the existing code base. Some parts most certainly are broken: Alice/Wonderlands use pool variables in a way that really isn't supposed to work, now it propbably doesn't. Project un/loading and image segments most likely don't work properly any more. Some eToy player-something also uses pool variables in a naughty way, in classes that modify their own definition.
- UI support. Right now the module explorer is what you get. And that ain't much. In particular, there is little or no ui support for creating delta modules and their contents yet.
- Version management. This barely exists yet.
- DeltaModules. They are not complete. Changing the external modules of the base modules, or the format of a class, would be the next thing to add.
- Image modularity. I have only been able to make the VMConstruction module, and Balloon3D (almost), unloadable.
- Integration with existing dev. tools. I've tried to fix the most obvious things, but cmd-q doesn't seem to find all symbols. For example.
- Repository classes. These could be made complete. And be made to handle errors gracefully. No good forwarding facility yet.
- ModuleInstaller. A cleaner (and complete) message protocol. More solid unistallation and failure recovery (and tests for these). Possibly the uninstall information will hold on to modules to prevent them from being cleared out from the image?
- Tests. The tests I've written so far cover the functionality to a reasonable amount, but they are not exhaustive. Also, the tests for module storage/retrieval from net servers do not pass yet, in large part because the ServerDirectory code doesn't work properly. This is something anyone could work on.
Henrik