X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/284f1fa2ace3e276052ff1bd7d66442500e693da..aacae2739986636d9e7921cc0712d506e25c71b8:/doc/list-exports.lisp diff --git a/doc/list-exports.lisp b/doc/list-exports.lisp index 00bb7af..f58fb2b 100755 --- a/doc/list-exports.lisp +++ b/doc/list-exports.lisp @@ -1,4 +1,5 @@ #! /bin/sh +":"; ### -*-lisp-*- ":"; CL_SOURCE_REGISTRY=$(pwd)/build/src/:; export CL_SOURCE_REGISTRY ":"; exec cl-launch -X -l "sbcl cmucl" -s asdf -i "(sod-exports::main)" -- "$0" "$@" || exit 1 @@ -204,13 +205,17 @@ (t (best-package-name pkg))) (or exportp (null pkg)) (symbol-name symbol)))) +(deftype interesting-class () + '(or standard-class + structure-class + #.(class-name (class-of (find-class 'condition))))) + (defun analyse-classes (package) (setf package (find-package package)) (let ((classes (mapcan (lambda (symbol) (let ((class (find-class symbol nil))) (and class - (typep class '(or standard-class - structure-class)) + (typep class 'interesting-class) (list class)))) (list-exported-symbols package))) (subs (make-hash-table))) @@ -359,7 +364,7 @@ #'order-specializers :key #'method-specializers)) (when (gethash method methods) - (format t "~2T~{~A~^ ~}~%" + (format t "~2T~{~A~^ ~}~@[ [~{~(~S~)~^ ~}]~]~%" (mapcar (lambda (spec) (etypecase spec @@ -373,7 +378,8 @@ (if (symbolp obj) (pretty-symbol-name obj package) obj)))))) - (method-specializers method)))))))))) + (method-specializers method)) + (method-qualifiers method))))))))) (defun check-slot-names (package) (setf package (find-package package)) @@ -442,17 +448,16 @@ (export 'report-project-symbols) (defun report-project-symbols () (labels ((components (comp) - (slot-value comp 'asdf::components)) + (asdf:component-children comp)) (files (comp) (sort (remove-if-not (lambda (comp) (typep comp 'asdf:cl-source-file)) (components comp)) #'string< :key #'asdf:component-name)) (by-name (comp name) - (find name (components comp) - :test #'string= :key #'asdf:component-name)) + (gethash name (asdf:component-children-by-name comp))) (file-name (file) - (slot-value file 'asdf::absolute-pathname))) + (slot-value file 'asdf/component:absolute-pathname))) (let* ((sod (asdf:find-system "sod")) (parser-files (files (by-name sod "parser"))) (utilities (by-name sod "utilities"))