我猜这不是火箭科学,但我怎样才能运行编译的 lisp 文件?我在 Windows 下使用 emacs 和 SLIME。从 SLIME 菜单可以直接编译文件,一旦编译完成,它会在与我的 lisp 源代码相同的目录中生成一个 wx64fsl。如何加载/运行此文件?我一直在通过评估整个代码块来运行文件,并且有人告诉我运行编译版本的性能要好得多。
问问题
3767 次
3 回答
6
来自 SLIME REPL:
,cd
将目录更改为您的 lisp 文件的目录(load (compile "filename.lisp"))
或从 SLIME 菜单:
SLIME > 编译 > 编译 \ 加载
所以基本上它非常简单,甚至还有一个菜单选项,我最初只是被命名法弄糊涂了。希望这将有助于将来的某人。
于 2012-04-23T02:09:09.500 回答
3
你的 lisp 实现会自动编译函数吗?OS X 上的 SBCL 对我有用。如果是这种情况,我认为除了在加载文件时节省编译时间之外,您不会从使用编译文件中看到任何好处。
示例取自CLHS,并在我的 REPL 设置上进行了测试:
(defun f (x) x)
F
>
(compiled-function-p #'f)
T
>
在实践中,我一直只使用 .lisp 文件。从来没有把时间花在使用 Make 作为构建工具来在 lisp 源代码更改时自动编译它。除了节省编译时间(不加快运行时间)之外,至少在我的设置中,我没有看到使用编译的 fasls 带来的任何实际好处。
为了节省编译时间,我使用了一种技术,将大部分包/稳定代码加载(自动编译)到核心文件中,这样当我从该核心文件开始并在.lisp 文件。
于 2012-04-23T04:02:05.970 回答