compile calls the compiler to translate a lambda expression into a code vector containing an equivalent sequence of host specific machine code. A compiled function typically runs between 10 and 100 times faster. It is generally worth compiling the most frequently called Lisp functions in a large application during the development phase. The compiler detects a large number of programming errors, and the resulting code runs sufficiently faster to justify the compilation time, even during development.
compile also supports a LispWorks-specific extension allowing
compile to compile an arbitrary form. When definition is not supplied and name is a list not of the form
compile compiles it as if by compile-file but without any file related processing and does it in-memory, so it has also the same effect as loading. This has a similar effect to compiling a definition in the LispWorks Editor tool, except that there is no source recording. Multiple forms can be compiled in one call by wrapping them with
compile is used this way it always returns
A compiled function object may be returned. Such compiled function objects are not printable (but see disassemble) other than as
#<Function FOO hex-address
(defun fn (...) ...) ; interpreted definition for fn
See declare for a list of the declarations that alter the behavior of the compiler.
LispWorks User Guide and Reference Manual - 13 Feb 2015