17 字节编译

Emacs Lisp 拥有一个 编译器(compiler),它可以将用 Lisp 编写的函数 转换为一种称为 字节码(byte-code) 的特殊表示形式,这种形式可以 更高效地执行。编译器会用字节码替换 Lisp 函数 定义。当调用字节码函数时,其定义 由 字节码解释器(byte-code interpreter) 求值。

由于字节编译后的代码由字节码解释器求值, 而非由机器硬件直接执行(真正的编译代码如此), 因此字节码可以在不同机器之间完全移植,无需重新编译。 但它的速度不如真正的编译代码。

一般来说,任何版本的 Emacs 都可以运行由较新版本之前

如果你永远不希望某个 Lisp 文件被编译,可以在其中 加入针对 no-byte-compile 的文件局部变量绑定,如下所示:

;; -*-no-byte-compile: t; -*-
emacs

Emacs

org-mode

Orgmode

Donations

打赏

Copyright

© 2025 Jasper Hsu

Creative Commons

Creative Commons

Attribute

Attribute

Noncommercial

Noncommercial

Share Alike

Share Alike