Ghosting a language feature

Jackel jackel at gmx.com
Wed Oct 7 04:37:53 UTC 2020


On Thursday, 1 October 2020 at 09:49:20 UTC, WB wrote:
> 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.

When a pull request is made, it would be trivial to require a 
patch to also be made to a LTS version of the compiler.

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

Who decides now?

The people deciding now have no recourse, the current `-preview=` 
implementation only works if the before and after code can 
co-exist. Which in a lot of cases it can't. Not to mention 
there's no `-preview=` switch for breaking changes done to 
phobos. It's an ineffective tool for the problem.

See here: 
https://github.com/dlang/dmd/pull/9289#issuecomment-468633169

     "" It seems that the projects listed in buildkite don't 
suffer from this bug so I suggest we just swallow this pill and 
merge this. ""

Had an LTS version, or some sort of spec versioning scheme been 
used, this situation could have allowed the people deciding to 
only apply this patch to be applied to the new spec or not the 
LTS version of the compiler.

Of course it ended up causing problems: 
https://forum.dlang.org/post/zzgbrxtehffhjkcazpzs@forum.dlang.org

Every company and/or customer requires LTS. It is ubiquitous. 
There's no customer Y needs X, that's just a symptom of a larger 
problem. Customer Y needs X cause there's no LTS.

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

I think this will only exacerbate the problem, if you mean to 
suggest to follow through with "ghosting" features. If what is 
said to be taken at face value, since all bug reports for that 
feature will be closed as "won't fix". Should a regression occur 
to a ghosted feature, it won't ever be fixed. So even if a 
"ghosted" feature remains it will still cause problems for 
someone trying to upgrade to a newer version of the compiler. A 
ghosted feature can't remain without support for it, otherwise it 
might as well be removed.



More information about the Digitalmars-d mailing list