Description
Gives the following simple syntax to defsys:define
: (defsys:define (kind definition-name) [definition-class] &rest initargs)
If (defsys:explicit-definition-class-p
system)
is true at compile-time, then the definition-class is required and must evaluate (at runtime) to a class or to the symbol t
, in which case the definition-class is determined by calling defsys:definition-class
. Else, the definition-class is omitted and is determined by calling defsys:definition-class
.
The initargs are computed by calling (apply #'defsys:expand-args
system args)
at compile-time, and the keywords of the resulting plist will be automatically quoted during expansion as appropriate if non-keyword symbols are used.
We then call (apply #'defsys:ensure
system 'name definition-class initargs)
.