std.allocator ready for some abuse
Chad Joan
chadjoan at gmail.com
Sat Oct 26 00:51:26 PDT 2013
On Thursday, 24 October 2013 at 19:53:56 UTC, Andrei Alexandrescu
wrote:
> Hello,
>
>
> ... awesome stuff ...
>
> Please destroy! I've literally sweat as I'm sending this :o).
>
>
> Andrei
I like it a lot so far.
I was really worried about being able to dynamically dispatch to
an allocator determined at a previous place in the call stack,
and it seems you're all over it with CAllocator. Hell yeah!
I have an editing suggestion for the CAllocator comment:
Instead of
"Implementation of CAllocator using Allocator. [...]"
I suggest
"Implements CAllocator using the given Allocator. [...]"
The current one read strangely to me at first, and I had to
re-read it several times and notice that "Allocator" referred to
the template parameter.
I agree with others that say that the name CAllocator is too
ambiguous or vague. When I scanned through the allocators, I
initially dismissed it because I though it was a proxy for the
system's underlying C allocator, with Mallocator being a D-based
optimized reimplementation of the C allocator. Reading further
clarified this, but it does probably harm skimming and searching.
I suggest an alternative name for CAllocator:
DispatchingAllocator. I believe this may represent what it does:
dispatch allocation to another allocator that is behind a
curtain. Something like AbstractAllocator might work too, but
still seems slightly ambiguous to me (i.e. abstract in what
sense?).
I just hope that the future "top" allocator that handles
language-builtin allocations will be one that can maintain a
stack of allocators and push/pop the current default allocator,
as well as prevent or redirect allocator choice made within calls
to 3rd party libraries (assuming the libraries are written in D,
of course).
More information about the Digitalmars-d
mailing list