From 921be307af581bb1c8bc60f77573733d97df66d1 Mon Sep 17 00:00:00 2001 From: Francois-Rene Rideau <tunes@google.com> Date: Mon, 18 Feb 2013 19:29:32 +0100 Subject: [PATCH] 2.29.5: more fixing of exports, with test added. Thanks to stassats for initial test code. --- asdf.asd | 2 +- find-system.lisp | 6 +- header.lisp | 2 +- plan.lisp | 2 +- source-registry.lisp | 4 +- test/script-support.lisp | 7 ++- test/test-utilities.script | 110 +++++++++++++++++++++++++++++++++++++ upgrade.lisp | 2 +- version.lisp-expr | 2 +- 9 files changed, 124 insertions(+), 13 deletions(-) diff --git a/asdf.asd b/asdf.asd index f633d8412..96be43fc7 100644 --- a/asdf.asd +++ b/asdf.asd @@ -74,7 +74,7 @@ :licence "MIT" :description "Another System Definition Facility" :long-description "ASDF builds Common Lisp software organized into defined systems." - :version "2.29.4" ;; to be automatically updated by make bump-version + :version "2.29.5" ;; to be automatically updated by make bump-version :depends-on () #+asdf3 :encoding #+asdf3 :utf-8 ;; For most purposes, asdf itself specially counts as a builtin system. diff --git a/find-system.lisp b/find-system.lisp index 9c134063b..7cc5df9ce 100644 --- a/find-system.lisp +++ b/find-system.lisp @@ -17,7 +17,7 @@ #:*central-registry* #:probe-asd #:sysdef-central-registry-search #:find-system-if-being-defined #:*systems-being-defined* #:contrib-sysdef-search #:sysdef-find-asdf ;; backward compatibility symbols, functions removed - #:sysdef-find-preloaded-system #:register-preloaded-system #:*preloaded-systems* + #:sysdef-preloaded-system-search #:register-preloaded-system #:*preloaded-systems* #:clear-defined-systems #:*defined-systems* ;; defined in source-registry, but specially mentioned here: #:initialize-source-registry #:sysdef-source-registry-search)) @@ -139,7 +139,7 @@ called with an object of type asdf:system." (remove-if #'(lambda (x) (member x *system-definition-search-functions*)) '(sysdef-central-registry-search sysdef-source-registry-search - sysdef-find-preloaded-systems))))) + sysdef-preloaded-system-search))))) (cleanup-system-definition-search-functions) (defun search-for-system-definition (system) @@ -344,7 +344,7 @@ PREVIOUS-TIME when not null is the time at which the PREVIOUS system was loaded. (defvar *preloaded-systems* (make-hash-table :test 'equal)) - (defun sysdef-find-preloaded-systems (requested) + (defun sysdef-preloaded-system-search (requested) (let ((name (coerce-name requested))) (multiple-value-bind (keys foundp) (gethash name *preloaded-systems*) (when foundp diff --git a/header.lisp b/header.lisp index ca7e891c3..d280eff48 100644 --- a/header.lisp +++ b/header.lisp @@ -1,5 +1,5 @@ ;;; -*- mode: Common-Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp -*- -;;; This is ASDF 2.29.4: Another System Definition Facility. +;;; This is ASDF 2.29.5: Another System Definition Facility. ;;; ;;; Feedback, bug reports, and patches are all welcome: ;;; please mail to <asdf-devel@common-lisp.net>. diff --git a/plan.lisp b/plan.lisp index decb17eb1..cbf93d7d1 100644 --- a/plan.lisp +++ b/plan.lisp @@ -14,7 +14,7 @@ #:circular-dependency #:circular-dependency-actions #:node-for #:needed-in-image-p #:action-index #:action-planned-p #:action-valid-p - #:plan-record-dependency #:visiting-action-p + #:plan-record-dependency #:normalize-forced-systems #:action-forced-p #:action-forced-not-p #:map-direct-dependencies #:reduce-direct-dependencies #:direct-dependencies #:visit-dependencies #:compute-action-stamp #:traverse-action diff --git a/source-registry.lisp b/source-registry.lisp index 8587e3192..4d02c5428 100644 --- a/source-registry.lisp +++ b/source-registry.lisp @@ -6,9 +6,9 @@ (:recycle :asdf/source-registry :asdf) (:use :asdf/common-lisp :asdf/driver :asdf/upgrade :asdf/find-system) (:export - #:*source-registry* #:*source-registry-parameter* #:*default-source-registries* + #:*source-registry-parameter* #:*default-source-registries* #:invalid-source-registry - #:source-registry #:source-registry-initialized-p + #:source-registry-initialized-p #:initialize-source-registry #:clear-source-registry #:*source-registry* #:ensure-source-registry #:*source-registry-parameter* #:*default-source-registry-exclusions* #:*source-registry-exclusions* diff --git a/test/script-support.lisp b/test/script-support.lisp index 750eaf1b6..3f874dec1 100644 --- a/test/script-support.lisp +++ b/test/script-support.lisp @@ -215,14 +215,15 @@ Some constraints: (defmacro assert-equal (x y) `(assert-compare (equal ,x ,y))) -(defun touch-file (file &key offset timestamp) +(defun touch-file (file &key offset timestamp in-filesystem) (let* ((base (or timestamp (get-universal-time))) (stamp (if offset (+ base offset) base))) - (if (asymval :*asdf-cache*) + (if (and (asymval :*asdf-cache*) (not in-filesystem)) (acall :register-file-stamp file stamp) (multiple-value-bind (sec min hr day month year) (decode-universal-time stamp #+gcl2.6 -5) ;; -5 is for *my* localtime - (error "Y U NO use stamp cache?") + (unless in-filesystem + (error "Y U NO use stamp cache?")) (acall :run-program `("touch" "-t" ,(format nil "~4,'0D~2,'0D~2,'0D~2,'0D~2,'0D.~2,'0D" year month day hr min sec) diff --git a/test/test-utilities.script b/test/test-utilities.script index a16efe0e8..ea1e5d33e 100644 --- a/test/test-utilities.script +++ b/test/test-utilities.script @@ -60,3 +60,113 @@ (:function (:lambda isnt lambda)) (:function (lambda (too many args) blah)))) '(t t nil nil nil nil)) + +(initialize-source-registry '()) + +#| +(unless (find-system :swank nil) + (leave-test "Cannot find SWANK" 0)) + +(load-system :swank) +;;(setq swank-loader::*fasl-directory* (resolve-output "slime/")) +;;(ensure-directories-exist swank-loader::*fasl-directory*) +;;(DBG :foo swank-loader::*fasl-directory*) +(swank-loader:init) +|# + +(defparameter *ok-symbols* + '(;; slots names + ASDF/ACTION:ACCEPT + ASDF/ACTION:ACTION + ASDF/ACTION:DONE-P + ASDF/ACTION:FEATURE + ASDF/ACTION:STAMP + ASDF/BUNDLE:PROLOGUE-CODE + ASDF/BUNDLE:BUILD-ARGS + ASDF/BUNDLE:EPILOGUE-CODE + ASDF/BUNDLE:NAME-SUFFIX + ASDF/COMPONENT:ABSOLUTE-PATHNAME + ASDF/COMPONENT:AROUND-COMPILE + ASDF/COMPONENT:AUTHOR + ASDF/COMPONENT:CHILDREN + ASDF/COMPONENT:CHILDREN-BY-NAME + ASDF/COMPONENT:COMPONENTS + ASDF/COMPONENT:COMPONENTS-BY-NAME + ASDF/COMPONENT:DEFAULT-COMPONENT-CLASS + ASDF/COMPONENT:DEFSYSTEM-DEPENDS-ON + ASDF/COMPONENT:DESCRIPTION + ASDF/COMPONENT:%ENCODING + ASDF/COMPONENT:IF-FEATURE + ASDF/COMPONENT:INLINE-METHODS + ASDF/COMPONENT:IN-ORDER-TO + ASDF/COMPONENT:LICENCE + ASDF/COMPONENT:LONG-DESCRIPTION + ASDF/COMPONENT:MAINTAINER + ASDF/COMPONENT:NAME + ASDF/COMPONENT:OPERATION-TIMES + ASDF/COMPONENT:PARENT + ASDF/COMPONENT:PROPERTIES + ASDF/COMPONENT:RELATIVE-PATHNAME + ASDF/COMPONENT:SIBLING-DEPENDENCIES + ASDF/COMPONENT:VERSION + ASDF/LISP-ACTION:FLAGS + ASDF/PLAN:INDEX + ASDF/PLAN:FORCED + ASDF/PLAN:FORCED-NOT + ASDF/PLAN:PLANNED-ACTION-COUNT + ASDF/PLAN:PLANNED-OUTPUT-ACTION-COUNT + ASDF/PLAN:PLANNED-P + ASDF/PLAN:TOTAL-ACTION-COUNT + ASDF/PLAN:VISITED-ACTIONS + ASDF/PLAN:VISITING-ACTION-SET + ASDF/PLAN:VISITING-ACTION-LIST + ASDF/SYSTEM:BUG-TRACKER + ASDF/SYSTEM:BUILD-PATHNAME + ASDF/SYSTEM:ENTRY-POINT + ASDF/SYSTEM:HOMEPAGE + ASDF/SYSTEM:LONG-NAME + ASDF/SYSTEM:MAILTO + ASDF/SYSTEM:SOURCE-CONTROL + ;; restarts + ASDF/ACTION:ACCEPT + ASDF/FIND-COMPONENT:RETRY + ASDF/FIND-SYSTEM:COERCE-ENTRY-TO-DIRECTORY + ASDF/FIND-SYSTEM:REMOVE-ENTRY-FROM-REGISTRY + ASDF/LISP-ACTION:TRY-RECOMPILING + ;; types + ASDF/BUNDLE:USER-SYSTEM + ;; on some implementations only + ASDF/BUNDLE:BUNDLE-SYSTEM + ASDF/BUNDLE:REGISTER-PRE-BUILT-SYSTEM + ASDF/BUNDLE:STATIC-LIBRARY + ASDF/IMAGE:CREATE-IMAGE + ASDF/LISP-BUILD:REIFY-UNDEFINED-WARNING + ;; backward compatibility upgrade only + ASDF/BACKWARD-INTERNALS:MAKE-SUB-OPERATION + ASDF/FIND-SYSTEM:CONTRIB-SYSDEF-SEARCH + ASDF/FIND-SYSTEM:SYSDEF-FIND-ASDF + )) + +(defun defined-symbol-p (symbol) + (or (boundp symbol) + (fboundp symbol) + (macro-function symbol) + (find-class symbol nil))) + +(defun fishy-exported-symbols (package &optional (ok-symbols *ok-symbols*)) + (loop :for symbol :being :the external-symbols :of package + :unless (or + (defined-symbol-p symbol) + ;;(symbol-call :swank :classify-symbol symbol) + (member symbol ok-symbols)) + :collect symbol)) + +(defun fishy-asdf-exported-symbols () + (remove-duplicates + (loop :for package :in (list-all-packages) + :when (and (string-prefix-p "ASDF/" (package-name package)) + (not (equal (package-name package) "ASDF/COMMON-LISP"))) + :nconc (fishy-exported-symbols package)) + :from-end t)) + +(assert-equal nil (fishy-asdf-exported-symbols)) diff --git a/upgrade.lisp b/upgrade.lisp index ce8b09348..a2ddae0d2 100644 --- a/upgrade.lisp +++ b/upgrade.lisp @@ -52,7 +52,7 @@ You can compare this string with e.g.: (ASDF:VERSION-SATISFIES (ASDF:ASDF-VERSIO ;; "3.4.5.67" would be a development version in the official upstream of 3.4.5. ;; "3.4.5.0.8" would be your eighth local modification of official release 3.4.5 ;; "3.4.5.67.8" would be your eighth local modification of development version 3.4.5.67 - (asdf-version "2.29.4") + (asdf-version "2.29.5") (existing-version (asdf-version))) (setf *asdf-version* asdf-version) (when (and existing-version (not (equal asdf-version existing-version))) diff --git a/version.lisp-expr b/version.lisp-expr index 28642f86b..04e55380d 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -1 +1 @@ -"2.29.4" +"2.29.5" -- GitLab