stumpwm-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [STUMP] Compiling with new SBCL's


From: Dirk Sondermann
Subject: Re: [STUMP] Compiling with new SBCL's
Date: Sun, 14 Jun 2009 13:09:07 +0200
User-agent: Thunderbird 2.0.0.21 (X11/20090501)

Hi,

After the latest patch, pathname-is-executable-p is no longer a simple
function in the sense of SBCL, but has become a closure. Therefore,
sb-impl::%simple-fun-arglist fails at extracting the arglist and
yields a value that isn't even a list.

This problem can be avoided by replacing sb-impl::%simple-fun-arglist
in manual.lisp by sb-introspect:function-arglist which can deal with
all kinds of functions (see the attached patch).

Regards,
Dirk

diff --git a/manual.lisp b/manual.lisp
index f3c5f06..422ffde 100644
--- a/manual.lisp
+++ b/manual.lisp
@@ -26,6 +26,8 @@
 
 (in-package :stumpwm)
 
+(require :sb-introspect)
+
 ;; handy for figuring out which symbol is borking the documentation
 (defun dprint (sym)
   (declare (ignorable sym))
@@ -44,7 +46,7 @@
                                     (*print-pretty* nil))
                                 (format s "@defun {~a} ~{~a~^ ~}~%~a~&@end 
defun~%~%"
                                         name
-                                        #+sbcl (sb-impl::%simple-fun-arglist 
fn)
+                                        #+sbcl (sb-introspect:function-arglist 
fn)
                                         #+clisp (ext:arglist fn)
                                         #- (or sbcl clisp) '("(Check the code 
for args list)")
                                         (documentation fn 'function))
@@ -57,7 +59,7 @@
                                      (*print-pretty* nil))
                                 (format s "@defmac {~a} ~{~a~^ ~}~%~a~&@end 
defmac~%~%"
                                         name
-                                        #+sbcl (sb-impl::%simple-fun-arglist 
(macro-function symbol))
+                                        #+sbcl (sb-introspect:function-arglist 
(macro-function symbol))
                                         #+clisp (ext:arglist symbol)
                                         #- (or sbcl clisp) '("(Check the code 
for args list)")
                                         ;;; FIXME: when clisp compiles
@@ -94,7 +96,7 @@
                               (let ((cmd (symbol-function (find-symbol 
(string-upcase name) :stumpwm))))
                                 (format s "@deffn {Command} ~a ~{~a~^ 
~}~%~a~&@end deffn~%~%"
                                         name
-                                        #+sbcl (sb-impl::%simple-fun-arglist 
cmd)
+                                        #+sbcl (sb-introspect:function-arglist 
cmd)
                                         #+clisp (ext:arglist cmd)
                                         #- (or sbcl clisp) '("(Check the code 
for args list)")
                                         (documentation cmd 'function))

reply via email to

[Prev in Thread] Current Thread [Next in Thread]