Dylan Design Notes

#4: No Incremental Class Modifications	(Change)

Version 1, March 1993
Copyright (c) 1993-1994, Apple Computer

This design note deletes the functions add-slot and remove-slot, 
the setter for direct-superclasses, and the macro define-slot from 
the Dylan language specification.  

-------------------------------------------------------------------

Remove the functions add-slot, remove-slot, and the setter for 
direct-superclasses from the language.  Remove the macro define-
slot from the language.

-------------------------------------------------------------------

Notes:

These operations are costly to implement, degrade efficiency, are 
subject to misuse, and complicate the language model.  By removing 
runtime modification of classes, it is easier for the compiler to 
optimize code and class representations.  This change simplifies 
the language model and removes confusing and inefficient 
alternative approaches to problems.  Note that being able to make 
new classes at runtime does not destroy useful static properties in 
the way that being able to change existing classes at runtime does.

It is expected that many programming environments will allow 
incremental class modifications during program development.  This 
proposal is not intended to preclude that useful feature.

