On Tuesday, 11 April 2017 at 00:46:51 UTC, Petar Kirov
[ZombineDev] wrote:
On Sunday, 9 April 2017 at 03:26:14 UTC, Walter Bright wrote:
My previous version did not survive implementation. Here's the
revised version. I have submitted it as a DIP, and there's a
trial implementation up:
[...]
Instead of adding new runtime helper functions like
_d_newThrowable and _d_delThrowable, can we leverage the
existing (though deprecated) support for class (de)allocators
and essentially divide the _d_delThrowable implementation
between the destructor and the deallocator member function?
This will go hand in hand with the work that Lucia has been
doing on making the runtime more generic and reducing the
number of special cases in the compiler [1] [2] [3]. Obviously
you have done the work already, but in theory at least, with my
proposal users should be able to override the memory allocation
method in derived exception classes, without any changes to
druntime.
[1]: https://github.com/dlang/druntime/pull/1781
[2]: https://github.com/dlang/druntime/pull/1792
[3]: http://dconf.org/2017/talks/cojocaru.html
Apart from that the proposal seems fine to me. I would much
prefer a more general/principled solution to the problem like the
one deadalnix proposes, but that shouldn't stop us from
experimenting with an ad hoc approach in the short-term, while a
more solid solution is developed.