我是Common Lisp的新手(在Microsoft Windows下使用Clozure Common Lisp),之前对c和python比较熟悉。所以也许这里的问题很愚蠢,但请耐心给我一些帮助。
1) 运行普通 lisp 脚本的常用方法是什么?
现在,我在 windows 下编写了一个 bat 文件来调用 ccl exe(wx86cl.exe) 并(progn (load "my_script_full_path") (ccl:quit))
在每次我想“运行”我的脚本时进行评估。这是“运行”普通 lisp 脚本的标准方法吗?
对此有何其他建议?
(require 'cxml)
2)和有什么区别(asdf:operate 'asdf:load-op :cxml)
?
它们似乎与我的脚本相同,我应该使用哪一个?
3)忽略它,不是一个明确的问题
4)当我想加载一些库(例如require'cxml)时,每次“运行”我的脚本时总是需要时间(3s甚至5s)来加载cxml,我显示的标准输出也有很多日志下面,似乎在检查内部的东西。是不是意味着每次想运行一个简单的测试都得花 3-5s 来加载 cxml?这似乎有点低效,输出很嘈杂。有什么建议吗?
我的脚本
(require 'cxml) (some-code-using-cxml)
和输出
; Loading system definition from D:/_play_/lispbox-0.7/quicklisp/dists/quicklisp/software/cxml-20101107-git/cxml.asd into #<Package "ASDF0">
;;; Checking for wide character support... yes, using code points.
; Registering #<SYSTEM "cxml-xml">
......
some my script output
---编辑添加更多---
5) 不得不说,为了加快lisp库的加载速度,我差点忘记了dump image的方式。那么,我们开发(可能很简单)lisp 脚本的正常流程是什么?
根据我现在得到的答案,我猜可能
是 a) 编辑你的脚本b) 通过 REPL 环境测试它,SLIME 是一个非常好的选择,并且 a <==> b
c) 转储
之间应该有很多循环
分发它的图像?(我不确定)
6) 此外,我们发布/分发最终程序的常用方式/形式是什么?
对于一个 lisp 库,我们只是发布我们的源代码,让其他人可以“加载/要求”它们。
对于 lisp 程序,当我们确认所有功能都运行良好时,我们会转储图像以分发它。
我对吗?
我们在实际产品中使用什么形式?我们是否总是在最终将所有内容转储到图像中以加快加载速度?