elisp: Byte Compilation
16 Byte Compilation
*******************
Emacs Lisp has a “compiler” that translates functions written in Lisp
into a special representation called “byte-code” that can be executed
more efficiently. The compiler replaces Lisp function definitions with
byte-code. When a byte-code function is called, its definition is
evaluated by the “byte-code interpreter”.
Because the byte-compiled code is evaluated by the byte-code
interpreter, instead of being executed directly by the machine’s
hardware (as true compiled code is), byte-code is completely
transportable from machine to machine without recompilation. It is not,
however, as fast as true compiled code.
In general, any version of Emacs can run byte-compiled code produced
by recent earlier versions of Emacs, but the reverse is not true.
If you do not want a Lisp file to be compiled, ever, put a file-local
variable binding for ‘no-byte-compile’ into it, like this:
;; -*-no-byte-compile: t; -*-
Menu