Summary: Packages in Squeak (Alex's work)
Last updated at 3:00 pm UTC on 26 February 2005
- Reported by Alexandre Bergel (ab)
What problem is being addressed
Currently, packages are defined in a ad-hoc way with PackageInfo. Packages are built on naming convention. This has several limitations such as:
- package cannot be renamed,
- moving methods from one package to another is tedious,
- serveral tools are necessary to actually use packages (MC Browser to see the package currently present in the image, MC Package Browser to see a complete definition of a package including method extensions, ...)
How it solves the problem
- On the Model point of view: replace the class PackageInfo by a class Package that contains a name, a list of classes, and a list of method references.
- On the GUI point of view: create a package browser using the OB framework where packages can be easily manipulated, displayed, configured
Available on SqueakSource, PackageForSqueak, look at Packages.mcz
What's cool about it
- The class PackageInfo is well substitued by the new class Package. I currently use the new package system for current developpement in squeak. It does not need big changes in the system (no recompilation of all the classes for instance, as it was with Henrick modules in Squeak3.3)
- Project packaged in the old way can be used with what is proposed here. Just the naming convention becomes irrevelant.
- People who does not care about modules at all (e.g., if they prefer ChangeSets) will not notice any difference.
- Monticello is not affected, only PackageInfo is.
In what are you interested:
- Alexandre Bergel: designer, implementer, user of this model. I am also highly interested in modularizing the image.
Back to New Modules