如何使用Clozure Common Lisp创建应用程序(在Microsoft Windows上)

|| 我是Common Lisp的新手(使用Microsoft Windows下的Clozure Common Lisp),他以前熟悉c和python。因此,这里的问题也许很愚蠢,但请耐心给我一些帮助。   1)运行常见的Lisp脚本的常用方法是什么? 现在,我在Windows下编写了一个bat文件来调用ccl exe(wx86cl.exe),并在每次要“运行”脚本时评估evaluate0ѭ。这是常见的Lisp“运行”脚本的标准方法吗? 还有其他建议吗?   2)
(require \'cxml)
(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库加载速度的方法。那么,我们开发一个(也许非常简单的)lisp脚本的正常过程是什么? 根据我现在得到的答案,我想也许 a)编辑您的脚本 b)通过REPL环境进行测试,SLIME是一个非常好的选择,并且<==> b之间应该有很多循环 c)转储图像以分发它?(对此我不确定)   6)此外,我们发布/分发最终程序的常用方式/形式是什么? 对于Lisp库,我们只发布源代码,然后让其他人可以“加载/请求”它们。 对于Lisp程序,当确认所有功能均正常运行时,我们将转储映像以进行分发。 我对吗? 我们在真实产品中使用什么形式?我们是否总是将所有东西最终都转储到映像中以加快加载速度?     
已邀请:
1)是的,运行整个程序的通常方法是使用启动器脚本。但是,如今的Windows比bat解释器具有更好得多的脚本支持。 Windows Scripting Host和PowerShell是标准配置。 1a)在开发过程中,通常只需在REPL(Read-Eval-Print-Loop,即lisp命令行)中键入内容,或使用诸如SLIME之类的东西(用于emacs或xemacs)作为开发环境。如果您不知道它们是什么,请查找它们。您可能希望使用Cygwin来安装xemacs,这将使您能够使用各种linux-ish工具。 2)IIRC是标准的一部分。从技术上讲,ASDF不是,它是一个使库更方便工作的库。如果您真的开始编写大型Lisp程序,则ASDF具有许多最终需要的功能。 3)问题不清楚,通过。 4)参见1a)-在正在运行的实例中进行测试和修改,从而避免了多次加载库的需要(就像在Python中一样-找到了python repl,对吗?)。此外,在程序完成后,您可能会转储已预加载所有库的映像。 编辑:其他答案: 5)是的 6)转储映像后,您仍然需要分发lisp二进制文件以加载内存映像。为了使它对用户透明,您还必须具有一个加载程序脚本(或二进制文件)以对图像运行lisp二进制文件。     
您不必从头开始安装Lisp,并且每次想进行简单测试时都无需重新加载所有内容。为了提高开发效率,请在运行的Lisp环境的侦听器(REPL)中交互式评估代码。     
为了进行分发,我使用Zachary Beane的Buildapp工具。非常容易安装和使用。     
关于分配- 我编写了一个例程(该例程现在在家中不可用),它将把当前映像写为标准可执行文件并退出。它适用于CLISP和SBCL。 如果您愿意的话,我可以翻一下。     

要回复问题请先登录注册