From 38ac1ad91c03867b715eddf415b2e4286cf77c3a Mon Sep 17 00:00:00 2001 From: William Halliburton Date: Mon, 12 Dec 2011 00:51:50 -0500 Subject: [PATCH] show-all-used-common-lisp-symbols MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For listing all the symbols in a particular package that come from the CL package. > (show-all-used-common-lisp-symbols :academy) functions ▀▀▀▀▀▀▀▀▀ * + - / /= 1+ 1- < <= = > >= ABS ADJUST-ARRAY AND APPLY AREF ARRAY-DIMENSIONS ASSOC ASSOC-IF ATAN BOUNDP BREAK CAR CASE CDDDR CDR CHAR CHAR-CODE CHAR-NAME CHAR-UPCASE CHAR= CHARACTER CODE-CHAR COERCE CONCATENATE COND CONS CONSP COS COUNT DECF DEFMACRO DEFPACKAGE DEFPARAMETER DEFSTRUCT DEFUN DEFVAR DESTRUCTURING-BIND DIGIT-CHAR-P DIRECTORY-NAMESTRING DO DOCUMENTATION DOTIMES ECASE ELT EQ EQL EQUAL EQUALP ERROR EVENP EVERY FBOUNDP FILE-LENGTH FILE-POSITION FIND FIND-SYMBOL FIRST FLET FLOOR FORCE-OUTPUT FORMAT FRESH-LINE FUNCALL FUNCTION GENSYM GET-UNIVERSAL-TIME GETHASH HANDLER-CASE IDENTITY IF IN-PACKAGE INCF INTERSECTION KEYWORDP LABELS LAMBDA LENGTH LET LET* LIST LISTP LOGAND LOGBITP LOGCOUNT LOOP MACROLET MAKE-ARRAY MAKE-HASH-TABLE MAKE-LIST MAKE-STRING MAP MAPCAR MAX MEMBER MINUSP MOD MULTIPLE-VALUE-BIND NOT NREVERSE NTH NTHCDR NULL OR PARSE-INTEGER PLUSP POSITION PRIN1 PRINC PRINC-TO-STRING PROBE-FILE PROG1 PROGN PUSH QUOTE RANDOM READ READ-FROM-STRING READ-LINE READ-SEQUENCE REDUCE REMOVE-DUPLICATES REMOVE-IF REMOVE-IF-NOT REST RETURN REVERSE ROUND SECOND SET SETF SIN SORT STEP STRING STRING-DOWNCASE STRING< SUBSEQ SYMBOL-FUNCTION SYMBOL-NAME SYMBOLP TAN TERPRI THIRD TYPEP UNLESS VALUES VECTOR WARN WHEN WITH-INPUT-FROM-STRING WITH-OPEN-FILE WITH-OUTPUT-TO-STRING WITH-SLOTS WRITE-CHAR WRITE-STRING ZEROP everything else ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ &BODY &KEY &OPTIONAL &REST *READ-EVAL* *STANDARD-OUTPUT* NUMBER PARSE-ERROR PI SEQUENCE STREAM SYMBOL T UNDEFINED-FUNCTION --- common-lisp.lisp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/common-lisp.lisp b/common-lisp.lisp index 022e25e..7053633 100644 --- a/common-lisp.lisp +++ b/common-lisp.lisp @@ -15,3 +15,22 @@ (print-table (group (sort functions #'string<) 2)) (print-heading "everything else") (print-table (group (sort non-functions #'string<) 2)))) + +(defun list-all-used-common-lisp-symbols (system-name) + (let ((all-files + (remove-duplicates + (flatten + (loop for filename in (asdf-lisp-files system-name) + collect (read-lisp-file filename)))))) + (multiple-value-bind (functions non-functions) (list-all-common-lisp-symbols) + (values + (sort (intersection all-files functions) #'string<) + (sort (intersection all-files non-functions) #'string<))))) + +(defun show-all-used-common-lisp-symbols (system-name) + "Shows all the symbols used in the system named SYSTEM-NAME that come from the CL package." + (multiple-value-bind (functions non-functions) (list-all-used-common-lisp-symbols system-name) + (print-heading "functions") + (print-table (group functions 4)) + (print-heading "everything else") + (print-table (group non-functions 4))))