Inference of Scoped Destruction

Nordlöw per.nordlow at gmail.com
Thu Nov 30 17:24:14 UTC 2017


On Thursday, 30 November 2017 at 16:50:02 UTC, Stefan Koch wrote:
> On Thursday, 30 November 2017 at 16:31:25 UTC, Nordlöw wrote:
>> Are there any plans to D compilers to use recent DIP-1000 to 
>> infer scoped destruction of GC-allocated data such as in the 
>> following case:
>>
>> T sum(T)(in T[] x) // x cannot escape scope of `sum`
>> {
>>     /// calculate and return sum of `x` ...
>> }
>>
>> double f(size_t n)
>> {
>>     auto x = new int[n]; // scoped (deallocation) should be 
>> inferred
>>     auto y = sum(x); // cannot alias `x`
>>     return y;
>> }
>>
>> I believe this would make D more competitive against Rust's 
>> and C++'s (more) deterministic RAII memory management.
>>
>> How would this interact with explicit scope-qualification of 
>> `x`?
>
> The problem with this; as with most types of inference is the 
> time it can take.
> And the number of false negatives.

Is there a formal definition of the complexity of such an 
inference?


More information about the Digitalmars-d mailing list