On Wednesday, 23 May 2018 at 01:59:50 UTC, sarn wrote:
(I'm referring to Scott's 2014 DConf talk: https://www.youtube.com/watch?v=KAWA1DuvCnQ)

I was actually preparing a DIP about this when Manu posted to the forums about his own related problems with C++ interop.

I traced a bug in some of my D code to my own misunderstanding of how D's destructors actually work. So I did some research and discovered a bunch of edge cases with using __dtor, __xdtor and hasElaborateDestructor. I tried reviewing the packages on code.dlang.org and some elsewhere (thankfully only about 1% of D packages use these functions directly) and it turns out I'm not the only one confused. I don't have time to file bug reports for every package, so, if you're responsible for code that handles destructors manually, please do a review. There's a *lot* of buggy code out there.

I'm starting this thread to talk about ways to make things better, but first the bad news. Let's use this idiomatic code as an example of typical bugs:

In the context of your blog post at https://theartofmachinery.com/2018/05/27/cpp_classes_in_betterc.html, I'm wondering if the changes in 2.081 help matters at all: I'm wondering if any of the changes in 2.081 improves the situation here: e.g. https://dlang.org/changelog/2.081.0.html#cpp_destroy

Mike

Reply via email to