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

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

Reply via email to