Commit dbfc00dc authored by Mark's avatar Mark
Browse files

asdf: fix PARSE-UNIX-NAMESTRING in presence of JAR-PATHNAME device

Under ABCL, when loading system definitions from a JAR-PATHNAME, the
PARSE-UNIX-NAMESTRING was including the DEVICE in the defaults to
MAKE-PATHNAME.  This was mostly harmless but fails when the as yet
unreleased abcl-1.8.1 tightened the definition of JAR-PATHNAME to
always have an absolute directory.

TODO: ensure that this works correctly in the presence of logical
pathnames, and under Windows where the device may contain the logical
drive letter or the UNC path.
parent 5aa405f6
;;; -*- mode: Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp ; buffer-read-only: t; -*-
;;; This is ASDF 3.3.4: Another System Definition Facility.
;;; This is ASDF 3.3.4.0.1: Another System Definition Facility.
;;;
;;; Feedback, bug reports, and patches are all welcome:
;;; please mail to <asdf-devel@common-lisp.net>.
......@@ -1697,7 +1697,7 @@ form suitable for testing with #+."
(in-package :uiop/version)
 
(with-upgradability ()
(defparameter *uiop-version* "3.3.4")
(defparameter *uiop-version* "3.3.4.0.1")
 
(defun unparse-version (version-list)
"From a parsed version (a list of natural numbers), compute the version string"
......@@ -2724,6 +2724,8 @@ with those keys, removing TYPE DEFAULTS and DOT-DOT.
When you're manipulating pathnames that are supposed to make sense portably
even though the OS may not be Unixish, we recommend you use :WANT-RELATIVE T
to throw an error if the pathname is absolute"
#+(or abcl mcl)
(declare (ignore defaults))
(block nil
(check-type type (or null string (eql :directory)))
(when ensure-directory
......@@ -2748,7 +2750,7 @@ to throw an error if the pathname is absolute"
(make-pathname
:directory (unless file-only (cons relative path))
:name name :type type
:defaults (or #-mcl defaults *nil-pathname*))
:defaults (or #-(or abcl mcl) defaults *nil-pathname*))
(remove-plist-keys '(:type :dot-dot :defaults) keys))))))
 
(defun unix-namestring (pathname)
......@@ -7628,7 +7630,7 @@ previously-loaded version of ASDF."
;; "3.4.5.67" would be a development version in the official branch, on top of 3.4.5.
;; "3.4.5.0.8" would be your eighth local modification of official release 3.4.5
;; "3.4.5.67.8" would be your eighth local modification of development version 3.4.5.67
(asdf-version "3.3.4")
(asdf-version "3.3.4.0.1")
(existing-version (asdf-version)))
(setf *asdf-version* asdf-version)
(when (and existing-version (not (equal asdf-version existing-version)))
......
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