Ghosting a language feature

Don prosthetictelevisions at teletubby.medical.com
Fri Sep 25 15:49:54 UTC 2020


On Tuesday, 22 September 2020 at 04:38:37 UTC, Walter Bright 
wrote:
> On 9/21/2020 6:08 PM, Mike Parker wrote:> D 2.094 is a 
> different languge than D 2.074. How many people can say how > 
> they differ?
> I can't say, either, without looking at the changelog. But does 
> it matter? If a particular feature is of interest, can't the 
> changelog suffice?
>
>
>> And if I want to upgrade from 2.094 to 2.095, but the new 
>> version introduces a regression that blocks me, that 
>> regression might not be fixed until 2.098. Now in order to 
>> upgrade I need to deal with the changes and possible 
>> regressions in multiple milestone realeases because there's no 
>> long-term patch support for 2.095.
> I agree that no long-term patch support is a problem. But it's 
> mainly the result of our team being small, not having a 
> different release scheme. There's nothing really preventing a 
> regression fix from going back into any particular release 
> except someone actually doing it.
>
> Needing patch support for various versions could be an ideal 
> thing that companies that need it can supply funding for.

Delurking because this is a really important issue.

Unfortunately that doesn't really work. You need to have 
designated long-term support releases. There doesn't need to be 
very many of them, but they must exist.
Currently the most recent one is called D1. :)

What I think most of the community doesn't realize with this 
issue, is that just because a body of code needs compiler 
patches, does *not* mean that any development is happening. I 
didn't appreciate this until it happened to me.

Here's what happened in the dying days of Sociomantic. All 
development ceased on the project. But, the apps still needed to 
run, until our contracts with existing customers ran out.

But then the Linux version we were running on, ran out of 
support. We had to upgrade the servers to a supported Linux 
version. But we could not do this. All supported Linux versions 
required position independent code.
Simple, just add -fPIC to the Makefile, and recompile.

I wish.

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.





More information about the Digitalmars-d mailing list