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