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?