SXEmacs Lisp has a compiler that translates functions written in elisp 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-coded 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 ((S)X)Emacs can run byte-compiled code produced by recent earlier versions of ((S)X)Emacs, but the reverse is not true. In particular, if you compile a program with SXEmacs 22, the compiled code may not run in earlier versions of XEmacs. Also byte-compiled code is not interchangable with different flavours of Emacs, that is byte compiled code from SXEmacs may not run in FSF Emacs and vice versa.
The first time a compiled-function object is executed, the byte-code
instructions are validated and the byte-code is further optimized. An
invalid-byte-code
error is signaled if the byte-code is invalid,
for example if it contains invalid opcodes. This usually means a bug in
the byte compiler.
See Compilation Errors, for how to investigate errors occurring in byte compilation.
• Speed of Byte-Code: | An example of speedup from byte compilation. | |
• Compilation Functions: | Byte compilation functions. | |
• Compilation Options: | Controlling the byte compiler’s behavior. | |
• Docs and Compilation: | Dynamic loading of documentation strings. | |
• Dynamic Loading: | Dynamic loading of individual functions. | |
• Eval During Compile: | Code to be evaluated when you compile. | |
• Compiled-Function Objects: | The data type used for byte-compiled functions. | |
• Disassembly: | Disassembling byte-code; how to read byte-code. | |
• Different Behaviour: | When compiled code gives different results. |