dmd 2.068, 2.069, 2.0xx Evil Plan going forward

Jonathan M Davis via Digitalmars-d digitalmars-d at puremagic.com
Mon Jul 20 22:21:28 PDT 2015


On Tuesday, 21 July 2015 at 03:19:16 UTC, Iain Buclaw wrote:
> 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.

Sorry. I was not trying to take credit away from you or anyone 
else. I just know that Daniel considers getting the frontend to 
the point that it's identical across all three compilers to be 
the top priority, and as of dconf at least, that's what he was 
focusing on. I mentioned him, because I knew he was working on it.

I'm certainly grateful for the stuff that you've done, though 
admittedly, I don't keep up with what's happening with any of the 
compilers very well, so you're bound to have done a lot more than 
I'm aware of.

> 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.

Yeah. Walter seems surprisingly resistant to making changes that 
make the frontend identical across the three compilers. David and 
Daniel were arguing with him over something related to that at 
dconf and were having a hard time getting him to even consider it 
(though in that case, it was because he was afraid it would slow 
the compiler down rather being an issue with refactoring). In 
your case, you might have had bad timing (depending on when your 
work was rejected), since just prior to dconf Walter was getting 
annoyed with the higher than normal number of regressions and 
decided that excessive refactoring was to blame (which it may or 
may not have been), which would tend to make him a lot more 
resistant to accepting refactoring even with a good reason. 
Hopefully, he can be convinced of it at some point.

- Jonathan M Davis


More information about the Digitalmars-d mailing list