Ghosting a language feature
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
> 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.
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
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