committed patch for missing-component versus missing-version disambiguation
Gary King <[email protected]> Fri, 20 Jun 2008 10:10:20 -0400
| Newsgroups | gmane.lisp.cclan.general |
|---|---|
| Message-ID | <[email protected]> |
tested on OS X with SBCL and ACL.
Index: asdf.lisp
===================================================================
RCS file: /cvsroot/cclan/asdf/asdf.lisp,v
retrieving revision 1.119
diff -u -w -r1.119 asdf.lisp
--- asdf.lisp 18 Jun 2008 01:29:18 -0000 1.119
+++ asdf.lisp 20 Jun 2008 13:11:32 -0000
@@ -95,7 +95,9 @@
#:error-component #:error-operation
#:system-definition-error
#:missing-component
+ #:missing-component-of-version
#:missing-dependency
+ #:missing-dependency-of-version
#:circular-dependency ; errors
#:duplicate-names
@@ -179,12 +181,18 @@
(define-condition missing-component (system-definition-error)
((requires :initform "(unnamed)" :reader missing-
requires :initarg :requires)
- (version :initform nil :reader missing-version :initarg :version)
(parent :initform nil :reader missing-parent :initarg :parent)))
+(define-condition missing-component-of-version (missing-component)
+ ((version :initform nil :reader missing-version :initarg :version)))
+
(define-condition missing-dependency (missing-component)
((required-by :initarg :required-by :reader missing-required-by)))
+(define-condition missing-dependency-of-version (missing-dependency
+ missing-component-of-version)
+ ())
+
(define-condition operation-error (error)
((component :reader error-component :initarg :component)
(operation :reader error-operation :initarg :operation))
@@ -230,7 +238,13 @@
(defmethod print-object ((c missing-component) s)
(format s "~@<component ~S not found~
- ~@[ or does not match version ~A~]~
+ ~@[ in ~A~]~@:>"
+ (missing-requires c)
+ (when (missing-parent c)
+ (component-name (missing-parent c)))))
+
+(defmethod print-object ((c missing-component-of-version) s)
+ (format s "~@<component ~S does not match version ~A~
~@[ in ~A~]~@:>"
(missing-requires c)
(missing-version c)
@@ -671,10 +685,14 @@
;; in-order-to slot with
canonicalized
;; names instead of coercing this
late
(coerce-name required-c) required-v)
- (error 'missing-dependency
+ (if required-v
+ (error 'missing-dependency-of-version
:required-by c
:version required-v
- :requires required-c)))
+ :requires required-c)
+ (error 'missing-dependency
+ :required-by c
+ :requires required-c))))
(op (make-sub-operation c operation dep-c
required-op)))
(traverse op dep-c)))
(do-dep (op dep)
@@ -981,7 +999,7 @@
(*verbose-out* (if verbose *standard-output* (make-
broadcast-stream)))
(system (if (typep system 'component) system (find-system
system))))
(unless (version-satisfies system version)
- (error 'missing-component :requires system :version version))
+ (error 'missing-component-of-version :requires system :version
version))
(let ((steps (traverse op system)))
(with-compilation-unit ()
(loop for (op . component) in steps do
Index: test/test5.script
===================================================================
RCS file: /cvsroot/cclan/asdf/test/test5.script,v
retrieving revision 1.1
diff -u -w -r1.1 test5.script
--- test/test5.script 10 May 2008 23:18:22 -0000 1.1
+++ test/test5.script 20 Jun 2008 13:11:32 -0000
@@ -1,4 +1,7 @@
;;; -*- Lisp -*-
+
+;;; test :load-only-p support
+
(load "script-support")
(load "../asdf")
(exit-on-error
--
Gary Warren King, metabang.com
Cell: (413) 559 8738
Fax: (206) 338-4052
gwkkwg on Skype * garethsan on AIM
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php