;;; -*- Mode:LISP; Package:SYSTEM-INTERNALS; Readtable:CL -*- (defun specs() (let ((path (pathname "sys:sys;special-forms  ")) (old (pathname "sys:sys;eval  "))) (with-open-file (in "ed:special-forms.lisp#>") (do ((form (read in nil :eof) (read in nil :eof))) ((eq form :eof)) (when (symbolp (second form)) (let ((source (get (second form) :source-file-name))) (format t "~&~A was ~S" (second form) source) (etypecase source ((or null pathname) (if (eq source old) (setq source path) (setq source (ncons (list path source))))) (cons (let ((paths (cdr (assoc 'defun source)))) (if (null paths) (setq source (cons (list 'defun path) source)) (setf (cdr (assoc 'defun source)) (pushnew path paths)))))) (format t "~& is ~S" source)))))))