Compiler interoperability

Chris Katko ckatko at gmail.com
Fri Jul 7 08:19:28 UTC 2023


For a specific system (Linux, e.g):

What is the level of interoperability between the different D 
compilers; DMD, LDC, and GDC?

It appears each one has different benefits, and, different 
experimental features. Link-time optimization for LDC. GDC 
offering static analysis. I imagine there are more.

If I compile a D program with say, DMD, will every D library I 
include also have to use that same compiler (and compiler 
version) from scratch and need recompiled? Or is there a 
pre-defined ABI that makes everything compatible? If I use shared 
libraries instead of static linking, does the situation change?

Additionally, how do the debuggers GDB vs LLDB behave when 
compiled using a different brand D compiler? (e.g. demangling)

I have my own experiences but I'm not sure if there's clear cut 
"yes, definitely it's [this case]." answers out there.



More information about the Digitalmars-d-learn mailing list