On Monday, 17 February 2020 at 03:07:33 UTC, Adam D. Ruppe wrote:
On Monday, 17 February 2020 at 02:55:56 UTC, Curious wrote:
Note the ending: "The same front-end code is used by DMD, GDC and LDC."

But what the meaning of this sentence?

They literally share like 97% of the code.

Looking over Github: https://github.com/dlang/ I see DMD, Phobos and so on, but no separated project called Front-End.

Compare dmd:
https://github.com/dlang/dmd/

to ldc:
https://github.com/ldc-developers/ldc/

dmd has a `src` folder. ldc has a `dmd` folder. inside those you'll find most the content is identical - written in D btw.

gdc is a little different because it is based on an older version of dmd when it was written in C++ before it was ported to D. it will be moving to the D version probably later this year too, but it had to be C++ at first for gcc inclusion. But even so, it is still almost all the same code and even has some patches from new D versions ported back to c++ for it.


But basically all three compilers are branches of the same codebase with most the same patches applied going forward so they share the vast, vast majority of frontend code.

Hmm I see now, so DMD compiler has both Front-End and Back-End, the LDC in this case is getting only the Front-End part from DMD project.

So since the Front-End written in D and the GDC is still the older version (C++), then they need to replicate the new features from D to C++. Well this seems a pain.

By the way since the Front-End is in D, so it's occurring bootstrapping, interesting.

Thanks.

Reply via email to