What about GDC and LDC after DMD becomes D?

Kai Nacke via Digitalmars-d digitalmars-d at puremagic.com
Wed Jul 22 08:11:56 PDT 2015


On Wednesday, 22 July 2015 at 11:42:24 UTC, Shriramana Sharma 
wrote:
> Once the front end of DMD becomes fully D, I read that the 
> backend will also become D, but then what will happen to GDC 
> and LDC whose backends are C++ IIUC?

Hi Shriramana!

My current *plan A* for LDC is:

Prerequisite: Enable LLVM Cpp backend
For release: Compile DDMD frontend to C++ and distribute D and 
C++ version of DDMD.
Bootstrap process:
- Create stage1 ldc compiler from C++ version of frontend.
- Use stage1 ldc to compile stage2 ldc compiler from D version of 
frontend.
- For verification it could be useful to create a stage3 ldc 
compiler using the stage2 compiler.

Advantage is that you only need a C/C++ compiler for bootstrap. 
Drawback is compile time.

I have not yet tested this approach. Therefore *plan B*:

Use a previous version of LDC to compile the current version. 
This will work as long as the used language in the frontend is 
stable.

The non-frontend parts of LDC might slowly migrate from C++ to D. 
The pain point here is that LDC makes use of the LLVM C++ API 
which is really superior to the C API.

Regards,
Kai


More information about the Digitalmars-d mailing list