Ray

>Because the function make-vec4 wants boxed floats.  Hence 4 notes.
>
>
>I bet there are no notes for this function:
>
>(defun foobar3 (x y z w)
>  (declare (double-float x y z w))
>  (make-vec4 :x x :y y :z z :w w))
>
>Why?  Because x, y, z, w are alread boxed, so the boxed value is
>passed to make-vec4 directly.
>
>Ray
>
>
>  
>
So, all arguments to functions have to be boxed except for in certain 
special cases like #'+?  Is there any way to find out, other than 
testing it, which functions are optimized in this way(open-coded?)?  Can 
block compilation mitigate my problem, or is that only useful for 
keeping return values unboxed?

I think I just filled in a fundamental gap in my understanding here.  I 
thought that "declare" statements in a function would alleviate the need 
for boxing its arguments, but apparently this is not the case.  

Thanks a lot for everyone's help.


Jonathan



Reply via email to