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

Reply via email to