Is it feasible to slowly rewrite a C++ codebase in D?

Laeeth Isharc laeeth at kaleidic.io
Fri Jul 13 19:53:45 UTC 2018


On Wednesday, 20 June 2018 at 18:47:10 UTC, Jordi Gutiérrez 
Hermoso wrote:
> I'm specifically thinking of the GNU Octave codebase:
>
> http://hg.savannah.gnu.org/hgweb/octave/file/@
>
> It's a fairly old and complicated C++ codebase. I would like to 
> see if I could slowly introduce some D in it, anywhere.
>
> Now, as I understand it, I would need to begin with making 
> `main` a D function, because D needs to initialise the runtime. 
> Is this correct?
>
> Another possibility might be in dlopen'able functions. 
> Currently Octave uses so-called oct functions, which are 
> nothing more than C++ object code that is dynamically loaded by 
> the interpreter at runtime. They are compiled to the Octave C++ 
> API, but we also have a Matlab-compatible C API that perhaps 
> could be more amenable for D-ification.
>
> What are your ideas?

If you would like to expose C function and type declarations to 
D, you could take a look at DPP, which allows you to just 
#include a C header.  If you encounter a bug, please file an 
issue and in time we will fix it.

Does not yet work for C++ except in some cases.

https://github.com/atilaneves/dpp


More information about the Digitalmars-d-learn mailing list