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


Reply via email to