[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