(defun valid-extended-function-designator-for-disassemble-p (thing)
(cond ((legal-fun-name-p thing)
(compiled-fun-or-lose (fdefinition thing) thing))
+ #!+sb-eval
+ ((sb!eval:interpreted-function-p thing)
+ (compile nil thing))
((functionp thing)
thing)
((and (listp thing)
(let ((x 1)) (defun disassemble-closure (y) (if y (setq x y) x)))
(disassemble 'disassemble-closure)
+
+#+sb-eval
+(progn
+ ;; Nor should it fail on interpreted functions
+ (let ((sb-ext:*evaluator-mode* :interpret))
+ (eval `(defun disassemble-eval (x) x))
+ (disassemble 'disassemble-eval))
+
+ ;; disassemble-eval should still be an interpreted function.
+ ;; clhs disassemble: "(If that function is an interpreted function,
+ ;; it is first compiled but the result of this implicit compilation
+ ;; is not installed.)"
+ (assert (sb-eval:interpreted-function-p #'disassemble-eval)))
\f
;;; support for DESCRIBE tests
(defstruct to-be-described a b)
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.9.18.4"
+"0.9.18.5"