Hello,
Hunchentoot 0.15.7 fails to compile under CLISP 2.44 (GNU/Linux), with this message[1].
In port-clisp.lisp, there is a call to SYS::FRAME-UP-1. As of CLISP 2.44, this is an unavailable function name. It was replaced[2] by (SYS::FRAME-UP 1 ...).
This issue has been addressed[3] in more recent swank-clisp.lisp versions. Below[4] is a patch adapted from there. It adds a symbol to *features* depending on CLISP's version, upon which it conditionally calls the right frame-up function.
Cheers, Abhishek.
[1] ;; Compiling file /home/abhishek/.clc/site/hunchentoot-0.15.7/port-clisp.lisp ... ** - Continuable Error INTERN("FRAME-UP-1"): #<PACKAGE SYSTEM> is locked If you continue (by typing 'continue'): Ignore the lock and proceed The following restarts are also available: RETRY :R1 Retry performing #<ASDF:COMPILE-OP NIL #x204E54BE> on #<ASDF:CL-SOURCE-FILE "port-clisp" #x204DC7EE>. ACCEPT :R2 Continue, treating #<ASDF:COMPILE-OP NIL #x204E54BE> on #<ASDF:CL-SOURCE-FILE "port-clisp" #x204DC7EE> as having been successful. ABORT :R3 Abort main loop
[2] http://clisp.cvs.sourceforge.net/viewvc/clisp/clisp/src/ChangeLog?r1=1.5922&...
[3] http://github.com/pat-maddox/slime/commit/0ad4624b6f1d5c6bcfc773dcb2452dd4fe...
[4] diff -u port-clisp.lisp port-clisp.lisp.new --- port-clisp.lisp 2008-10-17 08:13:11.000000000 +1300 +++ port-clisp.lisp.new 2008-10-17 07:13:58.000000000 +1300 @@ -109,13 +109,19 @@ is a function frame." (char= #< (aref formatted-frame 0)))
+(eval-when (:compile-toplevel :load-toplevel :execute) + (when (string< "2.44" (lisp-implementation-version)) + (pushnew :clisp-2.44+ *features*))) + (defun get-backtrace (error) "This is the function that is used internally by Hunchentoot to show or log backtraces." (declare (ignore error)) (with-output-to-string (stream) (do ((last nil frame) - (frame (sys::the-frame) (sys::frame-up-1 frame 1))) + (frame (sys::the-frame) + #+clisp-2.44+ (sys::frame-up 1 frame 1) + #-clisp-2.44+ (sys::frame-up-1 frame 1))) ((eq frame last)) (let ((formatted-frame (format-frame frame))) (when (function-frame-p formatted-frame)