Previous chapter: #3: Make Class Specification (Addition)

Dylan Design Notes: #4: No Incremental Class Modifications (Change)

Dylan Design Notes

#4: No Incremental Class Modifications (Change)

Version 1, March 1993

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 defineslot 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.

Next chapter: #5: Regularization of the Type System (Change)