15.3 Compiling Functions into Memory

Functions can be compiled directly into memory by turning on the switch comp, by evaluating (on comp). This compilation is accomplished in part by a call on the function compd from within the function putd.

(compd NAME:id TYPE:ftype BODY:lambda): NAME:id expr
The function compd is analogous to the function putd.

Once comp is set to t subsequent function definitions are automatically compiled and a message of the form

⋆⋆⋆ (NAME): base <number>, length <number> bytes

is displayed. Unfortunately this information is of little use unless one happens to be doing something like debugging the compiler.

(compile NAMES:id-list): any expr
This function is used to compile resident functions. It is possible to compile a function which is being traced. There are two warning messages which may be printed.
    ⋆⋆⋆ NAME already compiled

This indicates that the function associated with the function name is already compiled. If there is no function definition associated with the name then the following message will be displayed.

    ⋆⋆⋆ No definition for NAME