Jonathan J Simpson <[EMAIL PROTECTED]> writes:

> I thought that in cmucl, structs could have unboxed slots.  I'm using 
> cmucl 18e.  

They do.

> Is it supposed to be doing this.  I've noticed other people do this
> in their code and claim that they don't see any compiler notes.
> This has been a longstanding problem for me and my attempts to write
> clean and efficient code in lisp.

These compiler notes are completely irrelevant to normal execution of
the various accessors, which will typically be inlined in your code
(and so, given a suitable consumer of their values, will not cons a
pointer).  So (+ 1.0d0 (vec4-x foo)) won't cons a pointer for the
intermediate value, but (mapc #'vec4-x list-of-foos) probably will.

The corollary to this is that the definitions of the structures (and
the accessors) don't need to be in a high speed and low safety
environment, only their uses.

Cheers,

Christophe
-- 
http://www-jcsu.jesus.cam.ac.uk/~csr21/       +44 1223 510 299/+44 7729 383 757
(set-pprint-dispatch 'number (lambda (s o) (declare (special b)) (format s b)))
(defvar b "~&Just another Lisp hacker~%")    (pprint #36rJesusCollegeCambridge)

Reply via email to