Clozure CL中文版002:安装和运行Clozure CL
Category:帮助手册安装和运行Clozure CL
安装
Clozure CL通过Internet分发。 有关如何下载它的说明,请参阅http://ccl.clozure.com/download.html。
按照下载说明操作后,您的系统上应该有一个名为的目录ccl。该目录称为ccl目录。
Clozure CL由两部分组成:lisp内核和堆映像。当lisp内核启动时,它会找到堆映像,将其映射到内存中,然后开始运行映像中包含的lisp代码。在ccl目录中,您将找到适用于您的平台的预构建的lisp内核可执行文件和堆映像。
下表列出了各种平台上用于lisp内核的名称。堆映像与相应的lisp内核具有相同的基本名称,但.image后缀为。因此,图像名称armcl将是armcl.image。
按平台划分的内核名称 | |
平台 | 核心 |
Linux x86,x86-64 | lx86cl,lx86cl64 |
OS X x86,x86-64 | dx86cl,dx86cl64 |
FreeBSD x86,x86-64 | fx86cl,fx86cl64 |
Solaris x86,x86-64 | sx86cl,sx86cl64 |
Windows x86,x86-64 | wx86cl,wx86cl64 |
Linux PowerPC 32位,64位 | ppccl,ppccl64 |
Linux ARM 32位(armv6) | armcl |
默认情况下,lisp内核将在lisp内核本身所在的同一目录中查找具有适当名称的堆映像。因此,可以通过直接运行./lx86cl64(或调用任何适当的二进制文件)来启动Clozure CL 来自ccl目录。
如果lisp内核二进制文件不起作用,您可能需要在本地系统上重新编译它。请参阅构建内核。
运行Clozure CL
如果您始终从Emacs运行Clozure CL,则直接使用lisp内核二进制文件的完整路径名就足够了。也就是说,在您的Emacs init文件中,您可以编写类似的内容(setq inferior-lisp-program “/path/to/ccl/lx86cl64”)或进行等效更改slime-lisp-implementations。
从终端提示中直接运行Clozure CL也很方便。在scripts/ccl目录的目录中,有两个名为ccl和的文件ccl64。将这些文件复制到/usr/local/bin路径中的某个目录或其他目录中,然后编辑它们以使其值为CCL_DEFAULT_DIRECTORY您的ccl目录。然后,您可以通过键入ccl或启动lisp ccl64。
如果您使用64位lisp更多,您可能希望scripts/ccl64使用该名称 进行安装ccl。如果您希望32位lisp也可用,则可以安装scripts/ccl为ccl32。请注意,这些脚本没有任何神奇之处。您可以根据需要随意编辑它们。
初始文件
默认情况下,Clozure CL将查找ccl-init.lisp主目录中指定的文件,并在启动时加载它。在Unix系统上,它也会寻找.ccl-init.lisp。
如果您愿意,可以编译您的init文件,如果Clozure CL比相应的源文件更新,它将加载编译版本。换句话说,Clozure CL加载你的init文件(load “home:ccl-init”)。
因为init文件的加载方式与普通的Lisp代码相同,所以您可以在其中添加任何内容。例如,您可以更改工作目录,并加载经常使用的代码。
要禁止加载此init文件,请使用–no-init (or -n)选项调用Clozure CL。
命令行选项
从命令行使用Clozure CL时,可以使用以下选项来修改其行为。Clozure CL命令行参数的确切集可能因平台而异,并可能随时间而变化。可以使用该–help选项检索命令行选项的权威列表。
-h,–help
提供Clozure CL实现接受的命令行选项的最终(如果有些简洁)摘要,然后退出。
-V,–version
打印Clozure CL的版本然后退出。版本字符串与返回的值相同lisp-implementation-version。
-K,–terminal-encoding character-encoding-name
指定要用于的字符编码*terminal-io*(请参阅字符编码)。具体来说,字符编码名称字符串是大写的并且在keyword 包中实现。如果存在由该关键字命名的编码,*terminal-character-encoding-name*则将其设置为该编码的名称。默认是 :utf-8。
-n,–no-init
如果给出此选项,则不会加载init文件。如果Clozure CL由shell脚本调用,这不会受到用户可能具有的任何自定义的影响,这将非常有用。
-e,–eval 形式
表达式read-from-string从字符串形式读取(via )并进行评估。如果form包含shell元字符,则可能需要转义或引用它们以防止shell解释它们。
-l,–load 路径
加载path指定的文件。
-T,–set-lisp-heap-gc-threshold n
将Lisp gc阈值设置为n (请参阅GC页面回收策略)。
-Q,–quiet
当–batch 指定命令行选项时,禁止打印先驱和提示。
-R,–heap-reserve n
为堆扩展保留n个字节。默认值取决于所使用的特定平台(请参阅堆空间分配)。
-S,–stack-size n
将初始控件堆栈的大小设置为n(请参阅线程堆栈大小)。
-Z,–thread-stack-size n
将第一个线程堆栈的大小设置为n(请参阅 线程堆栈大小)。
-b,–batch
以批处理模式执行。文件结束*standard-input* 导致Clozure CL退出,尝试进入中断循环。
–no-sigtrap
在GDB下运行的一个模糊选项。
-I,–image-name 图像名称
指定要加载的内核的映像名称。默认为.image附加后缀的内核名称。
该–load和–eval选项可以分别提供多次。在加载init文件(如果有的话)之后和输入顶级read-eval-print循环之前,它们按照命令行中指定的顺序执行。
最后,伪参数后面的任何参数–都不会被处理,并且可以作为值的值用于Lisp *unprocessed-command-line-arguments*。
将Clozure CL作为Mac应用程序运行
如果要将Clozure CL作为可双击的Macintosh应用程序运行,则可以执行此操作。如果您想从那里获得Clozure CL,可以从Mac App Store获得。或者,您可以自己构建IDE:请参阅构建IDE。目前,不可能将Clozure CL的Mac App Store版本用作命令行程序。
http://mip.i3geek.com