Allocator-aware @safe reference counting is still not possible
    Paul Backus 
    snarwin at gmail.com
       
    Fri Apr 14 15:23:58 UTC 2023
    
    
  
On Friday, 14 April 2023 at 13:42:15 UTC, Atila Neves wrote:
> On Sunday, 25 September 2022 at 12:03:08 UTC, Paul Backus wrote:
>> D has made a lot of progress recently on memory safety with 
>> `-preview=dip1000`, thanks in no small part to [the work of 
>> Dennis Korpel][1]. This progress has in turn enabled the 
>> creation of [`SafeRefCounted`][2] by Ate Eskola, which will 
>> hopefully be available in the next release of Phobos.
>>
>> [...]
>
> Couldn't it be `@safe` iff the particular allocator's 
> deallocate is `@safe` (or missing)?
Yes. The obvious follow-up question is, "what does it take to 
make a `deallocate` method `@safe`?" And the answer is: it takes 
`isolated`, or some other way to restrict aliasing in `@safe` 
code.
As Timon [1] and others [2][3] has helpfully explained, now that 
we have `@system` variables from DIP 1035, it is possible to do 
this without adding new language features, although the UX is not 
ideal.
So, the current next step on the TODO list is to design a new 
allocator API that takes advantage of these techniques to make 
`deallocate` `@safe`.
[1] https://forum.dlang.org/post/tr9j1h$1fvd$1@digitalmars.com
[2] 
https://forum.dlang.org/post/xggosoodlcegitocruwf@forum.dlang.org
[3] 
https://forum.dlang.org/post/gdkikaklqyvxdyklvmug@forum.dlang.org
    
    
More information about the Digitalmars-d
mailing list