我在OSX(macOS High Sierra)上运行LispWorks 7.1。我有时会遇到Quicklisp加载错误(我之所以说是有时是因为重新启动LispWorks时,有时我不会再看到此错误)。

例:

CL-USER 1 > (ql:quickload "iterate")
To load "iterate":
  Load 1 ASDF system:
    asdf
  Install 1 Quicklisp release:
    iterate

Error: Error detected during deflate decompression: Corrupted Data detected during decompression: Incorrect huffman code (1E55) in huffman decode!
  1 (abort) Give up on "iterate"
  2 Return to top loop level 0.

Type :b for backtrace or :c <option number> to proceed.
Type :bug-form "<subject>" for a bug report template or :? for other options.


知道发生了什么吗?

我已验证我最近有一个客户:

CL-USER 6 > (ql:update-client)
The most up-to-date client, version 2017-03-06, is already installed.
T


另外,回溯可以帮助:

CL-USER 12 : 1 > :b
Call to ERROR
Call to QL-GUNZIPPER::DECODE-HUFFMAN-BLOCK
Call to QL-GUNZIPPER::DECODE-BLOCK
Call to QL-GUNZIPPER::INFLATE-STREAM
Call to QL-GUNZIPPER::INFLATE-GZIP-STREAM
Call to QL-GUNZIPPER:GUNZIP
Call to (METHOD QL-DIST:INSTALL (QL-DIST:RELEASE))
Call to (METHOD QL-DIST:ENSURE-INSTALLED (T))
Call to MAP
Call to QUICKLISP-CLIENT::APPLY-LOAD-STRATEGY
Call to QUICKLISP-CLIENT::AUTOLOAD-SYSTEM-AND-DEPENDENCIES
Call to (METHOD QUICKLISP-CLIENT:QUICKLOAD (T))
Call to CLOS::NEXT-METHOD-CALL-2
Call to QL-DIST::CALL-WITH-CONSISTENT-DISTS
Call to CLOS::GENERIC-FUNCTION-NON-DISCRIMINATOR
Call to LET
Call to EVAL
Call to CAPI::CAPI-TOP-LEVEL-FUNCTION
Call to CAPI::INTERACTIVE-PANE-TOP-LOOP
Call to MP::PROCESS-SG-FUNCTION

最佳答案

正如Rainer Joswig指出的那样,我只需要(duh!)应用最新的补丁程序。

为了将来参考,这涉及


下载here中列出的补丁
将它们复制到相应的private-patches目录(例如,对我来说/Applications/LispWorks\ 7.1\ \(64-bit\)/Library/lib/7-1-0-0/private-patches
相应地修改目录中的load.lisp(在这种情况下,添加(load-one-private-patch "lisp-memory-copy-32-chunks" :system64)
(load-one-private-patch "replace-i-vectors" :system)
重新启动Lispworks

09-20 03:19