From: Douglas K. <sn...@us...> - 2015-09-01 12:00:25
|
The branch "master" has been updated in SBCL: via 3c844092d966ebe6cd7363198aa1912b99bc0a35 (commit) from 2f1a6b94cbf431d7290c57c441a5a6c3b2a29be1 (commit) - Log ----------------------------------------------------------------- commit 3c844092d966ebe6cd7363198aa1912b99bc0a35 Author: Douglas Katzman <do...@go...> Date: Tue Sep 1 07:57:31 2015 -0400 Use %%TYPEP instead of %TYPEP in a few places. --- src/code/coerce.lisp | 5 ++--- src/code/target-type.lisp | 2 +- src/code/typep.lisp | 10 +++++----- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/code/coerce.lisp b/src/code/coerce.lisp index b245479..bc15373 100644 --- a/src/code/coerce.lisp +++ b/src/code/coerce.lisp @@ -126,7 +126,6 @@ #!+sb-doc "Coerce the Object to an object of type Output-Type-Spec." (flet ((coerce-error () - (/show0 "entering COERCE-ERROR") (error 'simple-type-error :format-control "~S can't be converted to type ~S." :format-arguments (list object output-type-spec) @@ -134,7 +133,7 @@ :expected-type output-type-spec))) (let ((type (specifier-type output-type-spec))) (cond - ((%typep object output-type-spec) + ((sb!kernel::%%typep object type) object) ((eq type *empty-type*) (coerce-error)) @@ -281,7 +280,7 @@ result)) (let ((type (specifier-type output-type-spec))) (cond - ((%typep object output-type-spec) + ((sb!kernel::%%typep object type) object) ((eq type *empty-type*) (coerce-error)) diff --git a/src/code/target-type.lisp b/src/code/target-type.lisp index dbe634e..0142f19 100644 --- a/src/code/target-type.lisp +++ b/src/code/target-type.lisp @@ -37,7 +37,7 @@ built-in-classoid cons-type #!+sb-simd-pack simd-pack-type) - (values (%typep obj type) t)) + (values (%%typep obj type) t)) (classoid (if (if (csubtypep type (specifier-type 'function)) (funcallable-instance-p obj) diff --git a/src/code/typep.lisp b/src/code/typep.lisp index 63723c7..6b8210e 100644 --- a/src/code/typep.lisp +++ b/src/code/typep.lisp @@ -22,15 +22,15 @@ ;; compared to the cost of interpreting types. (And the compiler ;; tries hard to optimize away the interpretation of types at ;; runtime, and when it succeeds, we never get here anyway.) - (%typep object type)) + (%%typep object (specifier-type type))) ;;; the actual TYPEP engine. The compiler only generates calls to this ;;; function when it can't figure out anything more intelligent to do. (defun %typep (object specifier) - (%%typep object - (if (ctype-p specifier) - specifier - (specifier-type specifier)))) + ;; Checking CTYPE-P on the specifier, as used to be done, is not right. + ;; If the specifier were a CTYPE we shouldn't have gotten here. + (%%typep object (specifier-type specifier))) + (defun %%typep (object type &optional (strict t)) (declare (type ctype type)) (etypecase type ----------------------------------------------------------------------- hooks/post-receive -- SBCL |