(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*)
(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)