Commit c5f9f5a7 authored by Francois-Rene Rideau's avatar Francois-Rene Rideau

Merge branch 'master' into minimakefile

parents 6f24c2cb fe23060b
...@@ -230,8 +230,8 @@ children."))) ...@@ -230,8 +230,8 @@ children.")))
(defmethod component-relative-pathname ((component component)) (defmethod component-relative-pathname ((component component))
;; SOURCE-FILE-TYPE below is strictly for backward-compatibility with ASDF1. ;; SOURCE-FILE-TYPE below is strictly for backward-compatibility with ASDF1.
;; We ought to be able to extract this from the component alone with COMPONENT-TYPE. ;; We ought to be able to extract this from the component alone with FILE-TYPE.
;; TODO: track who uses it, and have them not use it anymore; ;; TODO: track who uses it in Quicklisp, and have them not use it anymore;
;; maybe issue a WARNING (then eventually CERROR) if the two methods diverge? ;; maybe issue a WARNING (then eventually CERROR) if the two methods diverge?
(parse-unix-namestring (parse-unix-namestring
(or (and (slot-boundp component 'relative-pathname) (or (and (slot-boundp component 'relative-pathname)
......
(uiop:define-package :detect-multiply-used-files (uiop:define-package :detect-multiply-used-files
(:nicknames :asdf/contrib/detect-multiply-used-files)
(:use :asdf :uiop :common-lisp) (:use :asdf :uiop :common-lisp)
(:export #:find-fishy-components #:register-component-files #:*file-components*)) (:export #:find-fishy-components #:register-component-files #:*file-components*))
......
...@@ -32,6 +32,7 @@ asdf.pdf: asdf.texinfo version.texinfo ...@@ -32,6 +32,7 @@ asdf.pdf: asdf.texinfo version.texinfo
website: all website: all
rsync -lt --no-g ${webfiles} ${website} rsync -lt --no-g ${webfiles} ${website}
rsync --recursive --no-g --delete asdf ${website}
rsync -lt --no-g ../debian/changelog ${website}/changelog rsync -lt --no-g ../debian/changelog ${website}/changelog
.PHONY: clean intermediate-clean manual-html .PHONY: clean intermediate-clean manual-html
......
...@@ -24,8 +24,8 @@ ...@@ -24,8 +24,8 @@
(setf dir (normalize-pathname-directory-component dir)) (setf dir (normalize-pathname-directory-component dir))
(loop (loop
:with head = (progn :with head = (progn
(unless (and (consp dir) (cdr dir)) (return dir)) (unless (and (consp dir) (cdr dir)) (return dir))
(subseq dir 0 1)) (subseq dir 0 1))
:with tail = (rest dir) :with tail = (rest dir)
:for (next rest) :on tail :do :for (next rest) :on tail :do
(unless (equal next ".") (unless (equal next ".")
...@@ -63,10 +63,12 @@ ...@@ -63,10 +63,12 @@
(assert-pathname-equal true dir) (assert-pathname-equal true dir)
(setf true dir))) (setf true dir)))
(assert-pathname-equal true (truename (ensure-directory-pathname file))) (assert-pathname-equal true (truename (ensure-directory-pathname file)))
(assert-pathname-equal true (nest #+(and clisp windows) (ensure-directory-pathname) (assert-pathname-equal true (nest #+(and clisp os-windows) (ensure-directory-pathname)
(truename* file)) (truename* file)))
(assert-pathname-equal true (nest #+(or allegro (and clisp windows)) (ensure-directory-pathname) (assert-pathname-equal true
(probe-file* file :truename t))) (let ((path (probe-file* file :truename t)))
#+(or allegro (and clisp os-windows)) (ensure-directory-pathname path)
#-(or allegro (and clisp os-windows)) path))
(assert-pathname-equal true (if-let (x (probe-file* file)) (assert-pathname-equal true (if-let (x (probe-file* file))
(ensure-absolute-pathname (ensure-directory-pathname x) 'get-pathname-defaults)))) (ensure-absolute-pathname (ensure-directory-pathname x) 'get-pathname-defaults))))
(check-directory-doesnt-exist (file) (check-directory-doesnt-exist (file)
...@@ -99,7 +101,7 @@ ...@@ -99,7 +101,7 @@
(check-true-dpd-test)) (check-true-dpd-test))
#-(or abcl genera xcl ;; on these platforms, chdir changes D-P-D so these tests are not meaningful #-(or abcl genera xcl ;; on these platforms, chdir changes D-P-D so these tests are not meaningful
(and sbcl os-windows)) ;; SBCL on Windows really hates a relative D-P-D. (and sbcl os-windows)) ;; SBCL on Windows really hates a relative D-P-D.
(progn (progn
;; SBCL hates to get (truename #p"") when D-P-D is itself #p"". See https://bugs.launchpad.net/sbcl/+bug/1472414 ;; SBCL hates to get (truename #p"") when D-P-D is itself #p"". See https://bugs.launchpad.net/sbcl/+bug/1472414
(DBG "4" (DBG "4"
...@@ -113,7 +115,7 @@ ...@@ -113,7 +115,7 @@
;; On implementations where chdir doesn't side-effect D-P-D, we can have D-P-D be relative to GETCWD... ;; On implementations where chdir doesn't side-effect D-P-D, we can have D-P-D be relative to GETCWD...
;; except on allegro, that hates this trick. ;; except on allegro, that hates this trick.
(with-expected-failure (#+(or allegro gcl) t) (with-expected-failure (#+(or allegro gcl (and clisp os-windows)) t)
(unless (absolute-pathname-p *default-pathname-defaults*) (unless (absolute-pathname-p *default-pathname-defaults*)
(DBG "6" (DBG "6"
(chdir asdf-directory) (chdir asdf-directory)
......
...@@ -69,6 +69,8 @@ a CL pathname satisfying all the specified constraints as per ENSURE-PATHNAME" ...@@ -69,6 +69,8 @@ a CL pathname satisfying all the specified constraints as per ENSURE-PATHNAME"
(when (stringp p) (setf p (with-pathname-defaults () (parse-namestring p)))) (when (stringp p) (setf p (with-pathname-defaults () (parse-namestring p))))
(values (values
(or (ignore-errors (truename p)) (or (ignore-errors (truename p))
;; this is here because trying to find the truename of a directory pathname WITHOUT supplying
;; a trailing directory separator, causes an error on some lisps.
#+(or clisp gcl) (if-let (d (ensure-directory-pathname p)) (ignore-errors (truename d))))))) #+(or clisp gcl) (if-let (d (ensure-directory-pathname p)) (ignore-errors (truename d)))))))
(defun safe-file-write-date (pathname) (defun safe-file-write-date (pathname)
......
...@@ -207,7 +207,9 @@ when merging, making or parsing pathnames") ...@@ -207,7 +207,9 @@ when merging, making or parsing pathnames")
where leaving the defaults NIL or unspecified means a (NIL-PATHNAME), except where leaving the defaults NIL or unspecified means a (NIL-PATHNAME), except
on ABCL, Genera and XCL, where it remains unchanged for it doubles as current-directory." on ABCL, Genera and XCL, where it remains unchanged for it doubles as current-directory."
`(let ((*default-pathname-defaults* `(let ((*default-pathname-defaults*
,(or defaults #-(or abcl genera xcl) '*nil-pathname* #+(or abcl genera) '*default-pathname-defaults*))) ,(or defaults
#-(or abcl genera xcl) '*nil-pathname*
#+(or abcl genera xcl) '*default-pathname-defaults*)))
,@body))) ,@body)))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment