Difference between revisions of "Review/std.experimental.allocator"
m (→Current state) |
|||
Line 2: | Line 2: | ||
[http://erdani.com/d/phobos-prerelease/std_experimental_allocator.html std.experimental.allocator] is a package by Andrei Alexandrescu that standard API for allocators as well as implementation for some of common ones. | [http://erdani.com/d/phobos-prerelease/std_experimental_allocator.html std.experimental.allocator] is a package by Andrei Alexandrescu that standard API for allocators as well as implementation for some of common ones. | ||
+ | |||
+ | What std.experimental.allocator is: | ||
+ | |||
+ | * A hookable interface for allocating and releasing memory. | ||
+ | * A systematic and hierarchical approach to global allocation, spanning the stack, thread-local storage, and process-level memory. | ||
+ | * A collection of quality implementations of typical memory allocation strategies, including free lists, regions, bitmapped blocks, bucketized size-specialized allocators, and more. | ||
+ | * A framework for easy assembly and experimentation with custom allocation strategies. | ||
+ | * An integration of types within the allocation strategy, allowing concrete allocators to exploit various characteristics of the types they are allocating. | ||
+ | |||
+ | What std.experimental.allocator is not: | ||
+ | |||
+ | * An abstraction of lifetime management, e.g. transparently choosing between tracing vs. reference counting. | ||
+ | * An abstraction of notions such as "address", "pointer", and "reference". | ||
=== Related links === | === Related links === |
Revision as of 07:38, 12 June 2015
Description
std.experimental.allocator is a package by Andrei Alexandrescu that standard API for allocators as well as implementation for some of common ones.
What std.experimental.allocator is:
- A hookable interface for allocating and releasing memory.
- A systematic and hierarchical approach to global allocation, spanning the stack, thread-local storage, and process-level memory.
- A collection of quality implementations of typical memory allocation strategies, including free lists, regions, bitmapped blocks, bucketized size-specialized allocators, and more.
- A framework for easy assembly and experimentation with custom allocation strategies.
- An integration of types within the allocation strategy, allowing concrete allocators to exploit various characteristics of the types they are allocating.
What std.experimental.allocator is not:
- An abstraction of lifetime management, e.g. transparently choosing between tracing vs. reference counting.
- An abstraction of notions such as "address", "pointer", and "reference".
Related links
Current state
Formal review is about to start soon