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

Putting features in the keyword package.

Dave Moon and others have suggested that features should be symbols
in the keyword package.  I see some problems with this:

1.  People seem to think that packages and subsystems will want to
    add things to *FEATURES* because that make conditionalizing
    code using the packages easier.  Fine, but that's a real good
    reason why the features ought to be in that package.  Otherwise
    packages will have duplicate features names and things will get
    confused.  Packages are to isolate names!

2.  If features are in the keyword package, are they keywords?  I
    suppose so.  Thus we get things like #+:COMPILER.

I really think package-specific stuff ought to stay in that package.
Perhaps we should extend #+ so I can write #+(FOO:FEATURE-P :OPTION1)
to find out if package FOO has OPTION1 now.  That syntax won't work,
but you know what I mean.

If I could evaluate an arbitrary form with #+, then I could also write
things like #+(STRING= (SOFTWARE-TYPE) "VMS").  Otherwise we need
redundant information in *FEATURES* to specify the operating system, etc.

If we need to make arbitrary decision with #+, then let's bite the
bullet and allow that.

- Paul