On 20/06/12 18:10, David Nadlinger wrote:
I am not too sure about that: In my opinion, your description of the problem
would be accurate if some compiler implemented asm {}, but with a different
syntax or different semantics. But GDC simply does not (resp. will not)
implement D-style inline assembly at all. From my point of view, this is not
necessarily a problem spec-wise, as it is not guaranteed to be available – if it
was, there would be no reason to have D_InlineAsm_X86 at all.
Reading http://dlang.org/iasm.html I don't have the impression that the inline
assembler is an optional part of the D spec or not guaranteed to be available --
it's very deliberately intended to be there.
Needless to say, inline assembly is sometimes a very convenient feature to have,
but if it is the only issue stopping GDC from being merged to mainline GCC, I'd
say the only sensible choice is to yank it, at least it for the time being. If,
at a later point, somebody comes up with a clever way to implement it given the
constraints imposed by the GCC infrastructure, or manages to convince the GCC
maintainers to accept the »dirty« solution, it could still be added in again.
For sure it make sense as a short-term compromise, but I don't see how GDC can
meet the D specifications without implementing the inline assembler at some
point in the (hopefully near) future. When you consider that GDC is the best
bet for being able to compile D on ARM processors, and a major application here
is embedded systems, it really seems necessary to plan to have this
functionality in there.