Skip to main content

1.8 Deprecated Language Features

Deprecated language features are not expected to appear in future Common Lisp standards, but are required to be implemented for conformance with this standard; see Section 1.5.1.1 (Required Language Features).

Conforming programs can use deprecated features; however, it is considered good programming style to avoid them. It is permissible for the compiler to produce style warnings about the use of such features at compile time, but there should be no such warnings at program execution time.

1.8.1 Deprecated Functions

The functions in Figure 1–2 are deprecated.

|

assoc-if-not nsubst-if-not require

count-if-not nsubstitute-if-not set

delete-if-not position-if-not subst-if-not

find-if-not provide substitute-if-not gentemp rassoc-if-not

member-if-not remove-if-not

|

| :- |

Figure 1–2. Deprecated Functions

1.8.2 Deprecated Argument Conventions

The ability to pass a numeric argument to gensym has been deprecated.

The :test-not argument to the functions in Figure 1–3 are deprecated.

|

adjoin nset-difference search

assoc nset-exclusive-or set-difference count nsublis set-exclusive-or delete nsubst sublis

delete-duplicates nsubstitute subsetp

find nunion subst

intersection position substitute

member rassoc tree-equal

mismatch remove union

nintersection remove-duplicates

|

| :- |

Figure 1–3. Functions with Deprecated :TEST-NOT Arguments

The use of the situation names compile, load, and eval in eval-when is deprecated.

1.8.3 Deprecated Variables

The variable *modules* is deprecated.

1.8.4 Deprecated Reader Syntax

The #S reader macro forces keyword names into the KEYWORD package; see Section 2.4.8.13 (Sharpsign S). This feature is deprecated; in the future, keyword names will be taken in the package they are read in, so symbols that are actually in the KEYWORD package should be used if that is what is desired.