From: Christophe Rhodes Date: Wed, 31 Aug 2005 14:43:43 +0000 (+0000) Subject: 0.9.4.18: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=2add48f5ee524f8f2ed0098694f1358d910336aa;p=sbcl.git 0.9.4.18: MORE POLICY ... upgrade asdf to upstream HEAD ... make canonicalize-whitespace-1 not touch the file if it doesn't need touching ... automatically run canonicalize-whitespace as part of make.sh (this is potentially controversial, as it takes a non-trivial amount of time, and also potentially scribbles over files which the unwary developer has open. Better, automatic solutions are still being sought) --- diff --git a/contrib/asdf/README b/contrib/asdf/README index 1847095..e22e6f1 100644 --- a/contrib/asdf/README +++ b/contrib/asdf/README @@ -1,4 +1,4 @@ -$Id$ -*- Text -*- +README,v 1.38 2004/07/19 21:18:07 crhodes Exp -*- Text -*- The canonical documentation for asdf is in the file asdf.texinfo. The significant overlap between this file and that will one day be diff --git a/contrib/asdf/asdf.lisp b/contrib/asdf/asdf.lisp index f328354..7cec55b 100644 --- a/contrib/asdf/asdf.lisp +++ b/contrib/asdf/asdf.lisp @@ -1,4 +1,4 @@ -;;; This is asdf: Another System Definition Facility. $Revision$ +;;; This is asdf: Another System Definition Facility. 1.87 ;;; ;;; Feedback, bug reports, and patches are all welcome: please mail to ;;; . But note first that the canonical @@ -95,6 +95,7 @@ #:missing-component #:missing-dependency #:circular-dependency ; errors + #:duplicate-names #:retry #:accept ; restarts @@ -108,7 +109,7 @@ (in-package #:asdf) -(defvar *asdf-revision* (let* ((v "$Revision$") +(defvar *asdf-revision* (let* ((v "1.87") (colon (or (position #\: v) -1)) (dot (position #\. v))) (and v colon dot @@ -157,6 +158,9 @@ and NIL NAME and TYPE components" (define-condition circular-dependency (system-definition-error) ((components :initarg :components :reader circular-dependency-components))) +(define-condition duplicate-names (system-definition-error) + ((name :initarg :name :reader duplicate-names-name))) + (define-condition missing-component (system-definition-error) ((requires :initform "(unnamed)" :reader missing-requires :initarg :requires) (version :initform nil :reader missing-version :initarg :version) @@ -930,6 +934,15 @@ Returns the new tree (which probably shares structure with the old one)" ;; list ends &allow-other-keys) options (check-component-input type name depends-on components in-order-to) + + (when (and parent + (find-component parent name) + ;; ignore the same object when rereading the defsystem + (not + (typep (find-component parent name) + (class-for-type parent type)))) + (error 'duplicate-names :name name)) + (let* ((other-args (remove-keys '(components pathname default-component-class perform explain output-files operation-done-p @@ -958,7 +971,19 @@ Returns the new tree (which probably shares structure with the old one)" for c = (parse-component-form ret c-form) collect c if serial - do (push (component-name c) *serial-depends-on*))))) + do (push (component-name c) *serial-depends-on*)))) + + ;; check for duplicate names + (let ((name-hash (make-hash-table :test #'equalp))) + (loop for c in (module-components ret) + do + (if (gethash (component-name c) + name-hash) + (error 'duplicate-names + :name (component-name c)) + (setf (gethash (component-name c) + name-hash) + t))))) (setf (slot-value ret 'in-order-to) (union-of-dependencies diff --git a/make.sh b/make.sh index 31cd52f..8826ede 100755 --- a/make.sh +++ b/make.sh @@ -72,6 +72,9 @@ find_gnumake # and target machines. sh make-config.sh || exit 1 +# Enforce the source policy for no bogus whitespace +tools-for-build/canonicalize-whitespace || exit 1 + # The make-host-*.sh scripts are run on the cross-compilation host, # and the make-target-*.sh scripts are run on the target machine. In # ordinary compilation, we just do these phases consecutively on the diff --git a/tools-for-build/canonicalize-whitespace-1 b/tools-for-build/canonicalize-whitespace-1 index 1e33369..de19e97 100755 Binary files a/tools-for-build/canonicalize-whitespace-1 and b/tools-for-build/canonicalize-whitespace-1 differ diff --git a/version.lisp-expr b/version.lisp-expr index 07ccc54..e715610 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.9.4.17" +"0.9.4.18"