GDC review process.

Iain Buclaw ibuclaw at ubuntu.com
Wed Jun 20 06:31:21 PDT 2012


On 20 June 2012 14:01, Joseph Rushton Wakeling
<joseph.wakeling at webdrake.net> wrote:
> On 19/06/12 19:19, Iain Buclaw wrote:
>>
>> Had round one of the code review process, so I'm going to post the main
>> issues
>> here that most affect D users / the platforms they want to run on / the
>> compiler
>> version they want to use.
>
>
> A somewhat different take on these issues -- we've several times now had
> discussions over the backend of DMD, and the whole "reference implementation
> not entirely free/open source" issue.  One of the points made in those
> discussions is that the issue is somewhat moot given that the real
> "reference implementation" is the frontend, and this already has at least 2
> free backends (GCC and LLVM).
>
> However, that point stops being moot the moment there are compiler-specific
> constraints that mean that code that will compile with DMD won't compile
> with GDC, or vice-versa.  If I can't use inline asm with GDC, or I have to
> go about it in a different way to DMD, then we can hardly say that GDC
> reflects the reference implementation.
>
> It seems to me that guaranteeing equal capabilities between DMD and GDC
> should be a "red line" in determining what changes or deletions are
> acceptable or not.

Unfortunately this is a red line I am going to cross.  Haven't yet
pushed anything yet, but feel free to visualise:

I have altered the following to the gdc build for all gdc-specific
sources (which includes d inline assembler implementation)

- GCC system headers are included first and foremost before all other headers.
- Now compiles with macro -DIN_GCC_FRONTEND turned on


Result:  GDC now fails to compile as we pull in many middle-end and
backend headers that have been POISONED for GCC frontends to use.
Apparently I somehow bypassed this.  :o)

Fix: Remove all included headers that are poisoned - but wait! - now D
inline assembler is missing crucial key elements of what made it just
about work in GDC.


Hands are tied, sorry.

-- 
Iain Buclaw

*(p < e ? p++ : p) = (c & 0x0f) + '0';


More information about the Digitalmars-d mailing list