Safe and C++

Ola Fosheim Grøstad ola.fosheim.grostad at gmail.com
Wed Nov 27 09:20:14 UTC 2019


My understanding is that the current two big goals for D is:

1. To have 100% memory safe code as the default.

2. Being able to use large C++ frameworks.


So, these would be two major features, but how are they going to 
interoperate?

Right now ownership/borrowing seems to be discussed entirely in a 
pure D context, but that isn't very helpful if you want to use a 
C++ framework to build an application in D.


So, basically what D needs is a way to annotate C++ interfaces 
with ownership-information so that you can do static analysis on 
safe D code that calls into C++ frameworks and objects.

Static analysis requires knowledge of whether a C++ object is 
reference counted, owning, borrowing and what lifetime guarantees 
the safe D code has to obey by.


Seems to me that working on ownership for D won't help much. You 
need something more abstract that also works for existing C++ 
code.

If not, you end up with 2 languages:

1. An unsafe one for building with C++ frameworks.
2. A safe one for primarily building with D frameworks.

Which seems a bit pointless, considering all the work involved.



More information about the Digitalmars-d mailing list