1
votes

(ql:quickload "aserve") fails

I'm trying to install AllegroServe. According to http://quickdocs.org/portableaserve/ and to this SO thread the simplest way to get aserve would be to get it with quicklisp: (ql:quickload "aserve")

But (ql:quickload "aserve") fails yielding the following error in the debugger buffer:

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

Whereas in the REPL it says:

; 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}>


What I've tried so far

Apparently ironclad is another package, a "cryptographic toolkit written in pure Common Lisp". I downloaded ironclad-v0.34 from http://quickdocs.org/ironclad/ and even found digest.lisp and digests.lisp in the ironclad folder which made me think that I am on the right track.

My problem is I don't no where to go from here. How and where do I "install" ironclad?

Quickdocs says

[ironclad] comes with an ASDF system definition, so (asdf:oos 'asdf:load-op :ironclad) should be all that you need to get started. The testsuite can be run by substituting asdf:test-op for asdf:load-op in the form above.

but since I'm not familiar with asdf I don't know what to make of it.

Am I even on the right track? Is installing the ironclad package the right way to make the error COMPILE-FILE-ERROR while compiling #<IRONCLAD-SOURCE-FILE "ironclad" "src" "digests" "digest">go away? If so what do I do with the ironclad-v0.34 folder?

(I'm using sbcl on a windows 10 machine.)

1
There's probably some more output regarding the error wherever ql is printing to (such as the repl-buffer in Emacs).jkiiski
I added the repl output regarding the error.Frank
Seems like the error is caused by Ironclad using SB-BIGNUM:BIGNUM-TYPE, which was removed from SBCL. This appears to be fixed, so installing the latest version should work. See if putting the newest version to your quicklisp/local-projects/ directory and doing (ql:register-local-projects) helps.jkiiski

1 Answers

1
votes

Thanks to @jkiiski leading me down the right path I was able to install aserve. The problem was indeed an old version of ironclad which, as @jkiiski pointed out, was using SB-BIGNUM:BIGNUM-TYPE which had been removed from SBCL.

However, the way I updated ironclad is probably NOT(!) a good way because I did it all manually (error prone).

Not knowing how quicklisp works exactly I searched for every occurence of ironclad-0.33.0 and replaced it with ironclad-v0.34, which meant replacing

  • the .../dists/quicklisp/software/ironclad-0.33.0 folder with .../dists/quicklisp/software/ironclad-v0.34
  • the irconcladd-0.33.0 tgz in .../dists/quicklisp/archives/ with ironclad-v0.34.tgz
  • the entry dists/quicklisp/software/ironclad-0.33.0/ in .../dists/quicklisp/installed/releases/ironclad.txt with dists/quicklisp/software/ironclad-v0.34/.
  • I also updated ironclad.txt and ironclad-text.txt in .../dists/quicklisp/installed/systems/

Well, it worked, but I only did it this way because I don't know any better (but am sure there has to be a better way).