CDR-14 and optional modules

Hello I look at CDR-14 that says about putting :CDR-NN symbols into *features* if implementation purports to implement a CDR. What is the recommended behaviour in the case when the implementation provides a loadable module to support a CDR? Should the feature be always present or only appear when the module is loaded? What are the opinions? Thank you, good bye Michael Raskin

Hi if you don’t load code that implements a feature you wouldn’t be able to push a feature onto the *FEATURES* list. That is, unless you are a jerk :) :) :) and push stuff onto the *FEATURES* list just for the heck of it, or as a, I’d say tasteless, joke :) :) :) Cheers MA
On May 12, 2019, at 22:04 , Michael Raskin <38a938c2@rambler.ru> wrote:
Hello I look at CDR-14 that says about putting :CDR-NN symbols into *features* if implementation purports to implement a CDR. What is the recommended behaviour in the case when the implementation provides a loadable module to support a CDR? Should the feature be always present or only appear when the module is loaded? What are the opinions?
Thank you, good bye Michael Raskin
-- Marco Antoniotti

if you don’t load code that implements a feature you wouldn’t be able to push a feature onto the *FEATURES* list.
Well, it is _also_ useful to indicate availability of implementation-provided support for the feature that it is just a `require` away. Basically the ideal case would be to have trivial-X use CDR numbers to get implementation specific bits, then see what exactly is available and build a unified interface on top. Should that be something like « generic function CDR-MM:PROBE-CDR (NUMBER) If CDR number NUMBER is available in the current environment, load the associated code (if necessary), ensure that :CDR-NUMBER symbol is in *FEATURES*, and return the package containing the implementation; otherwise return NIL. » then?
I look at CDR-14 that says about putting :CDR-NN symbols into *features* if implementation purports to implement a CDR. What is the recommended behaviour in the case when the implementation provides a loadable module to support a CDR? Should the feature be always present or only appear when the module is loaded?
participants (2)
-
Marco Antoniotti
-
Michael Raskin