【发布时间】:2015-10-08 16:36:46
【问题描述】:
我开始学习 lisp 并正在寻找一种有效的方式来管理我的个人库。
所以我认为将我的库编译成单个 fasl 文件(包含包信息和实际实现)会很有用,然后我可以使用 (load "lib.fasl") 加载以包含库。问题是,该库由多个 *.lisp 文件组成,比如说 foo.lisp 和 bar.lisp。
我分别使用(compile-file "foo.lisp") 和(compile-file "bar.lisp") 分别编译它们。
显然,当我想使用它们时,必须手动 LOAD 库的每个文件(即 foo.fasl 和 bar.fasl)会相当麻烦,所以我正在寻找类似的东西
(link "foo.fasl" "bar.fasl" :output "lib.fasl")
或
(compile-file "foo.lisp" "bar.lisp" :output "lib.fasl")
生成一个lib.fasl,然后我可以LOAD。
我不想使用核心文件,因为我希望能够灵活地组合我的库(这需要为每个可能的库组合创建一个单独的核心文件)。
我在 SBCL 用户手册中搜索了执行此操作的 lisp 函数,并在 SBCL 手册页中搜索了使用 CLI 的功能,但我找不到任何东西。
我更喜欢使用 SBCL 的解决方案,但我也会采用其他方法。
提前致谢!
【问题讨论】:
-
在 ASDF 中我找到了一个很好的库管理工具,但我认为这个问题仍然很有趣,因为链接到 fasls 似乎并不是一项艰巨的任务,而且似乎仍然没有明显的方法。
标签: compilation load common-lisp sbcl