无法让AllegroServe / Ironclad工作

时间:2017-06-17 13:24:41

标签: common-lisp sbcl

(ql:quickload "aserve")失败

我正在尝试安装AllegroServe。根据{{​​3}}和http://quickdocs.org/portableaserve/,获取 aserve 的最简单方法是使用quicklisp:(ql:quickload "aserve")

(ql:quickload "aserve")未能在调试器缓冲区中产生以下错误:

COMPILE-FILE-ERROR while compiling
   #<IRONCLAD-SOURCE-FILE "ironclad" "src" "digests" "digest">
   [Condition of type UIOP/LISP-BUILD:COMPILE-FILE-ERROR]

然而在REPL中它说:

; Loading "aserve"
; caught ERROR: READ error during COMPILE-FILE: Symbol "BIGNUM-TYPE"
;   not found in the SB-BIGNUM package.  Line: 53, Column: 52,
;   File-Position: 2151 Stream: #<SB-INT:FORM-TRACKING-STREAM for
;   "file
;   C:\\Users\\user\\AppData\\Roaming\\quicklisp\\dists\\quicklisp\\software\\ironclad_0.33.0\\src\\digests\\digest.lisp"
;   {25AFCD91}>


到目前为止我尝试了什么

显然铁定是另一个包,一个用纯Common Lisp编写的“加密工具包”。我从this SO thread下载了ironclad-v0.34,甚至在铁盒文件夹中找到了digest.lispdigests.lisp,这让我觉得我在正确的轨道上。

我的问题是我不知道从哪里开始。如何以及在何处“安装”铁定

Quickdocs说

  

[ironclad]附带ASDF系统定义,因此(asdf:oos 'asdf:load-op :ironclad)应该是您开始所需的全部内容。测试套件   可以通过在表单中​​用asdf:test-op替换asdf:load-op来运行   上方。

但由于我不熟悉asdf,我不知道该怎么做。

我是否走在正确的轨道上?是否正确安装铁定包以使错误COMPILE-FILE-ERROR while compiling #<IRONCLAD-SOURCE-FILE "ironclad" "src" "digests" "digest">消失?如果是这样,我该怎么处理ironclad-v0.34文件夹?

(我在Windows 10机器上使用sbcl。)

1 个答案:

答案 0 :(得分:1)

感谢@jkiiski带领我走正确的道路,我能够安装 aserve 。问题确实是 ironclad 的旧版本,正如@jkiiski指出的那样,它正在使用已从SBCL中删除的SB-BIGNUM:BIGNUM-TYPE

然而,我更新 ironclad 的方式可能是 NOT (!)一个好方法,因为我手动完成了所有操作(容易出错)。

不知道quicklisp究竟是如何工作的我搜索了ironclad-0.33.0的每一次出现并用ironclad-v0.34替换它,这意味着替换

  • 使用 ... / dists / quicklisp / software / ironclad-v0.34
  • ... / dists / quicklisp / archives / 中的 irconcladd-0.33.0 tgz ironclad-v0.34.tgz
  • 使用 ... / dists / quicklisp / installed / releases / ironclad.txt 中的条目 dists / quicklisp / software / ironclad-0.33.0 / > dists中/ quicklisp /软件/铁定-v0.34 /
  • 我还在 ... / dists / quicklisp / installed / systems / <更新了 ironclad.txt ironclad-text.txt / LI>

嗯,它有效,但我只是这样做,因为我不知道更好(但我相信必须有更好的方法)。