Common Lisp the Language, 2nd Edition

Next: Identity Function Up: Environment Inquiries Previous: Time Functions

## 25.4.2. Other Environment Inquiries

For any of the following functions, if no appropriate and relevant result can be produced, `nil` is returned instead of a string.

Rationale: These inquiry facilities are functions rather than variables against the possibility that a Common Lisp process might migrate from machine to machine. This need not happen in a distributed environment; consider, for example, dumping a core image file containing a compiler and then shipping it to another site.

[Function]
`lisp-implementation-type`

A string is returned that identifies the generic name of the particular Common Lisp implementation. Examples: `"Spice LISP"`, `"Zetalisp"`.

[Function]
`lisp-implementation-version`

A string is returned that identifies the version of the particular Common Lisp implementation; this information should be of use to maintainers of the implementation. Examples: `"1192"`, `"53.7 with complex numbers"`, `"1746.9A, NEWIO 53, ETHER 5.3"`.

[Function]
`machine-type`

A string is returned that identifies the generic name of the computer hardware on which Common Lisp is running. Examples: `"IMLAC"`, `"DEC PDP-10"`, `"DEC VAX-11/780"`.

[Function]
`machine-version`

A string is returned that identifies the version of the computer hardware on which Common Lisp is running. Example: `"KL10, microcode 9"`.

[Function]
`machine-instance`

A string is returned that identifies the particular instance of the computer hardware on which Common Lisp is running; this might be a local nickname, for example, or a serial number. Examples: `"MIT-MC"`, `"CMU GP-VAX"`.

[Function]
`software-type`

A string is returned that identifies the generic name of any relevant supporting software. Examples: `"Spice"`, `"TOPS-20"`, `"ITS"`.

[Function]
`software-version`

A string is returned that identifies the version of any relevant supporting software; this information should be of use to maintainers of the implementation.

[Function]
`short-site-name
``long-site-name`

A string is returned that identifies the physical location of the computer hardware. Examples of short names: `"MIT AI Lab"`, `"CMU-CSD"`. Examples of long names:

    "MIT Artificial Intelligence Laboratory"
    "Massachusetts Institute of Technology
    Artificial Intelligence Laboratory"
    "Carnegie-Mellon University Computer Science Department"

See also `user-homedir-pathname`.

[Variable]
`*features*`

The value of the variable `*features*` should be a list of symbols that name ``features'' provided by the implementation. Most such names will be implementation-specific; typically a name for the implementation will be included.

One standard feature name is `ieee-floating-point`, which should be present if and only if full IEEE proposed floating-point arithmetic [23] is supported.

The value of this variable is used by the `#+` and `#-` reader syntax.

X3J13 voted in March 1988 (SHARPSIGN-PLUS-MINUS-PACKAGE) to specify that feature names used with `#+` and `#-` are read in the `keyword` package unless an explicit prefix designating some other package appears. The standard feature name `ieee-floating-point` is therefore actually the keyword `:ieee-floating-point`, though one need not write the colon when using it with `#+` or `#-`; thus `#+ieee-floating-point` and `#+:ieee-floating-point` mean the same thing.

Next: Identity Function Up: Environment Inquiries Previous: Time Functions