[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: cell
From: |
Martin Grabmueller |
Subject: |
Re: cell |
Date: |
Mon, 23 Apr 2001 18:37:25 +0200 (MET DST) |
> From: Masao Uebayashi <address@hidden>
> Date: Tue, 24 Apr 2001 01:04:16 +0900
>
> Hmm. I imagined, by reading the section 33.2.2 of the reference, that
> `a table of heap segment' is throughly aligned by two words like this:
>
> a table of heap segment
> --------------------------------
> | |
> | |_:_|_:_| |
> | |_:_|_:_| |
> | |_:_|_:_| |
> | |
> | |___|___| <--- a cell |
> | |
> | |___|___| |
> | |___|_----> (...) |
> | |___|___| |
> | |___|_----------> (...)|
> | |___|___| |
> | |___|___| |
> | |_:_|_:_| |
> | |_:_|_:_| |
> | |_:_|_:_| |
> | --> <-- |
> | word (usually 32bit) |
> | |
> --------------------------------
>
> If four-word cells were introduced, all the tables are aligned by four
> words?
No, Guile actually maintains two different kinds of heap segments, one
like you sketched above, and the other like this:
.
.
.
|__|__|__|__|
|__|__|__|__|
|__|__|__|__|
|__|__|__|__| <- a double cell
|__|__|__|__|
.
.
.
But, as already mentioned: this is an optimization and only important
if you are interested in Guile internals.
If you want to know more, you can have a look at libguile/gc.c, where
all of this is implemented.
Regards,
'martin
- cell, Masao Uebayashi, 2001/04/22
- Re: cell, Jeff Read, 2001/04/22
- Re: cell, Masao Uebayashi, 2001/04/23
- Re: cell, Martin Grabmueller, 2001/04/23
- Re: cell, Michael Livshin, 2001/04/23
- Re: cell, Masao Uebayashi, 2001/04/23
- Re: cell, Neil Jerram, 2001/04/23
- Re: cell, Neil W. Van Dyke, 2001/04/25
- Re: cell, Masao Uebayashi, 2001/04/25
- Re: cell, Masao Uebayashi, 2001/04/23
- Re: cell,
Martin Grabmueller <=