Am Tue, 21 Jul 2015 05:10:45 +0200 schrieb Iain Buclaw via Digitalmars-d <[email protected]>:
> On 21 Jul 2015 00:45, "Jonathan M Davis via Digitalmars-d" < > [email protected]> 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.
