我在Mac OS X 10.6.4上使用clisp 2.48(2009-07-28).我用'sudo port install clisp'下载了clisp.
安装快速lisp后,我安装了一些软件包,其中大多数都没问题.
但是,当我尝试安装"sqlite"时,我收到以下错误.
[1]> (ql:quickload "sqlite")
To load "sqlite":
Load 1 ASDF system:
sqlite
; Loading "sqlite"
[package cffi-sys]
*** - CFFI requires CLISP compiled with dynamic FFI support.
它说我的安装了mac port的clisp没有FFI支持.
有没有办法在Mac OS X上使用动态FFI支持编译CLISP?
我是一个Lisp初学者试图理解如何正确使用Lisp包系统,同时学习LTK用于GUI编程,使用SBCL 1.0.55.0.debian和Limp 0.3.4(如果重要的话,还有Debian Wheezy).我使用aptitude包管理器安装了ASDF(包cl-asdf&cl-common-lisp-controller),然后我使用Quicklisp网站上的说明安装了Quicklisp(http://www.quicklisp.org/beta/index.html) (不是来自Debian存储库)然后我(ql:quickload 'ltk)在SBCL控制台中安装了LTK .
hello-1.lisp(直接来自LTK教程):
(defun hello-1()
(with-ltk ()
(let ((b (make-instance ’button
:master nil
:text "Press Me"
:command (lambda ()
(format t "Hello World!~&")))))
(pack b))))
Run Code Online (Sandbox Code Playgroud)
如果我在一个新的SBCL Lisp的图像编译这个直上,我得到的消息WITH-LTK和PACK未定义功能,'BUTTON是不确定的变量.
所以,我发现我需要加载'ltk,然后再使用in-package.我能够运行它,我首先要使用(ql:quickload 'ltk)和(in-package :ltk)在SBCL控制台.但是,我仍然是一个'BUTTON未定义变量的错误消息.
* (ql:quickload 'ltk)
To load "ltk":
Load 1 ASDF system:
ltk
; Loading "ltk"
(LTK)
* (in-package :ltk)
#<PACKAGE "LTK">
* (compile-file "/home/user/code/lisp/hello-1.lisp")
; caught …Run Code Online (Sandbox Code Playgroud) 在程序开始时加载quicklisp的正确方法是什么?我目前正在复制/粘贴快速插入我的.eclrc的块中,例如
;;; quicklisp
(let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp"
(user-homedir-pathname))))
(when (probe-file quicklisp-init)
(load quicklisp-init)))
(ql:quickload "iterate")
Run Code Online (Sandbox Code Playgroud)
但似乎必须采用一种不那么混乱的方式来做事.
什么是pip需求文件,ruby gemfile,node package.json等的lisp等价物?我不完全确定asdf和quicklisp是如何关联的,如果这些是适当的使用方法.
我在Windows 7上安装了quicklisp/slime/clisp.当我开始粘贴时M-x slime,我收到了此错误消息.

