1.0.27.31: repeatable fasl header and debug-source
[sbcl.git] / src / code / describe.lisp
index 79de2f8..67e45b5 100644 (file)
                   ;; any nondefault options.
                   (format-universal-time nil (sb-c::debug-source-compiled source)
                                          :style :abbreviated))
-          (let ((name (sb-c::debug-source-name source)))
-            (ecase (sb-c::debug-source-from source)
-              (:file
-               (format s "~&~A~@:_  Created: " (namestring name))
-               (format-universal-time s (sb-c::debug-source-created source)))
-              (:lisp (format s "~&  ~S" (aref name 0))))))))))
+          (let ((name (sb-c::debug-source-namestring source)))
+            (cond (name
+                   (format s "~&~A~@:_  Created: " name)
+                   (format-universal-time s (sb-c::debug-source-created source)))
+                  ((sb-di:debug-source-form source)
+                   (format s "~&  ~S" (sb-di:debug-source-form source)))
+                  (t (bug "Don't know how to use a DEBUG-SOURCE without ~
+                           a namestring or a form.")))))))))
 
 ;;; Describe a compiled function. The closure case calls us to print
 ;;; the guts.
         ((fboundp x)
          (describe-symbol-fdefinition (fdefinition x) s :name x)))
 
+  ;; Describe deftype lambda-list and doc
+  (when (info :type :expander x)
+    (format s "~&DEFTYPE lambda-list: ~A" (info :type :lambda-list x))
+    (%describe-doc x s 'type "Type"))
+
   ;; Print other documentation.
   (%describe-doc x s 'structure "Structure")
-  (%describe-doc x s 'type "Type")
   (%describe-doc x s 'setf "Setf macro")
   (dolist (assoc (info :random-documentation :stuff x))
     (let ((type (car assoc)))