Commit 08095fe1 authored by Francois-Rene Rideau's avatar Francois-Rene Rideau

uiop: gut the last wrapping in make-pathname*

I initially introduced all that make-pathname* madness on the road to
ASDF 2.27, back when I was trying to normalize pathname components so
I may have pathname-indexed entries in the asdf-cache (to minimize
costly filesystem access from file-write-date and such, that could
also introduce inconsistency in the build plan).

Problem is, there was no good way (even non-portable) to normalize
pathnames in a way that works when you use all of parse-namestring,
make-pathname, directory, probe-file, translate-logical-pathname,
merge-pathnames, etc. In the end (as late as b4dc78de, before 3.0.2.13!),
I conceded defeat, for it was an uphill battle, and instead asdf-cache
is indexing things using namestrings instead, which is more stable (see
asdf/cache:normalize-namestring).

The hacks in make-pathname* are therefore not needed anymore,
and the function can be done away with.

This commit guts the contents of make-pathname* and marks it deprecated.
Just use make-pathname instead. It also updates uiop and asdf to not
use make-pathname* but make-pathname. Some future commits may move it to
backward-driver and eventually start issuing warnings of some sort when
it's used.
parent 8315d238
......@@ -55,7 +55,7 @@ system names to pathnames of .asd files")
(register-clear-configuration-hook 'clear-source-registry)
(defparameter *wild-asd*
(make-pathname* :directory nil :name *wild* :type "asd" :version :newest))
(make-pathname :directory nil :name *wild* :type "asd" :version :newest))
(defun directory-asd-files (directory)
(directory-files directory *wild-asd*))
......
......@@ -199,7 +199,7 @@ directive.")
;; but what it means to the output-translations is
;; "relative to the root of the source pathname's host and device".
(return-from resolve-absolute-location
(let ((p (make-pathname* :directory '(:relative))))
(let ((p (make-pathname :directory '(:relative))))
(if wilden (wilden p) p))))
((eql :home) (user-homedir-pathname))
((eql :here) (resolve-absolute-location
......
......@@ -297,13 +297,13 @@ The behavior in presence of symlinks is not portable. Use IOlib to handle such s
(loop :while up-components :do
(if-let (parent
(ignore-errors
(probe-file* (make-pathname* :directory `(:absolute ,@(reverse up-components))
:name nil :type nil :version nil :defaults p))))
(probe-file* (make-pathname :directory `(:absolute ,@(reverse up-components))
:name nil :type nil :version nil :defaults p))))
(if-let (simplified
(ignore-errors
(merge-pathnames*
(make-pathname* :directory `(:relative ,@down-components)
:defaults p)
(make-pathname :directory `(:relative ,@down-components)
:defaults p)
(ensure-directory-pathname parent))))
(return simplified)))
(push (pop up-components) down-components)
......
This diff is collapsed.
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