On Tuesday, 4 April 2017 at 00:45:08 UTC, Moritz Maxeiner wrote:
AFAICT this solution will end up with everyone always calling theAllocator.dispose when catching from Phobos.

Yes, because you can no longer assume that the GC is being used, as all current Phobos code does.

Here's the thing, this problem misses the forrest for the trees. Focusing on exceptions is not seeing the broader problem of the user being at the mercy of Phobos devs with their choices of allocations. Exceptions are one aspect of the problem of allocation in a standard library with multiple allocation methods available. It's only as a matter of convenience that we've been using the GC for everything when stack allocation isn't enough. If we want to compete with Rust and C++* need a clean way to let the user control memory throughout their program.

As already pointed out, this is one ad-hoc solution to a specific problem rather than a holistic solution.


* to be honest, I would be fine if it was concluded that this isn't what we want to compete with. Java and C# didn't mostly replace C++ by being "C++ but slightly different". They won because they were something different that allowed you to get shit done. What does D want to be, a better C++ or a better language?

I don't think it's possible to have a clean language + std library and have the same amount of power as C++, the GC is just to convenient and takes off so much cognitive load. If we want to compete with C++ with Phobos, Phobos will need to become more ugly but more flexible.

Reply via email to