165 lines
No EOL
5.2 KiB
HTML
165 lines
No EOL
5.2 KiB
HTML
<!DOCTYPE HTML>
|
|
<HTML LANG="en-us"
|
|
><HEAD
|
|
><TITLE
|
|
>1.6 Language Extensions | Common Lisp Nova Spec</TITLE
|
|
><META CHARSET="US-ASCII"
|
|
><LINK REL="canonical" HREF="1_6_Language_Extensions.html"
|
|
><LINK REL="next" HREF="1_7_Language_Subsets.html" TYPE="text/html" TITLE="1.7 Language Subsets"
|
|
><LINK REL="prev" HREF="1_5_Conformance.html" TYPE="text/html" TITLE="1.5 Conformance"
|
|
><LINK REL="up" HREF="1_Introduction.html" TYPE="text/html" TITLE="1. Introduction"
|
|
><LINK REL="start" HREF="index.html" TYPE="text/html" TITLE="Common Lisp Nova Spec"
|
|
><META NAME="VIEWPORT" CONTENT="width=device-width, initial-scale=1.0"
|
|
><LINK REL="STYLESHEET" HREF="dpans.css%3F3909942064.css"
|
|
><SCRIPT SRC="dpans.js%3F3909942064"
|
|
></SCRIPT
|
|
><SCRIPT SRC="apropos.js%3F3909942064"
|
|
></SCRIPT
|
|
></HEAD
|
|
><BODY
|
|
><DIV
|
|
><DIV CLASS="topnav"
|
|
><DIV CLASS="breadcrumb"
|
|
><SPAN CLASS="breadcrumb-item"
|
|
><A HREF="index.html"
|
|
>Common Lisp Nova Spec</A
|
|
></SPAN
|
|
> <SPAN CLASS="breadcrumb-item"
|
|
>→ <A HREF="1_Introduction.html"
|
|
>1. Introduction</A
|
|
></SPAN
|
|
> <SPAN CLASS="breadcrumb-item"
|
|
>→ <A HREF="1_6_Language_Extensions.html"
|
|
>1.6 Language Extensions</A
|
|
></SPAN
|
|
></DIV
|
|
><DIV CLASS="apropos"
|
|
><DIV CLASS="apropos-io"
|
|
><A HREF="1_5_Conformance.html" CLASS="prev"
|
|
>←</A
|
|
><SPAN ID="apropos-label"
|
|
>Apropos </SPAN
|
|
><INPUT ID="apropos" AUTOFOCUS="AUTOFOCUS" PLACEHOLDER="Type here to search" ONINPUT="aproposInput(this);" ONKEYUP="aproposKeyup(event);" ONCHANGE="aproposChange(this);" ONFOCUS="aproposFocus(this);" ONFOCUSOUT="aproposFocusout(this);"
|
|
><A HREF="1_7_Language_Subsets.html" CLASS="next"
|
|
>→</A
|
|
></DIV
|
|
><DIV ID="apropos-res"
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
><DIV CLASS="matter"
|
|
><SECTION
|
|
><H2 ID="sec_1_6" CLASS="HeadII"
|
|
>1.6 Language Extensions</H2
|
|
><UL CLASS="subtoc"
|
|
></UL
|
|
><P CLASS="j"
|
|
>A language extension is any documented <A HREF="26_1_Glossary.html#implementation-defined"
|
|
><EM CLASS="term"
|
|
>implementation-defined</EM
|
|
></A
|
|
> behavior of a <A HREF="26_1_Glossary.html#defined_name"
|
|
><EM CLASS="term"
|
|
>defined name</EM
|
|
></A
|
|
> in this standard that varies from the behavior described in this standard, or a documented consequence of a situation that the standard specifies as undefined, unspecified, or extendable by the implementation. For example, if this standard says that “the results are unspecified,” an extension would be to specify the results. </P
|
|
><P CLASS="j"
|
|
>If the correct behavior of a program depends on the results provided by an extension, only implementations with the same extension will execute the program correctly. Note that such a program might be non-conforming. Also, if this standard says that “an implementation may be extended,” a conforming, but possibly non-portable, program can be written using an extension. </P
|
|
><P CLASS="j"
|
|
>An implementation can have extensions, provided they do not alter the behavior of conforming code and provided they are not explicitly prohibited by this standard. </P
|
|
><P CLASS="j"
|
|
>The term “extension” refers only to extensions available upon startup. An implementation is free to allow or prohibit redefinition of an extension. </P
|
|
><P CLASS="j"
|
|
>The following list contains specific guidance to implementations concerning certain types of extensions.</P
|
|
><DL
|
|
><DT
|
|
><B CLASS="b"
|
|
>Extra return values</B
|
|
></DT
|
|
><DD
|
|
><P CLASS="j"
|
|
>An implementation must return exactly the number of return values specified by this standard unless the standard specifically indicates otherwise.</P
|
|
></DD
|
|
><DT
|
|
><B CLASS="b"
|
|
>Unsolicited messages</B
|
|
></DT
|
|
><DD
|
|
><P CLASS="j"
|
|
>No output can be produced by a function other than that specified in the standard or due to the signaling of <A HREF="26_1_Glossary.html#condition"
|
|
><EM CLASS="term"
|
|
>conditions</EM
|
|
></A
|
|
> detected by the function. </P
|
|
><P CLASS="j"
|
|
>Unsolicited output, such as garbage collection notifications and autoload heralds, should not go directly to the <A HREF="26_1_Glossary.html#stream"
|
|
><EM CLASS="term"
|
|
>stream</EM
|
|
></A
|
|
> that is the value of a <A HREF="26_1_Glossary.html#stream"
|
|
><EM CLASS="term"
|
|
>stream</EM
|
|
></A
|
|
> variable defined in this standard, but can go indirectly to <A HREF="26_1_Glossary.html#terminal_I_dashO"
|
|
><EM CLASS="term"
|
|
>terminal I/O</EM
|
|
></A
|
|
> by using a <A HREF="26_1_Glossary.html#synonym_stream"
|
|
><EM CLASS="term"
|
|
>synonym stream</EM
|
|
></A
|
|
> to <A HREF="v_terminal-io.html" CLASS="varref"
|
|
><B
|
|
>*terminal-io*</B
|
|
></A
|
|
>. </P
|
|
><P CLASS="j"
|
|
>Progress reports from such functions as <A HREF="f_load.html" CLASS="funref"
|
|
><B
|
|
>load</B
|
|
></A
|
|
> and <A HREF="f_compile.html" CLASS="funref"
|
|
><B
|
|
>compile</B
|
|
></A
|
|
> are considered solicited, and are not covered by this prohibition.</P
|
|
></DD
|
|
><DT
|
|
><B CLASS="b"
|
|
>Implementation of macros and special forms</B
|
|
></DT
|
|
><DD
|
|
><P CLASS="j"
|
|
><A HREF="26_1_Glossary.html#macro"
|
|
><EM CLASS="term"
|
|
>Macros</EM
|
|
></A
|
|
> and <A HREF="26_1_Glossary.html#special_operator"
|
|
><EM CLASS="term"
|
|
>special operators</EM
|
|
></A
|
|
> defined in this standard must not be <A HREF="26_1_Glossary.html#function"
|
|
><EM CLASS="term"
|
|
>functions</EM
|
|
></A
|
|
>.</P
|
|
></DD
|
|
></DL
|
|
></SECTION
|
|
></DIV
|
|
><DIV CLASS="footer"
|
|
><DIV CLASS="btmnav"
|
|
><A HREF="1_5_Conformance.html" CLASS="prev"
|
|
>←</A
|
|
><A HREF="1_7_Language_Subsets.html" CLASS="next"
|
|
>→</A
|
|
></DIV
|
|
><DIV CLASS="trail"
|
|
>Conversion to HTML copyright 2023 by Gilbert Baumann</DIV
|
|
></DIV
|
|
></DIV
|
|
><SCRIPT
|
|
>domReady();</SCRIPT
|
|
></BODY
|
|
></HTML
|
|
> |