我在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