Ghosting a language feature

Walter Bright newshound2 at digitalmars.com
Thu Oct 1 09:49:20 UTC 2020


On 9/25/2020 8:49 AM, Don wrote:
> Unfortunately there was a wrong-code bug in the compiler, which happened if 
> compiled with -fPIC. This was only fixed in the most recent compiler release.
> So, we have to jump forward many releases. And these releases included some huge 
> deprecations. When I did this, the compiler spat out over 3000 errors. In many 
> of these cases the required changes were far from trivial. Most of the team has 
> left by that point, so I have to make the changes and hope I didn't break 
> something in the process.
> 
> Then, after making all these changes, I discover there's been a regression 
> before the -fPIC fix. The regression is fixed since the last release. So the 
> only compiler that works is the nightly build of dmd. This is so unprofessional 
> it blows my mind.
> 
> Remember, all the budget allowed for was, add -fPIC and recompile.
> 
> Back in 2007, D had a long-term support release. It needs a more recent one.
> That's not a luxury, it's a necessity. You're not a serious language without one.
> Just *one* LTS at any given time would be a good start.

This is the first time I've heard of your travails on this.

I'm sorry this burden fell on you. You needed two patches to an older compiler. 
There's only one way this can happen - someone has to apply those patches to the 
older compiler, and test the result.

Having a LTS version does literally nothing to make this happen. To make this 
work, an engineer has to be available to make it work, someone that can "add 
patch X to release Y". The only way that can happen is for someone to volunteer 
to do it, or for someone to be paid to do it.

Another problem is there are what, 20,000 PRs for dmd? Which ones need to be put 
in the LTS version? Who decides? The only workable scheme I can think of is the 
customer who needs X (every customer has different issues that need attention) 
needs to find or fund an engineer to do it. This is why D is open source.

All I can helpfully suggest is we (the topic of this thread) avoid removing 
harmless features just because they are obsolete. This will reduce (hopefully 
eliminate) the redesigns necessary to move forward.



More information about the Digitalmars-d mailing list