BigInt -- a challenge for std.allocator
Kagamin
spam at here.lot
Wed Oct 30 10:07:31 PDT 2013
On Tuesday, 29 October 2013 at 21:59:38 UTC, Joseph Rushton
Wakeling wrote:
> On 29/10/13 15:58, Dmitry Olshansky wrote:
>> Can't it use ref-counted COW? Then since there is only 1
>> reference to the
>> original block it may mutate it in-place else it creates new
>> chunk with refs=1
>> and decrements the original count. Maybe I'm missing something
>> but it shouldn't
>> be that hard.
>
> Yes, that's pretty much what I was thinking of. The question
> is how to implement it in terms of std.allocator -- or is that
> the wrong base to build ref=counted memory upon?
Implement a pool of bigints as an allocator: when refcount
reaches zero, return the bigint buffer to the pool - a simple
bump the pointer algorithm, when you need a new buffer, request
it from the pool. A pool is a stack with fixed capacity, and
buffers go in and out.
More information about the Digitalmars-d
mailing list