GC blessed for C++ (again)

Jack Stouffer via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Tue Apr 11 12:21:05 PDT 2017


On Tuesday, 11 April 2017 at 16:50:20 UTC, jmh530 wrote:
> Is there a non-breaking way to do it that would increase the 
> amount of flexibility while keeping the current behavior as a 
> default? For instance, the equivalent of using 
> std.experimental.allocator so that a user could switch between 
> the default being GCAllocator or Mallocator, or something like 
> that...

 From what I understand, the plan has always been to start to 
integrate std.experimental.allocator into Phobos when it 
stabilizes. There are some questions though:

1. How is this going to be done? Do we have the functions in 
Phobos allocate with theAllocator? Or, do we pass in an allocator 
type via template parameter? Or, do we pass in an allocator 
instance via function parameter? Each solution has it's own pros 
and cons.

2. How do you make it @safe? For the GC allocator, you can make 
allocation @safe, but not deallocation. So do you special case 
GCAllocator in Phobos code to not call GCAllocator.deallocate() 
and just let the GC collect?

3. How will @safe ref-counting play in with this? Andrei has his 
sights set on putting all strings in their own ref-counted store 
in order to make them @safe @nogc. Is RC going to be it's own 
allocator?

I've never seen comprehensive plans or ideas about allocator 
integration. I've heard rumblings about a collections library 
that supposed to use it, but never seen anything.


More information about the Digitalmars-d-announce mailing list