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

2.26.114: import the deferred warnings support from POIU to ASDF-DRIVER.

Still not used by ASDF itself.

Also, don't use compile-file-pathname after all, it's a bad idea,
since we may be loading a .asd from within an eval-when during a compile-file,
but we won't be compiling the .asd.
parent 500dbe23
......@@ -15,7 +15,7 @@
:licence "MIT"
:description "Another System Definition Facility"
:long-description "ASDF builds Common Lisp software organized into defined systems."
:version "2.26.113" ;; to be automatically updated by bin/bump-revision
:version "2.26.114" ;; to be automatically updated by bin/bump-revision
:depends-on ()
:components ((:module "build" :components ((:file "asdf"))))
:in-order-to (#+asdf2.27 (compile-op (monolithic-load-concatenated-source-op generate-asdf))))
......
......@@ -22,18 +22,20 @@
;; the pathname of a system as follows:
;; 1. if the pathname argument is an pathname object (NOT a namestring),
;; that is already an absolute pathname, return it.
;; 2. otherwise, the directory containing the CURRENT-LISP-FILE-PATHNAME
;; 2. otherwise, the directory containing the LOAD-PATHNAME
;; is considered (as deduced from e.g. *LOAD-PATHNAME*), and
;; if it is indeed available and an absolute pathname, then
;; the PATHNAME argument is normalized to a relative pathname
;; as per PARSE-UNIX-NAMESTRING (with ENSURE-DIRECTORY T)
;; and merged into that DIRECTORY as per SUBPATHNAME.
;; Note: avoid *COMPILE-FILE-PATHNAME* because .asd is loaded,
;; and may be from within the EVAL-WHEN of a file compilation.
;; If no absolute pathname was found, we return NIL.
(check-type pathname (or null string pathname))
(or (and (pathnamep pathname) (absolute-pathname-p pathname) (resolve-symlinks* pathname))
(let* ((lisp-file-pathname (resolve-symlinks* (current-lisp-file-pathname))))
(when (absolute-pathname-p lisp-file-pathname)
(subpathname lisp-file-pathname pathname :type :directory)))))
(let* ((load-pathname (resolve-symlinks* (load-pathname))))
(when (absolute-pathname-p load-pathname)
(subpathname load-pathname pathname :type :directory)))))
;;; Component class
......@@ -169,7 +171,7 @@
;; we also need to remember it in a special variable *systems-being-defined*.
(with-system-definitions ()
(let* ((name (coerce-name name))
(source-file (if sfp source-file (resolve-symlinks* (current-lisp-file-pathname))))
(source-file (if sfp source-file (resolve-symlinks* (load-pathname))))
(registered (system-registered-p name))
(registered! (if registered
(rplaca registered (safe-file-write-date source-file))
......
......@@ -133,10 +133,9 @@ called with an object of type asdf:system."
(cleanup-system-definition-search-functions)
(defun* search-for-system-definition (system)
(with-pathname-defaults ()
(some (let ((name (coerce-name system))) #'(lambda (x) (funcall x name)))
(cons 'find-system-if-being-defined
*system-definition-search-functions*))))
(some (let ((name (coerce-name system))) #'(lambda (x) (funcall x name)))
(cons 'find-system-if-being-defined
*system-definition-search-functions*)))
(defvar *central-registry* nil
"A list of 'system directory designators' ASDF uses to find systems.
......
;; -*- mode: Common-Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp ; coding: utf-8 -*-
;;; This is ASDF 2.26.113: Another System Definition Facility.
;;; This is ASDF 2.26.114: Another System Definition Facility.
;;;
;;; Feedback, bug reports, and patches are all welcome:
;;; please mail to <asdf-devel@common-lisp.net>.
......
This diff is collapsed.
......@@ -7,7 +7,8 @@
:asdf/component :asdf/system :asdf/operation :asdf/action
:asdf/find-system :asdf/find-component :asdf/lisp-action :asdf/plan)
(:export
#:operate #:oos #:*systems-being-operated* #:*asdf-upgrade-already-attempted*
#:operate #:oos
#:*systems-being-operated* #:*asdf-upgrade-already-attempted*
#:build-system
#:load-system #:load-systems #:compile-system #:test-system #:require-system
#:*load-system-operation* #:module-provide-asdf
......
......@@ -7,12 +7,9 @@
:asdf/component :asdf/system :asdf/find-system :asdf/find-component
:asdf/operation :asdf/action)
#+gcl<2.7 (:shadowing-import-from :asdf/compatibility #:type-of)
(:intern #:planned-p #:index #:forced #:forced-not #:total-action-count
#:planned-action-count #:planned-output-action-count #:visited-actions
#:visiting-action-set #:visiting-action-list #:actions-r)
(:export
#:component-operation-time #:mark-operation-done
#:plan-traversal #:sequential-plan
#:plan-traversal #:sequential-plan #:*default-plan-class*
#:planned-action-status #:plan-action-status #:action-already-done-p
#:circular-dependency #:circular-dependency-actions
#:node-for #:needed-in-image-p
......@@ -22,7 +19,10 @@
#:visit-dependencies #:compute-action-stamp #:traverse-action
#:circular-dependency #:circular-dependency-actions
#:call-while-visiting-action #:while-visiting-action
#:traverse #:plan-actions #:perform-plan #:plan-operates-on-p))
#:traverse #:plan-actions #:perform-plan #:plan-operates-on-p
#:planned-p #:index #:forced #:forced-not #:total-action-count
#:planned-action-count #:planned-output-action-count #:visited-actions
#:visiting-action-set #:visiting-action-list #:actions-r))
(in-package :asdf/plan)
;;;; Planned action status
......@@ -316,9 +316,11 @@ processed in order by OPERATE."))
(defgeneric* perform-plan (plan &key))
(defgeneric* plan-operates-on-p (plan component))
(defparameter *default-plan-class* 'sequential-plan)
(defmethod traverse ((o operation) (c component) &rest keys &key plan-class &allow-other-keys)
(let ((plan (apply 'make-instance
(or plan-class 'sequential-plan)
(or plan-class *default-plan-class*)
:system (component-system c) (remove-key :plan-class keys))))
(traverse-action plan o c t)
(plan-actions plan)))
......
......@@ -45,7 +45,7 @@
;; "2.345.6" would be a development version in the official upstream
;; "2.345.0.7" would be your seventh local modification of official release 2.345
;; "2.345.6.7" would be your seventh local modification of development version 2.345.6
(asdf-version "2.26.113")
(asdf-version "2.26.114")
(existing-asdf (find-class (find-symbol* :component :asdf nil) nil))
(existing-version *asdf-version*)
(already-there (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