diff --git a/header.lisp b/header.lisp index fd3c553196e3e3b74f02f9127825c6751bfb3553..486fe1736610cbba8747dacfe00e6c5c655549bc 100644 --- a/header.lisp +++ b/header.lisp @@ -54,7 +54,7 @@ (declaim (optimize (speed 1) (safety 3) (debug 3))) (setf ext:*gc-verbose* nil)) -#+(or abcl clisp clozure cmu ecl xcl) +#+(or abcl clisp clozure cmu ecl xcl) ;; punt on hard package upgrade on those implementations (eval-when (:load-toplevel :compile-toplevel :execute) (unless (member :asdf3 *features*) (let* ((existing-version @@ -71,7 +71,7 @@ (existing-version-number (and existing-version (read-from-string existing-major-minor))) (away (format nil "~A-~A" :asdf existing-version))) (when (and existing-version - (< existing-version-number #+abcl 2.25 #+cmu 2.018 #-(or abcl cmu) 2.27)) + (< existing-version-number 2.27)) (rename-package :asdf away) (when *load-verbose* (format t "~&; Renamed old ~A package away to ~A~%" :asdf away)))))) diff --git a/test/run-tests.sh b/test/run-tests.sh index 18eabcd86084a3cc015021af7bb7c91a8876efa9..fd8e10f4713664116ee3d59ce7a6d6f1d298c3a6 100755 --- a/test/run-tests.sh +++ b/test/run-tests.sh @@ -290,7 +290,7 @@ upgrade_methods () { cat <<EOF 'load-asdf-lisp'load-asdf-lisp-clean 'load-asdf-lisp'load-asdf-system -'load-asdf-lisp'compile-load-asdf +'load-asdf-lisp'compile-load-asdf-upgrade 'load-asdf-lisp'load-asdf-fasl ()'load-asdf-fasl 'load-asdf-lisp-and-test-uiop'load-asdf-fasl diff --git a/test/script-support.lisp b/test/script-support.lisp index f4252d89916e1745d9c102d1cddeaf9d87be80e5..c869f12ccd9242b4417365d965a565b743ce0273 100644 --- a/test/script-support.lisp +++ b/test/script-support.lisp @@ -20,7 +20,8 @@ Some constraints: #:hash-table->alist #:load-asdf #:maybe-compile-asdf #:load-asdf-lisp #:compile-asdf #:load-asdf-fasl - #:compile-load-asdf #:load-asdf-system #:clean-load-asdf-system + #:compile-load-asdf #:compile-load-asdf-upgrade + #:load-asdf-system #:clean-load-asdf-system #:register-directory #:load-test-system #:with-test #:test-asdf #:debug-asdf #:assert-compare @@ -388,7 +389,7 @@ is bound, write a message and exit on an error. If (defmacro with-asdf-conditions ((&optional verbose) &body body) `(call-with-asdf-conditions #'(lambda () ,@body) ,verbose)) -(defun compile-asdf (&optional tag verbose) +(defun compile-asdf (&optional tag verbose upgradep) (let* ((alisp (asdf-lisp tag)) (afasl (asdf-fasl tag)) (tmp (make-pathname :name "asdf-tmp" :defaults afasl))) @@ -401,7 +402,7 @@ is bound, write a message and exit on an error. If (good (key) (when (probe-file afasl) (delete-file afasl)) (rename-file tmp afasl) - key)) + compile-asdf key)) (cond ((null result) (bad :no-output)) @@ -416,6 +417,7 @@ is bound, write a message and exit on an error. If ;; ECL 11.1.1 has spurious warnings, same with XCL 0.0.0.291. ;; SCL has no warning but still raises the warningp flag since 2.20.15 (?) #+(or clisp cmu ecl scl xcl) (good :expected-style-warnings) + (and upgradep (good :unexpected-style-warnings)) (bad :unexpected-style-warnings))) (t (good :success))))))) @@ -453,16 +455,20 @@ is bound, write a message and exit on an error. If (:success (leave-test "ASDF compiled cleanly" 0))))) -(defun compile-load-asdf (&optional tag) +(defun compile-load-asdf (&optional tag upgradep) ;; emulate the way asdf upgrades itself: load source, compile, load fasl. (load-asdf-lisp tag) - (let ((results (compile-asdf tag))) + (let ((results (compile-asdf tag nil upgradep))) (ecase results ((:no-output :unexpected-full-warnings :unexpected-style-warnings) - (warn "ASDF compiled with ~S" results) - (leave-test "failed to compile ASDF" 1)) - ((:expected-full-warnings :expected-style-warnings :success) - (load-asdf-fasl tag))))) + (warn "ASDF compiled with ~S" results) + (unless (and upgradep (eq results :unexpected-style-warnings)) + (leave-test "failed to compile ASDF" 1))) + ((:expected-full-warnings :expected-style-warnings :success))) + (load-asdf-fasl tag))) + +(defun compile-load-asdf-upgrade (&optional tag) + (compile-load-asdf tag t)) ;;; Now, functions to compile and load ASDF.