Hello, When I compile the following function I get 6 notes that I do not understand. It seems that "of-type" is not understood. What am I missing ?
(defun test ()
(declare (optimize (speed 3)))
(let ((y 0))
(declare (type (integer 0 100) y))
(loop for i of-type (integer 0 100) below 100
do (setq y i))))
Thibault
---------------------------------------
;;;Compiling defun test
; Converted TEST.
; Compiling LAMBDA NIL:
; In: DEFUN TEST
; (LOOP FOR I OF-TYPE (INTEGER 0 100) ...)
; --> BLOCK LET ANSI-LOOP::LOOP-BODY TAGBODY ANSI-LOOP::LOOP-REALLY-DESETQ SETQ
; --> 1+
; ==>
; (+ I 1)
; Note: Unable to optimize due to type uncertainty:
; The first argument is a NUMBER, not a FLOAT.
;
; Note: Unable to optimize due to type uncertainty:
; The first argument is a NUMBER, not a (COMPLEX SINGLE-FLOAT).
;
; Note: Unable to optimize due to type uncertainty:
; The first argument is a NUMBER, not a (COMPLEX DOUBLE-FLOAT).
;
; --> BLOCK LET ANSI-LOOP::LOOP-BODY TAGBODY WHEN COND IF >= IF
; ==>
; (< I '100)
; Note: Unable to optimize due to type uncertainty:
; The first argument is a REAL, not a FLOAT.
;
; --> BLOCK LET ANSI-LOOP::LOOP-BODY TAGBODY ANSI-LOOP::LOOP-REALLY-DESETQ SETQ
; --> 1+
; ==>
; (+ I 1)
; Note: Forced to do GENERIC-+ (cost 10).
; Unable to do inline fixnum arithmetic (cost 1) because:
; The first argument is a NUMBER, not a FIXNUM.
; The result is a NUMBER, not a FIXNUM.
; Unable to do inline fixnum arithmetic (cost 2) because:
; The first argument is a NUMBER, not a FIXNUM.
; The result is a NUMBER, not a FIXNUM.
; etc.
;
--
Thibault Langlois <[EMAIL PROTECTED]>
FCUL/DI
