Re: More on Lisp structures performance
"Tim Bradshaw (as tfb at cley dot com)" <[email protected]>
| Newsgroups | gmane.lisp.lispworks.general |
|---|---|
| Message-ID | <[email protected]> |
On 24 Jan 2026, at 16:00, Yuri Davidovsky <[email protected]> wrote: > > It would make sense for cons objects, but does it apply to immediate types? And if so, how do you load 128 bit immediate types into 64 bit registers? If the immediates remain to be 64 bits in size, then with 128 bit addressing we are wasting half of the memory that we allocated. I'm not sure what you mean. An immediate (aka unboxed) object is one whose value lives in what would normally be the pointer. So on a 64-bit implementation no immediate object's value takes up more than (64 - b) bits, where t is the number of tag bits. For SBCL b is 1 (for fixnums) or 4 (everything else). On LW b is either 3 or 4 and I am confused about which. This is just for 'speakable' objects: there usually are various 'unspeakable' objects which are unboxed versions of objects which normally are boxed. Examples include double floats and 64-bit integers and so forth. Those objects can't be spoken of, or rather speaking of them causes them to become boxed. You'll notice both LW and SBCL muttering about boxing doubles for return values which are doubles (which is 'speaking of' the object). If you have vast numbers of boxed objects which are both very small and an odd number of words in size then yes, you'll waste a lot of space. --tim _______________________________________________ Lisp Hug - the mailing list for LispWorks users [email protected] http://www.lispworks.com/support/lisp-hug.html