dmd 2.068, 2.069, 2.0xx Evil Plan going forward

Johannes Pfau via Digitalmars-d digitalmars-d at puremagic.com
Tue Jul 21 00:47:32 PDT 2015


Am Tue, 21 Jul 2015 05:10:45 +0200
schrieb Iain Buclaw via Digitalmars-d <digitalmars-d at puremagic.com>:

> On 21 Jul 2015 00:45, "Jonathan M Davis via Digitalmars-d" <
> digitalmars-d at puremagic.com> wrote:
> >
> > On Monday, 20 July 2015 at 22:26:53 UTC, rsw0x wrote:
> >>
> >> because versions are released with GDC and LDC lagging 2-3 versions
> behind, when DMD is unusable for production quality codegen.
> >>
> >> 2.068 is almost out and GDC and LDC both only support 2.066. Until
> >> D
> decides to adopt either GDC or LDC as a real backend, this will never
> be fixed.
> >
> >
> > Unifying the frontend will go a long way towards fixing this
> > problem, and
> Daniel is working on that right now. He's aiming to make it so that
> the frontend is identical across all three compilers so that the ldc
> and gdc developers don't have to fork it like they do now.
> >
> 
> Hardly. All he can take credit for is removing the virtual method
> interface and replacing them with visitors (which can be described as
> no small job, but benefitted more towards ddmd).
> 
> Everything else has been a slow, tedious three year job from yours
> truly to remove all x86-isms and platform-specific handling out of
> the frontend.
> 
> There are a more than a few last leg things to be done, some are in
> PRs raised by me, but or not being looked at, or understood properly.
> 
> Example, I moved underscore prefixing hacks for OSX out of the
> frontend (every single one broke GDC ABI in one way or another) and
> into Target. Then Walter slams it for being pointless refactoring.
> 
> Target is a concept raised at DConf 2013 where I bounced the idea
> that all uses of global.params.isXXX should be removed from the
> frontend as all are there to only address a perk of DMD when
> targeting that platform.  The end goal then becomes to make it so
> that instead of asking 'Is my target OSX?', what the frontend should
> be asking is 'Does the target add prefixes to symbols?'
> 
> I shouldn't have to explain why the latter benefits all.
> 
> Iain
> 

That also summarizes my biggest doubts regarding frontend unification:
We have quite some DMD-backend-specific stuff in the shared frontend
(profiler, ...) and nobody complained about that. OTOH adding GDC
specific stuff to the frontend (e.g. GDC inline ASM pull #4472) is
always met with scepticism.

Such gdc-specific frontend changes are fortunately rare. But with our
own frontend fork we can simply commit them. With a unified frontend
we'll have to spent hours convincing dmd devs that we need these
changes for GDC.


More information about the Digitalmars-d mailing list