[cdr-discuss] A proposed convention for *FEATURES*
Nick Levine
ndl at ravenbrook.com
Fri Aug 24 07:04:18 UTC 2007
Some comments on this proposal:
1. Ought this proposal to be a CDR?
At present
#+(not cdr-42)
...doesn't necessarily tell us anything - it could just mean that your
proposal hasn't been adopted.
But suppose this proposal is CDR number 5 (as of 2007-08-24 this is
the next in the sequence) and so requires the feature keyword
:cdr-5. Then
#+(and cdr-5
(not cdr-42))
...implies that your proposal is in effect and therefore that the
absense of :cdr-42 on *features* means that this implementation isn't
conforming to CDR-42.
2. Names beginning with "CDR-"
You suggest:
programmers are discouraged from adding keyword symbols to
*FEATURES* whose names begin with "CDR-" except as part of
implementations of interfaces described in CDR documents.
Given that you only specify use of keywords beginning with CDR-<nn>,
I'm curious to know why you restricted keyword use to anything
beginning with CDR-. Grasping at straws, I wonder whether the
implementors of a lisp which employed cdr-consing would want to
announce this to their users by means of the :CDR-CONS feature (the
presence of which would conflict with your suggestion).
3. Read-time conditionals only?
You haven't proposed a means of determining after read-time (for
example: during load of a pre-compiled system, or at runtime) which
CDRs are in effect. I think this weakens your proposal.
On the other hand, the solution (defun featurep) is fairly clear and
has previously been documented "elsewhere":
http://clrfi.alu.org/clrfi/clrfi-1-featurep
Should this be revisited and proposed as a CDR?
4. Minor typo
I don't know about your reader,, but mine really enjoys complaining
about "too many commas". (See under "Esthetics")
- nick
More information about the cdr-discuss
mailing list