1.0.27.31 introduced an actual check that the path for all source
files is correctly externalized as an LPN at cold-init time. Due to a
longstanding bug in MAKE-FILE-INFO-NAMESTRING, not fixed with
1.0.27.31, it is possible for the system to create a pathname such as
"SYS:SRC;LISP;SBCL;SBCL-GIT;OUTPUT;STUFF-GROVELED-FROM-HEADERS.LISP".
Once the SYS: logical pathname translations are set up, this path is
not valid, causing a build failure. Fixed, at the cost of disallowing
paths in SYS:SRC that have a final directory of OUTPUT, not likely to
be an issue in practice.
(let ((src (position "src" dir :test #'string=
:from-end t)))
(cond
- (src (format nil "SYS:~{~:@(~A~);~}~:@(~A~).LISP"
- (subseq dir src) (pathname-name untruename)))
+ ((and src (not (string= (car (last dir)) "output")))
+ (format nil "SYS:~{~:@(~A~);~}~:@(~A~).LISP"
+ (subseq dir src) (pathname-name untruename)))
(t (aver (string-equal (car (last dir)) "output"))
(aver (string-equal (pathname-name untruename) "stuff-groveled-from-headers"))
(aver (string-equal (pathname-type untruename) "lisp"))
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.27.45"
+"1.0.27.46"