chiark / gitweb /
Add a boundp-function slot, which is required by virtual slot getter.
[clg] / tools / config.lisp
index c38b0347c07f1d717b85533c53f6e8c20f22788e..4b3341b08c20212d86afb8a6aee1e102aaca0f6f 100644 (file)
@@ -4,7 +4,7 @@ (defpackage #:pkg-config
   (:import-from #:sb-int #:featurep)
   (:export #:pkg-cflags #:pkg-libs #:pkg-exists-p #:pkg-version
            #:pkg-variable #:pkg-libdir #:tmpname)
-  (:export #:featurep #:sbcl>= #:sbcl< #:clisp>=))
+  (:export #:featurep #:sbcl>= #:sbcl< #:clisp>= #:clisp<))
 
 (in-package #:pkg-config)
 
@@ -147,7 +147,10 @@   (defun sbcl-version ()
     (values-list
      (loop
       repeat 4
-      for part in (split-string (lisp-implementation-version) :delimiter #\.)
+      ;; We use . and - as delimiters because some Linux
+      ;; distributions tend to patch SBCL and add a distro-specific
+      ;; version tag (like 1.0.19-gentoo).
+      for part in (split-string (lisp-implementation-version) :delimiter '(#\. #\-))
       while (every #'digit-char-p part)
       collect (parse-integer part))))
   (defun sbcl>= (major minor micro &optional patch)
@@ -182,9 +185,15 @@   (defun clisp>= (req-major req-minor)
     (multiple-value-bind (major minor) (clisp-version)      
       (or 
        (> major req-major)
-       (and (= major req-major) (> minor req-minor))))))
+       (and (= major req-major) (> minor req-minor)))))
+  (defun clisp< (req-major req-minor)
+    (not (clisp>= req-major req-minor))))
 
 #-clisp
-(defun clisp>= (req-major req-minor)
-  (declare (ignore req-major req-minor))
-  nil)
+(progn
+  (defun clisp>= (req-major req-minor)
+    (declare (ignore req-major req-minor))
+    nil)
+  (defun clisp< (req-major req-minor)
+    (declare (ignore req-major req-minor))
+    nil))