24.5. Variable *FEATURES*

The variable *FEATURES* initially contains the following symbols

Default *FEATURES*

:CLISP
the name of this implementation
:ANSI-CL
CLISP purports to conform to [ANSI CL standard]
:COMMON-LISP
required by [ANSI CL standard]
:INTERPRETER
EVAL is implemented
:COMPILER
COMPILE and COMPILE-FILE are implemented
:SOCKETS
see Section 32.4, “Socket Streams”
:MT
see Section 32.5, “Multiple Threads of Execution”
:GENERIC-STREAMS
see Section 31.6, “Generic streams”
:LOGICAL-PATHNAMES
Logical Pathnames are implemented
:FFI
if a foreign function interface (see Section 32.3, “The Foreign Function Call Facility”) is supported (Platform Dependent: Many UNIX, Win32 platforms only)
:GETTEXT
if internationalization (see Section 31.4, “Internationalization of CLISP) using the GNU gettext package is supported (Platform Dependent: most UNIX platforms only)
:UNICODE
if UNICODE (ISO 10646) characters are supported (see Section 31.5, “Encodings”)
:LOOP
extended LOOP form is implemented
:CLOS
CLOS is implemented
:MOP
Meta-Object Protocol is implemented
:WORD-SIZE=64
if CLISP was built for a 64-bit CPU. This could be useful on platforms with 64-bit CPUs which have a 32-bit mode emulation (e.g., i386 is emulated on x86_64 and ia64) so that the user can decide which ABI library to load dynamically using FFI.
:WIN32
if hardware = PC (clone) and operating system = Win32 (Windows 95/98/Me/NT/2000/XP)
:PC386
if hardware = PC (clone). It can be used as an indicator for the mainstream hardware characteristics (such as the existence of a graphics card with a non-graphics text mode, or the presence of a keyboard with arrows and Insert/Delete keys, or an ISA/VLB/PCI bus) or software characteristics (such as the Control+Alternate+Delete keyboard combination).
:UNIX
if operating system = UNIX (in this case the hardware is irrelevant!)
:BEOS
if operating system = BeOS (in that case :UNIX is also present)
:CYGWIN
if CLISP is using the Cygwin UNIX compatibility layer on top of Win32 (in that case :UNIX is also present)
:MACOS
if operating system = Mac OS X (in that case :UNIX is also present)

Each module should add the appropriate keyword, e.g., :SYSCALLS, :DIRKEY, :REGEXP, :PCRE, etc.


These notes document CLISP version 2.49+Last modified: 2012-05-04