diff --git a/clx/dependent.lisp b/clx/dependent.lisp index c271b75b070d419204d6be959d1f0e061f643cde..1bc3a85a8143bf7197afec42edb74afae4cf6b9a 100644 --- a/clx/dependent.lisp +++ b/clx/dependent.lisp @@ -2022,15 +2022,21 @@ ;;; This controls macro expansion, and isn't changable at run-time You will ;;; probably want to set this to nil if you want good performance at ;;; production time. -(defconstant *type-check?* #+Genera nil #-Genera t) +(defconstant *type-check?* #+(or cmu Genera) nil #-(or cmu Genera) t) ;; TYPE? is used to allow the code to do error checking at a different level from ;; the declarations. It also does some optimizations for systems that don't have ;; good compiler support for TYPEP. The definitions for CARD32, CARD16, INT16, etc. ;; include range checks. You can modify TYPE? to do less extensive checking ;; for these types if you desire. +;; +;; ### This comment is a lie! TYPE? is really also used for run-time type +;; dispatching, not just type checking. -- Ram. (defmacro type? (object type) + #+cmu + `(typep ,object ,type) + #-cmu (if (not (constantp type)) `(typep ,object ,type) (progn