Re: Unboxed structures (yes, again, only this time for real)

"Tim Bradshaw (as tfb at cley dot com)" <[email protected]>
Newsgroups gmane.lisp.lispworks.general
Message-ID <[email protected]>
On 16 Jan 2026, at 18:47, Yuri Davidovsky <[email protected]> wrote:
> 
> Why do we have two words for a header in structures?

I don't know: that's really an implementation detail.  But perhaps a pointer to the type / class, and then perhaps the slot count.  For an implementation like LW where slots are always boxed the latter is enough for the GC to trace the object.  But I don't know.
> 
> However, given that the values in the struct fields weren’t raw, why are we not seeing the tagging/detagging overhead compared to the serialised raw structs? That would be less than what it is for boxed values, but still.

Because it's tiny and overlapped with other operations is my guess ('fetch the word into a float register' can happen speculatively while 'check it's a float' is happening).  It's been a long time since other than people intimately familiar with a particular implementation of an architecture could reliably predict timings for it, I think.

--tim


_______________________________________________
Lisp Hug - the mailing list for LispWorks users
[email protected]
http://www.lispworks.com/support/lisp-hug.html
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.