On Friday, 10 January 2014 at 20:51:19 UTC, Dwhatever wrote:
This might have been brought up before but I couldn't find any
thread about this. As things has progressed I wonder if Digital
Mars DMD should move over to use LLVM instead of its own code
generation and compiler framework.
As I see it with the small amount of contributors D-language
has, DMD will never support anything beyond x86 as there are no
resources for this. Also, why spend time on recreating the the
code generation which has already been done with LLVM? This
enables this community to focus on the language which is the
most important part as well as supporting more and future
processor targets.
You currently can't get the best of all worlds in a single
compiler.
LLVM does not support exceptions on native Win32. (Same is true
for Win64 but I hope to change this.) LLVM does not support
CodeView debug symbols. Not in the format embedded in object file
and not as PDB.
In short, you loose the complete native Windows tool chain.
With LDC, you can use other platforms. E.g. it runs on
Linux/PPC64. But you can't ignore the backend because it has bugs
and is incomplete.
E.g. on Linux/ARM I have a linker error when I enable generation
of debug symbols. LLVM for arm-apple-darwin does not support TLS.
LLVM for PPC supports only 2 of the 4 TLS models. In addition,
the assembler for PPC/PPC64 does not support all instructions I
need for std.math.
Regards,
Kai