Thomas F. Burdick <firstname.lastname@example.org> wrote:
| > You don't want to have to force conses to 16-byte boundaries,
| > since on a 32-bit machine that would *double* the space taken
| > by them [though on 64-bit it's a no-brainer], so you'd have
| > to do some sort of BiBoP-like (or at least segregated) allocation
| > in the GC. ...
| I think you're making this harder than it has to be. It would be
| enough if the GC knew that code vectors need to be aligned to some
| coarser granularity than other objects. If it needs to, it would waste
| an extra 8 bytes when moving a code vector, but that's not a big deal
| -- conses would stay unaffected, and it wouldn't be a huge, pervasive
| change like partitioning the heap.
*D'Oh!!* Of course, how silly of me. You're right, of course.
Forcing alignment of just the code blocks would be "good enough".
And given the average size of a code block, the amount of wasted
space would be miniscule on average.
Rob Warnock <email@example.com>
627 26th Avenue <URL:http://rpw3.org/>
San Mateo, CA 94403 (650)572-2607