[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

*FEATURES*



It would be nice if every company which makes a Common-Lisp would be kind enough
to put some symbol on *FEATURES* which is the trademarked name of its company.
It would seem an obvious enough request, but I've discovered at least one 
company that didn't do this; it had features for things like operating system,
machine type, Common Lisp, etc. but there could be instances of more than one 
dialect of CL running under the same machine type, operating system, etc if they
were supplied by different vendors. For the sake of hacking non-portable sections
of code, it would be nice if by convention all implementors could be convinced to 
do this -- and a later edition of CLtL would remind them of such.
eg, #+SYMBOLICS works in any of our implementations. If other vendors each make 
sure their company's name is on their *FEATURES* list, it could save people the 
hassle of doing something silly, obscure, and unreliable like:

 (WHEN (FBOUNDP 'SYSTEM::FROB-SOMETHING-SOMEHOW)
   ;; Surely only the ACME computer company ever uses such a function name
   (PUSH 'ACME *FEATURES*))

I guess it should go without saying but since nothing seems to I'll say it anyway --
vendors who provide layered products should not, in general, add their names to
the *FEATURES* list or the whole thing would end up meaningless. That is, if
DEC decided to write an editor which ran on a 3600, they might add a feature
to *FEATURES* on the 3600, but would not add the feature DEC. I say "in general"
because in a few rare cases it might be useful to commit an outright lie (in
a well-documented fashion, of course) -- cross compilation is one situation 
where that issue might come up.

All suggestions above refer only to what should go in the CL implementor's 
guide (I forget the relevant page color), and not necessarily to what, if
anything, should go in the CL language spec itself.