153 lines
8.2 KiB
HTML
153 lines
8.2 KiB
HTML
<!-- Common Lisp HyperSpec (TM), version 7.0 generated by Kent M. Pitman on Mon, 11-Apr-2005 2:31am EDT -->
|
|
<HTML>
|
|
<HEAD>
|
|
<TITLE>CLHS: Issue COMMON-FEATURES Writeup</TITLE>
|
|
<LINK HREF="../Data/clhs.css" REL="stylesheet" TYPE="text/css" />
|
|
<META HTTP-EQUIV="Author" CONTENT="Kent M. Pitman">
|
|
<META HTTP-EQUIV="Organization" CONTENT="LispWorks Ltd.">
|
|
<LINK REL=TOP HREF="../Front/index.htm">
|
|
<LINK REL=COPYRIGHT HREF="../Front/Help.htm#Legal">
|
|
<LINK REL=DISCLAIMER HREF="../Front/Help.htm#Disclaimer">
|
|
<LINK REL=PREV HREF="../Issues/iss055_w.htm">
|
|
<LINK REL=UP HREF="../Issues/iss056.htm">
|
|
<LINK REL=NEXT HREF="../Issues/iss057_w.htm">
|
|
</HEAD>
|
|
<BODY>
|
|
<H1><A REV=MADE HREF="http://www.lispworks.com/"><IMG WIDTH=80 HEIGHT=65 ALT="[LISPWORKS]" SRC="../Graphics/LWSmall.gif" ALIGN=Bottom></A><A REL=TOP HREF="../Front/index.htm"><IMG WIDTH=237 HEIGHT=65 ALT="[Common Lisp HyperSpec (TM)]" SRC="../Graphics/CLHS_Sm.gif" ALIGN=Bottom></A> <A REL=PREV HREF="../Issues/iss055_w.htm"><IMG WIDTH=40 HEIGHT=40 ALT="[Previous]" SRC="../Graphics/Prev.gif" ALIGN=Bottom></A><A REL=UP HREF="../Issues/iss056.htm"><IMG WIDTH=40 HEIGHT=40 ALT="[Up]" SRC="../Graphics/Up.gif" ALIGN=Bottom></A><A REL=NEXT HREF="../Issues/iss057_w.htm"><IMG WIDTH=40 HEIGHT=40 ALT="[Next]" SRC="../Graphics/Next.gif" ALIGN=Bottom></A></H1>
|
|
|
|
<HR>
|
|
|
|
|
|
|
|
<H2>Issue COMMON-FEATURES Writeup</H2>
|
|
|
|
<PRE><B>Issue:</B> <A HREF="iss056.htm">COMMON-FEATURES</A><P>
|
|
<B>Forum:</B> Cleanup<P>
|
|
<B>References:</B> None<P>
|
|
<B>Category:</B> Addition<P>
|
|
<B>Edit history:</B> 01-Mar-91, Version 1 by Pitman<P>
|
|
<B>Status:</B> For X3J13 consideration<P>
|
|
<P>
|
|
<B>Problem Description:<P>
|
|
</B><P>
|
|
The Common Lisp dialect defined by this <A REL=DEFINITION HREF="../Body/07_ffb.htm#standard"><B>standard</B></A> needs a feature which <P>
|
|
uniquely identifies it in <A REL=DEFINITION HREF="../Body/v_featur.htm#STfeaturesST"><B>*FEATURES*</B></A> so that it can be distinguished<P>
|
|
from other similar dialects (e.g., those described in CLtL1 and CLtL2).<P>
|
|
<P>
|
|
<B>Proposal (COMMON-FEATURES:SPECIFY):<P>
|
|
</B><P>
|
|
Specify the following meanings for features:<P>
|
|
<P>
|
|
:CLTL1<P>
|
|
<P>
|
|
An implementation which purports to support a LISP package that<P>
|
|
implements Common Lisp according to the 1984 specification <P>
|
|
``Common Lisp: The Language'' should place this feature on <A REL=DEFINITION HREF="../Body/v_featur.htm#STfeaturesST"><B>*FEATURES*</B></A>.<P>
|
|
This feature is -not- precluded by any of the features :CLTL2,<P>
|
|
:X3J13, :DRAFT-ANSI-CL, or :ANSI-CL.<P>
|
|
<P>
|
|
:CLTL2<P>
|
|
<P>
|
|
An implementation which purports to support a COMMON-LISP package<P>
|
|
that implements Common Lisp according to Steele's 1990 book, <P>
|
|
``Common Lisp: The Language, Second Edition'' (CLtL2) should have place<P>
|
|
feature on <A REL=DEFINITION HREF="../Body/v_featur.htm#STfeaturesST"><B>*FEATURES*</B></A>. This feature -is- precluded by any of the<P>
|
|
features :DRAFT-ANSI-CL or :ANSI-CL.<P>
|
|
<P>
|
|
:X3J13<P>
|
|
<P>
|
|
An implementation which purports to support a COMMON-LISP package<P>
|
|
that corresponds to some unpublished working draft, or some mix of<P>
|
|
features that approximates an expected X3J13 Draft should place<P>
|
|
this feature on <A REL=DEFINITION HREF="../Body/v_featur.htm#STfeaturesST"><B>*FEATURES*</B></A>.<P>
|
|
<P>
|
|
If this feature appears, :CLTL2 should not appear unless the<P>
|
|
implementation is compatible with and includes as a subset, the <P>
|
|
dialect described by CLtL2.<P>
|
|
<P>
|
|
:DRAFT-ANSI-CL<P>
|
|
<P>
|
|
If and when this specification has gone out for public review,<P>
|
|
implementations which purport to implement the full draft <A REL=DEFINITION HREF="../Body/07_ffb.htm#standard"><B>standard</B></A><P>
|
|
should place this keyword on <A REL=DEFINITION HREF="../Body/v_featur.htm#STfeaturesST"><B>*FEATURES*</B></A>.<P>
|
|
<P>
|
|
If subsequent drafts are produced before a final <A REL=DEFINITION HREF="../Body/07_ffb.htm#standard"><B>standard</B></A>, additional<P>
|
|
keywords to identify those drafts will be identified at that time.<P>
|
|
<P>
|
|
This feature is precluded by :ANSI-CL unless the draft ANSI specification<P>
|
|
and the final ANSI specification are completely compatible.<P>
|
|
<P>
|
|
:ANSI-CL<P>
|
|
<P>
|
|
If and when this specification is approved as an ANSI <A REL=DEFINITION HREF="../Body/07_ffb.htm#standard"><B>standard</B></A>,<P>
|
|
implementations which purport to implement that ANSI <A REL=DEFINITION HREF="../Body/07_ffb.htm#standard"><B>standard</B></A><P>
|
|
should place this keyword on <A REL=DEFINITION HREF="../Body/v_featur.htm#STfeaturesST"><B>*FEATURES*</B></A>.<P>
|
|
<P>
|
|
:COMMON-LISP<P>
|
|
<P>
|
|
This feature must appear in <A REL=DEFINITION HREF="../Body/v_featur.htm#STfeaturesST"><B>*FEATURES*</B></A> for any implementation that<P>
|
|
has one or more of the features :X3J13, :DRAFT-ANSI-CL, or :ANSI-CL.<P>
|
|
This feature might appear in <A REL=DEFINITION HREF="../Body/v_featur.htm#STfeaturesST"><B>*FEATURES*</B></A> for any implementation that<P>
|
|
has one or more of the features :CLTL2 and :CLTL1.<P>
|
|
<P>
|
|
<B>Examples:<P>
|
|
</B><P>
|
|
#+ANSI-CL FOO ;Sees FOO only in an ANSI <A REL=DEFINITION HREF="../Body/07_ffb.htm#standard"><B>standard</B></A> Common Lisp.<P>
|
|
#-ANSI-CL FOO ;Sees FOO only in a Common Lisp which is not an ANSI <A REL=DEFINITION HREF="../Body/07_ffb.htm#standard"><B>standard</B></A>.<P>
|
|
<P>
|
|
#+DRAFT-ANSI-CL FOO ; Sees FOO only in a DRAFT ANSI <A REL=DEFINITION HREF="../Body/07_ffb.htm#standard"><B>standard</B></A> Common Lisp.<P>
|
|
#+DRAFT-ANSI-CL FOO ; Sees FOO only in a DRAFT ANSI <A REL=DEFINITION HREF="../Body/07_ffb.htm#standard"><B>standard</B></A> Common Lisp.<P>
|
|
<P>
|
|
#+CLTL1 (LISP:REQUIRE ...) ; Sees the (LISP:REQUIRE ...) <P>
|
|
;only if CLtL1 compatibility support is available.<P>
|
|
<P>
|
|
<B>Rationale:<P>
|
|
</B><P>
|
|
Users need this to get a foothold as they try to port between dialects<P>
|
|
in transition.<P>
|
|
<P>
|
|
<B>Current Practice:<P>
|
|
</B><P>
|
|
Symbolics Genera does not have any of these features.<P>
|
|
<P>
|
|
<B>Cost to Implementors:<P>
|
|
</B><P>
|
|
Very small.<P>
|
|
<P>
|
|
<B>Cost to Users:<P>
|
|
</B><P>
|
|
None.<P>
|
|
<P>
|
|
<B>Cost of Non-Adoption:<P>
|
|
</B><P>
|
|
Users will have to figure out `more imaginative' ways of determining<P>
|
|
this kind of information which they commonly want to know. In many<P>
|
|
cases, they will add features with names like these themselves, <P>
|
|
sometimes according to differing criteria, so that if two applications<P>
|
|
which follow such a strategy are loaded into the same environment, they<P>
|
|
might manage to confuse each other if one adds a feature that it thinks<P>
|
|
is not <A REL=DEFINITION HREF="../Body/07_ffb.htm#standard"><B>standard</B></A> and the other intentionally doesn't add the same feature,<P>
|
|
only to find that it's there anyway.<P>
|
|
<P>
|
|
<B>Benefits:<P>
|
|
</B><P>
|
|
See above.<P>
|
|
<P>
|
|
<B>Aesthetics:<P>
|
|
</B><P>
|
|
Features lists are not really about aesthetics--they're about survival.<P>
|
|
But nevertheless, giving a <A REL=DEFINITION HREF="../Body/07_ffb.htm#standard"><B>standard</B></A> meaning to terms which name <A REL=DEFINITION HREF="../Body/07_ffb.htm#standard"><B>standard</B></A><P>
|
|
dialects seems like a plus.<P>
|
|
<P>
|
|
<B>Discussion:<P>
|
|
</B><P>
|
|
Pitman supports this proposal, but would consider any other reasonable<P>
|
|
alternative that addressed the same issues in a serious way.<P>
|
|
</PRE>
|
|
<HR>
|
|
|
|
<A REL=NAVIGATOR HREF="../Front/StartPts.htm"><IMG WIDTH=80 HEIGHT=40 ALT="[Starting Points]" SRC="../Graphics/StartPts.gif" ALIGN=Bottom></A><A REL=TOC HREF="../Front/Contents.htm"><IMG WIDTH=80 HEIGHT=40 ALT="[Contents]" SRC="../Graphics/Contents.gif" ALIGN=Bottom></A><A REL=INDEX HREF="../Front/X_Master.htm"><IMG WIDTH=80 HEIGHT=40 ALT="[Index]" SRC="../Graphics/Index.gif" ALIGN=Bottom></A><A REL=INDEX HREF="../Front/X_Symbol.htm"><IMG WIDTH=80 HEIGHT=40 ALT="[Symbols]" SRC="../Graphics/Symbols.gif" ALIGN=Bottom></A><A REL=GLOSSARY HREF="../Body/26_a.htm"><IMG WIDTH=80 HEIGHT=40 ALT="[Glossary]" SRC="../Graphics/Glossary.gif" ALIGN=Bottom></A><A HREF="../Front/X3J13Iss.htm"><IMG WIDTH=80 HEIGHT=40 ALT="[Issues]" SRC="../Graphics/Issues.gif" ALIGN=Bottom></A><BR>
|
|
|
|
<A REL=COPYRIGHT HREF="../Front/Help.htm#Legal"><I>Copyright 1996-2005, LispWorks Ltd. All rights reserved.</I></A><P>
|
|
</BODY>
|
|
</HTML>
|