[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