(let* ((asdf::*verbose-out* nil)
(exit-code
(asdf:run-shell-command
- "~A ~A ~:[~;--print-errors ~]~{~A ~} &>~A"
+ "~A ~A ~:[~;--print-errors ~]~{~A ~} >~A 2>&1"
*pkg-config* package error-p options outname)))
(cond
((= exit-code 127) (error "Unable to run ~A" *pkg-config*))
(defun |#?-reader| (stream subchar arg)
(declare (ignore subchar arg))
- (let ((not-p (when (char= (peek-char nil stream) #\-)
- (read-char stream)))
- (conditional (read stream t nil t)))
+ (let* ((not-p (when (char= (peek-char nil stream) #\-)
+ (read-char stream)))
+ (conditional (read stream t nil t)))
(cond
(*read-suppress* (read stream t nil t))
((not *read-eval*)
#+sbcl
(progn
(defun sbcl-version ()
- (let* ((dot1 (position #\. (lisp-implementation-version)))
- (dot2 (position #\. (lisp-implementation-version) :start (1+ dot1))))
- (values
- (parse-integer (lisp-implementation-version) :end dot1)
- (parse-integer (lisp-implementation-version) :start (1+ dot1) :end dot2)
- (if dot2
- (parse-integer (lisp-implementation-version) :start (1+ dot2) :junk-allowed t)
- 0))))
- (defun sbcl>= (req-major req-minor req-micro)
- (multiple-value-bind (major minor micro) (sbcl-version)
+ (values-list
+ (loop
+ repeat 4
+ 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)
+ (multiple-value-bind (%major %minor %micro %patch) (sbcl-version)
(or
- (> major req-major)
- (and (= major req-major) (> minor req-minor))
- (and (= major req-major) (= minor req-minor) (>= micro req-micro)))))
- (defun sbcl< (req-major req-minor req-micro)
- (not (sbcl>= req-major req-minor req-micro))))
+ (> %major major)
+ (and (= %major major) (> %minor minor))
+ (and (= %major major) (= %minor minor) (> %micro micro))
+ (and
+ (= %major major) (= %minor minor) (= %micro micro)
+ (>= (or %patch 0) (or patch 0))))))
+ (defun sbcl< (major minor micro &optional patch)
+ (not (sbcl>= major minor micro patch))))
#-sbcl
(progn
- (defun sbcl>= (req-major req-minor req-micro)
- (declare (ignore req-major req-minor req-micro))
+ (defun sbcl>= (major minor micro &optional patch)
+ (declare (ignore major minor micro patch))
nil)
- (defun sbcl< (req-major req-minor req-micro)
- (declare (ignore req-major req-minor req-micro))
+ (defun sbcl< (major minor micro &optional patch)
+ (declare (ignore major minor micro patch))
nil))
#+clisp