Subject: Re: How much tuning does regular lisp compilers do?
From: rpw3@rpw3.org (Rob Warnock)
Date: Sun, 31 Aug 2008 07:02:41 -0500
Newsgroups: comp.lang.lisp
Message-ID: <s72dnZ9H2JT8FSfVnZ2dnUVZ_rTinZ2d@speakeasy.net>
Thomas F. Burdick <tburdick@gmail.com> 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.

"Never mind..."


-Rob

-----
Rob Warnock			<rpw3@rpw3.org>
627 26th Avenue			<URL:http://rpw3.org/>
San Mateo, CA 94403		(650)572-2607