(if (= *delivery-level* 0)
:full-dynamic-definition
(if (= *delivery-level* 1)
:method-dynamic-definition
:no-dynamic-definition))
If this is :no-dynamic-definition
, then the functions for dynamic class and method definition are deleted -- defmethod
, defclass
and so on and the direct slots and direct methods slots all classes are set to nil
.
If the value of the :keep-clos
keyword is nil
, then it is treated as :no-dynamic-definition
.
If it is :meta-object-slots
, then the direct slots and direct methods of all classes are retained, and the dynamic definition functionality is deleted.
If it is :method-dynamic-definition
, nothing is smashed or deleted, though the direct slots and direct methods of all classes are emptied. With this setting, methods can be defined dynamically but not classes.
If it is :full-dynamic-definition
or t
, then all dynamic class and method definition is allowed.
Compatibility Note:
In LispWorks 4.3 and previous versions the values :no-empty
and :no-empty-no-dd
were documented for the :keep-clos
keyword. These values are still accepted in LispWorks 7.1, but you should not rely on this. Change to one of the new values described above.
Note:
CLOS initarg checking in the delivered application by make-instance
and other initializations may be controlled by :clos-initarg-checking.
LispWorks Delivery User Guide - 10 Aug 2017