The following features can be used to distinguish between platforms, or characteristics of the platform or of the LispWorks implementation.
Solaris2
HP-UX
System 5 Release 4 machine (for example Solaris2)
Linux
The variant of FreeBSD underlying Mac OS X.
Unix, including all of the above.
Microsoft Windows, including 32-bit and 64-bit.
All images that run on the x86 architecture have this feature. This includes Intel Macintosh, FreeBSD, Linux (32-bit) and Windows (32-bit).
Note: 64-bit LispWorks does not have this feature.
Images that run on the amd64/x86_64/x64 architecture have each of these feautures. This includes Linux (64-bit) and Windows (64-bit).
Images that run on SPARC architecture.
Images that run on PowerPC architecture.
Images that run in HP PA-RISC architecture.
The compiler targets a little endian machine, for instance x86.
Code can distinguish the twelve current LispWorks implementations like this:
#+(and :mswindows :lispworks-32bit)
"LispWorks (32-bit) for Windows"
#+(and :mswindows :lispworks-64bit)
"LispWorks (64-bit) for Windows"
#+(and :linux :lispworks-32bit)
"LispWorks (32-bit) for Linux"
#+(and :linux :lispworks-64bit)
"LispWorks (64-bit) for Linux"
#+freebsd
"LispWorks for FreeBSD"
#+(and :darwin :x86)
"LispWorks (32-bit) for Macintosh (running on Intel)"
#+(and :darwin :powerpc :lispworks-32bit)
"LispWorks (32-bit) for Macintosh (running on PowerPC)"
#+(and :darwin :x86-64 :lispworks-64bit)
"LispWorks (64-bit) for Macintosh (running on Intel)"
#+(and :darwin :powerpc :lispworks-64bit)
"LispWorks (64-bit) for Macintosh (running on PowerPC)"
#+(and :sparc :lispworks-32bit)
"LispWorks (32-bit) for Solaris"
#+(and :sparc :lispworks-64bit)
"LispWorks (64-bit) for Solaris"
#+:hppa
"LispWorks for HP PA"
The following features can be used to distinguish between versions of LispWorks:
All major version 4 releases.
Release 4.4.x
All major version 5 releases.
Release 5.0.x
Release 5.1.x
Every LispWorks 5 image has exactly one of the features
:lispworks-32bit
and
:lispworks-64bit
.
For
:sparc
,
:powerpc
and
:mswindows
, there two LispWorks architectures: 32-bit and 64-bit, which can be distinguished by
:lispworks-32bit
or
:lispworks-64bit
.
The following features are present in LispWorks with the meanings defined for ANSI CL:
Note that sometimes it is necessary to write code that examines
*features*
at load time or run time. For example this is true when you put platform-dependent code in fasl files that are shared between multiple platforms.
For a LispWorks image with the CAPI loaded,
:capi
will appear on
*features*
.
Note: LispWorks (32-bit) for Macintosh supports the native Mac OS X Cocoa-based GUI and the X11/Motif GUI. If you need to test for which of these libraries is loaded, check for the features
:cocoa
and
:x11-motif
respectively.