[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: GC: cons sweeping and cons block size
From: |
Stefan Monnier |
Subject: |
Re: GC: cons sweeping and cons block size |
Date: |
Fri, 06 Jul 2007 08:48:05 -0400 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.1.50 (gnu/linux) |
> (quoting David, who was quoting Stefan)
>>>> I haven't found the time to do it, but it would be good to get rid of
>>>> this situation and always place tags in the 3 LSB bits.
> It does appear to be the default for most systems, maybe all modern ones,
> but only when we compile with GCC. Are we confident no one is using Emacs
> on systems where we use a system malloc that doesn't do 8-
> byte alignment?
No. IIRC at least Mac OS 9's malloc doesn't do 8-byte alignment.
By getting rid of the MSB tags I meant write the code to handle the case
where malloc doesn't return multiples of 8 and where we can't use GCC's
alignment attribute to force alignment on static (and/or stack structures).
> We could do a USE_LSB_TAG variant of the union, to get more address space
> back but keep the paranoid type checking capability.
If we can really get the exact same performance, maybe it's a good idea, but
since it's only really useful at compile-time, it's quite sufficient to
compile the source every once in a while with the USE_LISP_UNION_TYPE flag.
Stefan