Previous: Open Coding and Inline Expansion, Up: Compiler

### 4.6 Interpreter

By default SBCL implements `eval` by calling the native code compiler. SBCL also includes an interpreter for use in special cases where using the compiler is undesirable, for example due to compilation overhead. Unlike in some other Lisp implementations, in SBCL interpreted code is not safer or more debuggable than compiled code.

Switching between the compiler and the interpreter is done using the special variable `sb-ext:*evaluator-mode*`. As of 0.9.17, valid values for `sb-ext:*evaluator-mode*` are `:compile` and `:interpret`.