--- Christophe Rhodes <[EMAIL PROTECTED]> wrote:

> That's right. The result will have to be boxed to be
> stored in
> hash-code, since it can be accessed from anywhere,
> and must look like a
> lisp object.

Hm.  Ok, but presumably, the type declaration is
visible from anywhere that the variable is also
visible from? 


> 
> If you require no boxing, you could store your
> hash-code in a
> specialized vector of length one [created by
> (MAKE-ARRAY 1 :ELEMENT-TYPE
> '(UNSIGNED-BYTE 32))];

I thought of that, or using a struct, but that seems
clunky to say the least.  Now, i found that, unless
i've messed up again, that even 

(let ((foo 0))
  (declare (type hash-type foo))
  (defun bar(x)
    (declare (type hash-type x))
    (setf foo (logxor foo x))))

Still seems to cause boxing, except now it's
value-set-cell.  

I can't disassemble bar now, either. 

Part of the whole point of my little project is to
prove lisp can be as fast a C, so this isn't helping..
;) 


dave



__________________________________________________
Do you Yahoo!?
Y! Web Hosting - Let the expert host your web site
http://webhosting.yahoo.com/

Reply via email to