Scieneer Common Lisp 1.3.9 online documentation

compile-file source &key output-file error-file trace-file error-output load verbose print external-format progress block-compile entry-points byte-compile[Function]

Compiles source, producing a corresponding .FASL file. Source may be a list of files, in which case the files are compiled as a unit, producing a single .FASL file. The output file names are defaulted from the first (or only) input file name. Other options available via keywords:

The name of the fasl to output, nil for none, t for the default.
The name of the error listing file, nil for none (the default), t for .err.
If specified, internal data structures are dumped to this file. t for the .trace default.
If a stream, then error output is sent there as well as to the listing file. nil suppresses this additional error output. The default is t, which means use *error-output*.
The external file format to use when opening the source file. The default is :default.
:block-compile {nil | :specified | t}
Determines whether multiple functions are compiled together as a unit, resolving function references at compile time. nil means that global function names are never resolved at compilation time. :specified means that names are resolved at compile-time when convenient (as in a self-recursive call), but the compiler doesn't combine top-level defuns. With :specified, an explicit start-block declaration will enable block compilation. A value of t indicates that all forms in the file(s) should be compiled as a unit. The default is the value of ext:*block-compile-default*, which is initially :specified.
This specifies a list of function names for functions in the file(s) that must be given global definitions. This only applies to block compilation, and is useful mainly when :block-compile t is specified on a file that lacks start-block declarations. If the value is nil (the default) then all functions will be globally defined.
:byte-compile {t | nil | :maybe}
Determines whether to compile into interpreted byte code instead of machine instructions. Byte code is several times smaller, but much slower. If :maybe, then only byte-compile when speed is 0 and debug <= 1. The default is the value of ext:*byte-compile-default*, which is initially :maybe.