Okay. Onto the next item in the review queue. I'm going to be the review 
manager this time around, and we're going to be reviewing dsimcha's region 
allocator. The review starts now and will end on 2011-09-21 at midnight in UTC 
(so about 2 weeks from now, when the 21st begins). Assuming that we're ready 
to vote at that point, I'll start a thread for voting for inclusion in Phobos, 
and the vote will last a week. If it's not ready to be voted on for some 
reason (such as dsimcha needing to go back and make a bunch of changes that 
are going to need to be reviewed), then voting will be postponed and it'll be 
put back in the review queue once it's ready for review again.

Docs:

http://cis.jhu.edu/~dsimcha/d/phobos/std_regionallocator.html

Code:

https://github.com/dsimcha/TempAlloc

Description (from docs):

RegionAllocator is a memory allocator based on segmented stacks. A 
segmented stack is similar to a regular stack in that memory is 
allocated and freed in last in, first out order. When memory is 
requested from a segmented stack, it first checks whether enough space 
is available in the current segment, and if so increments the stack 
pointer and returns. If not, a new segment is allocated. When memory is 
freed, the stack pointer is decremented. If the last segment is no 
longer in use, it may be returned to where it was allocated from or 
retained for future use.


Some additional issues that dsimcha wants to mention for the review:

1.  This is both a proposal for RegionAllocator and a proposal for a more 
general allocator API in Phobos.  The allocator API will be a structural 
interface that includes the intersection of gcallocator and regionallocator 
functionality.  I don't have a more precise definition yet.  Hopefully the 
review process will hammer out whatever ambiguities remain.

2.  Should we put this stuff in a std.allocators package, in a single
std.allocators module, or something else?

3.  We definitely want a reap (combination region and heap) eventually, though 
I don't have one yet.  I want RegionAllocator to be reviewed for anything that 
would make it unnecessarily hard to write other allocators on top of it, most
importantly reaps but also free lists, etc.


This is the first code to be reviewed which implements Andrei's proposed 
allocator API, and several projects (including the GSoC projects) rely on it, 
so it is critical that this code get a thorough review. It will have a large 
impact on D for years to come. So, review away!

- Jonathan M Davis

Reply via email to