[Modules] Where do method removals go?
Ned Konz
ned at bike-nomad.com
Wed Aug 22 21:16:02 UTC 2001
On Wednesday 22 August 2001 01:02 pm, Allen Wirfs-Brock wrote:
> Packages are code modules, they contain class, method, global variable, and
> initialization definition. They do not have export, imports, or any other
> sort of explicit dependency specifications. Basically, they just contain
> code fragments.
Much of the discussion I've read about modules seems to assume that loading a
module is an exclusively additive process: that we are adding new classes
and/or methods, or maybe changing existing methods.
However, the reality of the situation (that is handled by the existing change
sets) is that one often wants to remove existing methods within a module.
This must be dealt with somehow. I don't think a fully declarative system can
easily deal with method removal.
A similar requirement is adding or removing instance variables.
Currently with change sets, one has to use addInstVarName: and
removeInstVarName: in a preamble to do this without clobbering some other
change set's previous changes to a classes' instance variables.
It seems to me that we have to either:
* provide some kind of executable code associated with loading or unloading
of modules, like existing change set preambles/postscripts, or
* provide some more declarative way to express the expected results of
loading a module
It seems that this kind of pre/post load code would more properly belong
in Allen's Clusters. The reason for this is that loading a given module into
a system with other modules already loaded may require special customization
for each of the other combinations of modules.
--
Ned Konz
currently: Stanwood, WA
email: ned at bike-nomad.com
homepage: http://bike-nomad.com
More information about the Squeak-dev
mailing list
|