[hunchentoot-devel] Broken port-clisp.lisp under CLISP 2.44 [patch]
Abhishek Reddy
arbscht at gmail.com
Thu Oct 16 19:14:21 UTC 2008
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&r2=1.5921
[3] http://github.com/pat-maddox/slime/commit/0ad4624b6f1d5c6bcfc773dcb2452dd4fe2d4f43
[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)
More information about the Tbnl-devel
mailing list