1 Jan 2009 15:48
compiler-subtypep vs subtypep
Erik Huelsmann <ehuels <at> gmail.com>
2009-01-01 14:48:44 GMT
2009-01-01 14:48:44 GMT
We seem to have an issue with the compiler using compiler-types -
which don't seem compatible with SUBTYPE, but need COMPILER-SUBTYPE -,
however it uses SUBTYPEP to check for subtypes in many places.
For an example, compilation of this code (taken from
CMUCL-TYPE-PROP.29 ANSI test):
(compile nil '(lambda (p1)
(declare (optimize (speed 2) (safety 1) (debug 0) (space 3))
(type (integer -4194320 11531) p1))
(- (the (integer -6253866924 34530147) p1))))
Produces this output (after optimization):
0 ALOAD_1 NIL NIL NIL
1 INSTANCEOF ("org/armedbear/lisp/Fixnum") NIL NIL
2 IFNE (#:G67) NIL NIL
3 ALOAD_1 NIL NIL NIL
4 GETSTATIC ("org/armedbear/lisp/Symbol" "FIXNUM"
"Lorg/armedbear/lisp/Symbol;") NIL NIL
5 INVOKESTATIC ("org/armedbear/lisp/Lisp" "type_error"
"(Lorg/armedbear/lisp/LispObject;Lorg/armedbear/lisp/LispObject;)Lorg/armedbear/lisp/LispObject;")
-1 NIL
6 POP NIL NIL NIL
7 LABEL (#:G67) NIL NIL
8 ALOAD_1 NIL NIL NIL
9 CHECKCAST ("org/armedbear/lisp/Fixnum") NIL NIL
10 GETFIELD ("org/armedbear/lisp/Fixnum" "value" "I") NIL NIL
11 ISTORE (1) NIL NIL
12 NEW ("org/armedbear/lisp/Fixnum") NIL NIL
(Continue reading)
RSS Feed