问题标签 [quicklisp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
clisp - Why does quicklisp need "root" privilege?
The root user can install quicklisp successfully. Howvever the ordinary user cannot.
I do not know why. Could anyone here shed a light on me?
hunchentoot - 安装“hunchentoot”错误?
我想在我的freebsd盒子上安装hunchentoot,但是quicklisp报错:
* - 标题缺少魔法值 1F、8B(改为 3C、21)!以下重启可用: ABORT :R1 放弃“hunchentoot”
中止中断 1 [2]> :i
: 标准对象
类型:QL-GUNZIPPER::GZIP-DECOMPRESSION-ERROR 0 [$FORMAT-CONTROL]:“标头缺少魔法值 ~2,'0X,~2,'0X (得到 ~2,'0X,~2,'0X )!” 1 [$FORMAT-ARGUMENTS]: (31 139 60 33) :R2 在此处中止主循环输入代码
如何解决?谢谢!
common-lisp - 如何删除使用 quicklisp quickproject 创建的系统?
我在目录“~/projects/{name}/”中使用 quickproject:make-project 创建了一个项目。
我对结果不满意并想重新开始,所以我将目录重命名为“~/projects/{name}-old/”,并在初始目录中使用 quickproject:make-project 创建了一个新项目“~ /projects/{name}/"。
如果我尝试使用 ql:quickload 加载我的项目,quicklisp 会尝试加载旧项目。
如何删除旧系统,同时将旧项目文件保留在原处?
我应该怎么做,而不是在步骤 2 中重命名目录。?
shell - 当 CL 程序作为 shell 脚本调用时如何使用 quicklisp?
我目前在 Common Lisp 中有一个小程序,我想将其作为 shell 脚本运行。我正在使用 SBCL 并且对此非常好,所以我更愿意留在这个平台上。:)
我知道这个--script
选项,它除了(ql:quickload)
形式外完美无缺。
我的程序使用CL-FAD,它通过加载ql:quickload
(我想我应该提到它是来自quicklisp的包加载功能)。当脚本运行到评估
表单,它会因下一个错误而中断:
程序打包在单个源文件中,该文件具有以下标头:
它是简单的自动化可执行文件,所以我决定(可能是错误地)不编写任何 ASDF 系统。它导出应该在没有任何参数的情况下运行的单个函数。
对于这个程序,我目前正在尝试编写启动器脚本,这就是我所关注的:
这三行(不包括shebang)是我想要自动化的。正如我在文档中所读到的,带有这个 shebang 的脚本可以被称为 simple ./script.lisp
,它确实可以做到这一点......之前描述的错误。
我需要在启动器中添加什么:cl-fad
才能正确加载?文档说明使用--script
选项 SBCL 不会加载任何初始化文件,所以我真的需要复制粘贴这些行
(ql:add-to-init-file
添加到 .sbclrc)到我的启动器脚本?也许我的程序设置中有一些深刻的架构缺陷?
是的,当我输入我尝试在 sbcl 本身的 REPL 中自动化的行时,程序按预期运行。
lisp - Quicklisp QUICKLOAD 应该放在我的源代码中的什么位置?无处?
假设我在net.aserve
and之上构建了一个应用程序bordeaux-threads
。我的包声明可能如下所示:
我使用 Quicklisp,所以(ql:quickload "aserve") (ql:quickload "bordeaux-threads")
在编译我的包之前我在 SLIME 中运行,一切都很好。
当然,明天我再次启动 SLIME,我必须记得QUICKLOAD
在编译之前发出 s,否则我有麻烦了。
我可以把类似的东西
在我的包的顶部——这是我为开发所做的——但我觉得将包管理器强加给用户并不是一个好主意。
有更好的选择吗?
lisp - 使用 asdf:defsystem 和 quickproject 定义包的正确方法
我是一名 Lisp 初学者,试图了解如何正确使用 Lisp 包系统,同时学习 LTK 进行 GUI 编程,使用 SBCL 1.0.55.0.debian 和 Limp 0.3.4(如果重要的话,还有 Debian Wheezy)。我已经使用 aptitude 包管理器(包 cl-asdf 和 cl-common-lisp-controller)安装了 ASDF,然后我使用 Quicklisp 网站(http://www.quicklisp.org/beta/index.html)上的说明安装了 Quicklisp (不是来自 Debian 存储库),然后我(ql:quickload 'ltk)
在 SBCL 控制台中安装了 LTK 。
hello-1.lisp(直接来自 LTK 教程):
如果我在一个新的 SBCL Lisp 映像中直接编译它,我会收到消息,WITH-LTK
并且PACK
是未定义的函数并且'BUTTON
是未定义的变量。
所以,我发现我需要先加载'ltk
然后使用in-package
.I 才能运行它,我首先必须在 SBCL 控制台中使用(ql:quickload 'ltk)
和。但是,我仍然有一个未定义变量(in-package :ltk)
的错误消息。'BUTTON
然后,由于这没有达到我想要的效果,我还尝试根据另一个问题(ltk (common lisp)的问题),Xach 的博客文章“使用 quickproject 制作一个小型 Lisp 项目”的答案来定义我自己的包定义和 Quicklisp” http://xach.livejournal.com/278047.html?thread=674335和 ASDF 手册 ( http://common-lisp.net/project/asdf/asdf/The-defsystem-form.html ) 使用quickproject:make-project
,但没有成功。目前我有以下文件:
(ql:quickload 'ltk)
package.lisp (如果我第一个SBCL REPL编译干净):
hello-world-ltk.asd(在我第一次编译 package.lisp 后编译干净):
hello-world-ltk.lisp(我得到编译错误The name "HELLO-WORLD-LTK" does not designate any package
)。
当我在成功编译 package.lisp 和 hello-world-ltk.asd (它们都位于同一目录中)后尝试编译这个 hello-world-ltk.lisp 时,我收到以下错误:
所以,我对定义包的所有不同方法感到很迷茫,ASDF、Quicklisp、package.lisp、、、和quickproject
......看起来很有希望,但我真的不知道我的源文件还有什么问题。我正在寻找一种解决方案,它应该在一个命令中优先处理整个项目的所有编译和包加载,并且应该可以扩展用于更大的项目。asdf:defsystem
require
ql:quickload
quickproject:make-project
感谢您的任何帮助 :)
lisp - 在 Windows 7 上使用 clisp 的 quicklisp 问题
我在 Windows 7 上安装了 quicklisp/slime/clisp。当我使用 启动 slime 时M-x slime
,我收到了这个错误消息。
我可以输入“继续”来启动 clisp/slime,但是每当我启动 slime 时都会弹出此消息。这有什么问题?我怎样才能解决这个问题?
lisp - Windows 7 上的 LispWorks 不会加载 Quicklisp
我正在使用 LispWorks 个人版,并且只能通过加载文件而不是通过初始化文件来加载 Quicklisp,.lispworks
LispWorks 应该在我的主目录中找到C:\Users\Me\
。我是否将初始化文件放在错误的目录中?还是有其他问题?
lisp - 将 ql:system-apropos 返回的包名称存储到变量中
我正在尝试使用 将 的输出保存(ql:system-apropos "regex")
到变量中multiple-value-bind
,但我只有nil
. 但是,该命令似乎只将文本打印到 REPL 并且不返回任何变量,因此似乎不起作用。在那种情况下,有没有办法将输出ql:system-apropos
作为列表或数组,特别是它返回的包名称。
此基本multiple-value-bind
代码有效:
但这没有(如果没有什么可以绑定的multiple-value-bind
?):
所以似乎ql:system-apropos
只能通过使用format
或其他一些打印命令在屏幕上打印文本?
这样做的目的是通过使用一些字符串处理命令(可能是一些正则表达式)来提取输出的包名称,并自动安装或重新安装返回的所有包ql:system-apropos
,例如:
使用部分名称或某些正则表达式作为输入来获取quicklisp
包名称的任何其他方式也是一个可行的解决方案(即使获取当前完整的包列表也会很有用)。有没有可行的解决方案来做到这一点?
functional-programming - 如何通过 QuickLisp 将安装包安装到 SBCL 的系统目录中?
我使用 quicklisp 作为 SBCL 的包管理工具。
但是,有时我发现通过ql:quickload
. (比如我(ql:quickload "xmls")
用来安装xmls,其他用户就不能用了。)
更糟糕的是,我想将 lisp 代码作为脚本运行。所以我在使用quicklisp安装的包的时候,很不爽的需要加上那个包的绝对路径,比如:
如果我使用,编译器将无法工作,因为如果我使用这些选项(require 'xmls)
,它将找不到该包。--script
有谁知道如何解决这个问题,以便我可以同时使用--script
和require
(无需添加绝对路径)?