Loading asdf.lisp +29 −11 Original line number Diff line number Diff line Loading @@ -72,7 +72,7 @@ (defvar *asdf-version* nil) (defvar *upgraded-p* nil) (let* ((asdf-version ;; the 1+ helps the version bumping script discriminate (subseq "VERSION:2.006" (1+ (length "VERSION")))) ; same as 2.123 (subseq "VERSION:2.007" (1+ (length "VERSION")))) ; same as 2.124 (existing-asdf (fboundp 'find-system)) (existing-version *asdf-version*) (already-there (equal asdf-version existing-version))) Loading Loading @@ -120,9 +120,16 @@ (let ((sym (find-sym symbol package))) (when sym (unexport sym package) (unintern sym package)))) (unintern sym package) sym))) (ensure-unintern (package symbols) (dolist (sym symbols) (remove-symbol sym package))) (loop :with packages = (list-all-packages) :for sym :in symbols :for removed = (remove-symbol sym package) :when removed :do (loop :for p :in packages :do (when (eq removed (find-sym sym p)) (unintern removed p))))) (ensure-shadow (package symbols) (shadow symbols package)) (ensure-use (package use) Loading @@ -136,15 +143,26 @@ :for sym = (find-sym name package) :when sym :do (fmakunbound sym))) (ensure-export (package export) (let ((syms (loop :for x :in export :collect (intern* x package)))) (do-external-symbols (sym package) (unless (member sym syms) (remove-symbol sym package))) (dolist (sym syms) (export sym package)))) (let ((formerly-exported-symbols nil) (bothly-exported-symbols nil) (newly-exported-symbols nil)) (loop :for sym :being :each :external-symbol :in package :do (if (member sym export :test 'string-equal) (push sym bothly-exported-symbols) (push sym formerly-exported-symbols))) (loop :for sym :in export :do (unless (member sym bothly-exported-symbols :test 'string-equal) (push sym newly-exported-symbols))) (loop :for user :in (package-used-by-list package) :for shadowing = (package-shadowing-symbols user) :do (loop :for new :in newly-exported-symbols :for old = (find-sym new user) :when (and old (not (member old shadowing))) :do (unintern old user))) (loop :for x :in newly-exported-symbols :do (export (intern* x package))))) (ensure-package (name &key nicknames use unintern fmakunbound shadow export) (let ((p (ensure-exists name nicknames use))) (let* ((p (ensure-exists name nicknames use))) (ensure-unintern p unintern) (ensure-shadow p shadow) (ensure-export p export) Loading test/test-module-depend.asd +12 −11 Original line number Diff line number Diff line (asdf:defsystem :test-module-depend :components ((:file "file1") (defsystem :test-module-depend :components ((:file "file1") (:module "quux" :pathname #p"" :pathname "" :depends-on ("file1") :components ((:file "file2") :components ((:file "file2") (:module "file3mod" :pathname #p"" :pathname "" :components ((:file "file3"))))))) Loading
asdf.lisp +29 −11 Original line number Diff line number Diff line Loading @@ -72,7 +72,7 @@ (defvar *asdf-version* nil) (defvar *upgraded-p* nil) (let* ((asdf-version ;; the 1+ helps the version bumping script discriminate (subseq "VERSION:2.006" (1+ (length "VERSION")))) ; same as 2.123 (subseq "VERSION:2.007" (1+ (length "VERSION")))) ; same as 2.124 (existing-asdf (fboundp 'find-system)) (existing-version *asdf-version*) (already-there (equal asdf-version existing-version))) Loading Loading @@ -120,9 +120,16 @@ (let ((sym (find-sym symbol package))) (when sym (unexport sym package) (unintern sym package)))) (unintern sym package) sym))) (ensure-unintern (package symbols) (dolist (sym symbols) (remove-symbol sym package))) (loop :with packages = (list-all-packages) :for sym :in symbols :for removed = (remove-symbol sym package) :when removed :do (loop :for p :in packages :do (when (eq removed (find-sym sym p)) (unintern removed p))))) (ensure-shadow (package symbols) (shadow symbols package)) (ensure-use (package use) Loading @@ -136,15 +143,26 @@ :for sym = (find-sym name package) :when sym :do (fmakunbound sym))) (ensure-export (package export) (let ((syms (loop :for x :in export :collect (intern* x package)))) (do-external-symbols (sym package) (unless (member sym syms) (remove-symbol sym package))) (dolist (sym syms) (export sym package)))) (let ((formerly-exported-symbols nil) (bothly-exported-symbols nil) (newly-exported-symbols nil)) (loop :for sym :being :each :external-symbol :in package :do (if (member sym export :test 'string-equal) (push sym bothly-exported-symbols) (push sym formerly-exported-symbols))) (loop :for sym :in export :do (unless (member sym bothly-exported-symbols :test 'string-equal) (push sym newly-exported-symbols))) (loop :for user :in (package-used-by-list package) :for shadowing = (package-shadowing-symbols user) :do (loop :for new :in newly-exported-symbols :for old = (find-sym new user) :when (and old (not (member old shadowing))) :do (unintern old user))) (loop :for x :in newly-exported-symbols :do (export (intern* x package))))) (ensure-package (name &key nicknames use unintern fmakunbound shadow export) (let ((p (ensure-exists name nicknames use))) (let* ((p (ensure-exists name nicknames use))) (ensure-unintern p unintern) (ensure-shadow p shadow) (ensure-export p export) Loading
test/test-module-depend.asd +12 −11 Original line number Diff line number Diff line (asdf:defsystem :test-module-depend :components ((:file "file1") (defsystem :test-module-depend :components ((:file "file1") (:module "quux" :pathname #p"" :pathname "" :depends-on ("file1") :components ((:file "file2") :components ((:file "file2") (:module "file3mod" :pathname #p"" :pathname "" :components ((:file "file3")))))))