我可以输入'continue'来启动clisp/slime,但只要我开始粘贴,就会弹出这条消息.这有什么问题?我怎样才能解决这个问题?
我试图加载hunchentoot通过quicklisp在煤泥,并得到以下错误:
READ error during COMPILE-FILE:
:ASCII stream decoding error on
#<SB-SYS:FD-STREAM
for "file [redacted]/dists/quicklisp/software/rfc2388-20120107-http/rfc2388.asd"
{100607B723}>:
the octet sequence #(196) cannot be decoded.
(in form starting at line: 29, column: 29,
file-position: 1615)
[Condition of type ASDF:LOAD-SYSTEM-DEFINITION-ERROR]
Run Code Online (Sandbox Code Playgroud)
我试图运行时得到这个:
(ql:quickload "hunchentoot")
Run Code Online (Sandbox Code Playgroud)
或者干脆:
(ql:quickload "rfc2388")
Run Code Online (Sandbox Code Playgroud)
The system file is encoded as UTF-8.
I'm not sure how to configure things so that SBCL on Windows starts with
UTF-8 as its default encoding …Run Code Online (Sandbox Code Playgroud) 当我使用 Quicklisp ( (ql:quickload "iterate"))加载“迭代”包时,它似乎加载良好,但没有一个功能真正起作用。当我输入时(iterate:iter (for i from 0 to 10) (collect i)),我收到一条错误消息,说“我的变量未绑定”,还有几个样式警告说 COLLECT 和 FOR 是未定义的函数,而 FROM 是未定义的变量。如果我尝试使用 ITER 或 ITERATE 而不是 ITERATE:ITER,也会发生同样的事情。我正在使用 SBCL。
每次使用 Quicklisp 时,我都觉得我在玩彩票。我找不到包含包列表和文档的网页。
正如我搜索一个具体的例子(ql:system-apropos "random-access-list"),因为I F ound SRFI-101的一种实现,它是基于Okasakis纯功能性的数据结构,在CL。我试过这个:
[1]> (ql:system-apropos-list "random-access-lists")
(#<QL-DIST:SYSTEM random-access-lists / random-access-lists-20120208-git / quicklisp 2016-03-18>)
[2]>
Run Code Online (Sandbox Code Playgroud)
我知道该名称random-access-lists不是很具体,因此可能还有其他具有该名称的包。上次我不太幸运,找到了 4 个部分匹配,其中最匹配的不是我要找的包。
如何找到有关搜索结果的更多信息?
我有一个简单的 common lisp 服务器程序,它使用 osicat 库与 posix 文件系统交互。我需要这样做,因为系统创建到文件的符号链接,并使用 POSIX stat 元数据,而这些事情在可移植 Lisp 中都不是很容易做到的。
我正在使用 Quicklisp 管理依赖项,并且我将所有这些都固定到一个工作发行版上。该应用程序可在 CCL 和 SBCL 之间移植,我倾向于在第一个中构建它并使用后者进行部署。我使用 asdf 声明应用程序的依赖项defsystem,并且可以使用 Quicklisp 加载它,以便从本地项目轻松进行开发。
对于部署,我只是使用一些 ansible 剧本,在远程复制开发人员环境(例如设置 Quicklisp、将代码推送到本地项目、运行用户主目录),这很 hacky,但基本上没问题。最近,随着它变得更加稳定sb-ext:save-lisp-and-die,我一直在使用简单的编译脚本来编译它。这意味着我得到了一个可执行文件,我可以像服务器一样运行它,并使用服务管理脚本和匿名用户帐户。
这一直工作得很好,所以我最近将这一步移到了下一个级别,并且我正在使用我的编译脚本构建 .deb 包,因此我可以将所有内容捆绑到可重定位的二进制文件中。这也有点工作,但生成的二进制文件不能从原始构建主机重新定位。他们拒绝启动,并且似乎尝试为 osicat 动态加载共享库
Unhandled SIMPLE-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING
Mar 15 12:47:14 annie [479]: {10005C05B3}>:
Mar 15 12:47:14 annie [479]: Error opening shared object "libosicat.so":
Mar 15 12:47:14 annie [479]: libosicat.so: cannot open shared object file: No such file or directory.
Run Code Online (Sandbox Code Playgroud)
看起来图像希望在原始构建树的 Quicklisp …
在 MacOS 上:当我尝试加载 log4cl 时,出现编译错误:
CL-USER> (ql:quickload "log4cl")
To load "log4cl":
Load 1 ASDF system:
log4cl
; Loading "log4cl"
.
;
; caught ERROR:
; READ error during COMPILE-FILE:
;
; Lock on package SB-C violated when interning LAMBDA-PARENT while in package
; LOG4CL-IMPL.
; See also:
; The SBCL Manual, Node "Package Locks"
;
; (in form starting at line: 99, column: 0, position: 3779)
COMPILE-FILE-ERROR while
compiling #<CL-SOURCE-FILE "log4cl" "src" "naming-sbcl">
[Condition of type UIOP/LISP-BUILD:COMPILE-FILE-ERROR]
Run Code Online (Sandbox Code Playgroud)
在 Ubuntu 上:我没有看到该错误,并且 …