www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Why no stable LTS releases?

reply sighoya <sighoya gmail.com> writes:
I've heard the complaint all the time, and I'm asking myself what 
the problem actually is with stable long term releases?
It would be better not to break every two months and instead have 
schedules for bugfixes, non-breaking features and breaking 
features.
It very much resembles that idea given in: 
https://gist.github.com/mdparker/ab61a1309752905cf93acb2653c50beb
Btw, what is actually the state of this dip?

Your opinions?
Jun 12 2021
next sibling parent Imperatorn <johan_forsberg_86 hotmail.com> writes:
On Saturday, 12 June 2021 at 13:06:20 UTC, sighoya wrote:
 I've heard the complaint all the time, and I'm asking myself 
 what the problem actually is with stable long term releases?
 It would be better not to break every two months and instead 
 have schedules for bugfixes, non-breaking features and breaking 
 features.
 It very much resembles that idea given in: 
 https://gist.github.com/mdparker/ab61a1309752905cf93acb2653c50beb
 Btw, what is actually the state of this dip?

 Your opinions?
It would need some discipline to get it to work, but is probably needed
Jun 12 2021
prev sibling next sibling parent bahhratt <flown yahoo.com> writes:
On Saturday, 12 June 2021 at 13:06:20 UTC, sighoya wrote:
 I've heard the complaint all the time, and I'm asking myself 
 what the problem actually is with stable long term releases?
 It would be better not to break every two months and instead 
 have schedules for bugfixes, non-breaking features and breaking 
 features.
 It very much resembles that idea given in: 
 https://gist.github.com/mdparker/ab61a1309752905cf93acb2653c50beb
 Btw, what is actually the state of this dip?

 Your opinions?
D is Walter's hobby project and he just enjoys playing with it. He doesn't seem interested in having a clear roadmap, LTS releases, breaking backward compatibility for sake of evolution, etc.
Jun 13 2021
prev sibling next sibling parent Bastiaan Veelo <Bastiaan Veelo.net> writes:
On Saturday, 12 June 2021 at 13:06:20 UTC, sighoya wrote:
 I've heard the complaint all the time, and I'm asking myself 
 what the problem actually is with stable long term releases?
Quite likely the only problem is a lacking champion. As soon as somebody steps up and proclaims: “I’m maintaining an LTS”, forks a release and starts back porting fixes, I’m quite sure we’ll have an LTS. — Bastiaan.
Jun 13 2021
prev sibling next sibling parent reply Mathias LANG <geod24 gmail.com> writes:
On Saturday, 12 June 2021 at 13:06:20 UTC, sighoya wrote:
 I've heard the complaint all the time, and I'm asking myself 
 what the problem actually is with stable long term releases?
 It would be better not to break every two months and instead 
 have schedules for bugfixes, non-breaking features and breaking 
 features.
 It very much resembles that idea given in: 
 https://gist.github.com/mdparker/ab61a1309752905cf93acb2653c50beb
 Btw, what is actually the state of this dip?

 Your opinions?
We have an LTS. It's called GDC. Iain have done a great job at maintaining it. You see it in the upstream repositories as `dmd-cxx` (yes it's still using C++ for the frontend).
Jun 13 2021
parent reply Imperatorn <johan_forsberg_86 hotmail.com> writes:
On Monday, 14 June 2021 at 01:47:51 UTC, Mathias LANG wrote:
 On Saturday, 12 June 2021 at 13:06:20 UTC, sighoya wrote:
 I've heard the complaint all the time, and I'm asking myself 
 what the problem actually is with stable long term releases?
 It would be better not to break every two months and instead 
 have schedules for bugfixes, non-breaking features and 
 breaking features.
 It very much resembles that idea given in: 
 https://gist.github.com/mdparker/ab61a1309752905cf93acb2653c50beb
 Btw, what is actually the state of this dip?

 Your opinions?
We have an LTS. It's called GDC. Iain have done a great job at maintaining it. You see it in the upstream repositories as `dmd-cxx` (yes it's still using C++ for the frontend).
Well, this is actually true. But I get the feeling he meant dmd?
Jun 14 2021
parent reply Iain Buclaw <ibuclaw gdcproject.org> writes:
On Monday, 14 June 2021 at 07:10:41 UTC, Imperatorn wrote:
 On Monday, 14 June 2021 at 01:47:51 UTC, Mathias LANG wrote:
 On Saturday, 12 June 2021 at 13:06:20 UTC, sighoya wrote:
 I've heard the complaint all the time, and I'm asking myself 
 what the problem actually is with stable long term releases?
 It would be better not to break every two months and instead 
 have schedules for bugfixes, non-breaking features and 
 breaking features.
 It very much resembles that idea given in: 
 https://gist.github.com/mdparker/ab61a1309752905cf93acb2653c50beb
 Btw, what is actually the state of this dip?

 Your opinions?
We have an LTS. It's called GDC. Iain have done a great job at maintaining it. You see it in the upstream repositories as `dmd-cxx` (yes it's still using C++ for the frontend).
Well, this is actually true. But I get the feeling he meant dmd?
The front-end used by GDC _is_ DMD. :-) You can generally expect any given major release of GCC to support and backport any fixes to the version of DMD it's sporting for 3 years. Do we want to re-upstream patches to a GCC release branch into a DMD "LTS" branch? That can be a topic for beerconf or the next quarterly meeting.
Jun 14 2021
parent reply Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= <ola.fosheim.grostad gmail.com> writes:
On Monday, 14 June 2021 at 09:18:19 UTC, Iain Buclaw wrote:
 The front-end used by GDC _is_ DMD. :-)

 You can generally expect any given major release of GCC to 
 support and backport any fixes to the version of DMD it's 
 sporting for 3 years.
Sadly, LDC was much easier to compile on Mac than GCC the last time I tried. If this is changed then it makes a lot of sense to view GDC as a stable release if it is stable over a period of 3+ years. But then you have to be quite picky about which release of DMD you embrace, and not try to follow the latest release because people demand it (before it has proven itself as free of regressions). Another issue is that of libraries an "tutorialish" starting points (like a 2D game app on github that is a startingpoint for writing your own games). They need a clear set of feature-profiles, so that it is clear whether a compiler upgrade will break or not break an older code base. People seem to complain about this regularly in the forums; they found something interesting on github, try to compile it and get lots of errors. What is the difference between GDC and LDC? Off the top of my head: 1. I assume dcompute 2. LLVM intrinsics Are there differences between GDC and LDC inline assembly? Map out all these "sets of features" and how future/backwards compatible they are and define a manifest-file-standard for expressing it in repos and we can talk about stability.
Jun 14 2021
parent reply Iain Buclaw <ibuclaw gdcproject.org> writes:
On Monday, 14 June 2021 at 12:13:40 UTC, Ola Fosheim Grøstad 
wrote:
 On Monday, 14 June 2021 at 09:18:19 UTC, Iain Buclaw wrote:
 The front-end used by GDC _is_ DMD. :-)

 You can generally expect any given major release of GCC to 
 support and backport any fixes to the version of DMD it's 
 sporting for 3 years.
Sadly, LDC was much easier to compile on Mac than GCC the last time I tried. If this is changed then it makes a lot of sense to view GDC as a stable release if it is stable over a period of 3+ years.
The darwin port maintainer and I have been testing various OS X versions and hardware combinations. - PPC almost passes cleanly save for some unknown deadlock in druntime when printing the stack trace of an uncaught exception. - Anything older than OS X 10.5 or 10.6 generally won't work. - OS X 10.6 through to 10.8 mostly pass, but may require you to stub out missing symbols present only in newer versions. - OS X 10.9 through to 10.15 pretty much all pass (and the [Cirrus CI pipelines](https://cirrus-ci.com/task/5207064629739520) I've added have been keeping tabs on this). - OS X 11 reported tests that started failing again, but having checked DMD, and I can safely say that it fails for [all compilers](https://issues.dlang.org/show_bug.cgi?id=21919).
 But then you have to be quite picky about which release of DMD 
 you embrace, and not try to follow the latest release because 
 people demand it (before it has proven itself as free of 
 regressions).
I think people would prefer to have the latest over regression-free. Having a release branch open for 3 years should allow plenty of time for all regressions to be plugged long after DMD has moved on to the next major release.
 Another issue is that of libraries an "tutorialish" starting 
 points (like a 2D game app on github that is a startingpoint 
 for writing your own games).

 They need a clear set of feature-profiles, so that it is clear 
 whether a compiler upgrade will break or not break an older 
 code base. People seem to complain about this regularly in the 
 forums; they found something interesting on github, try to 
 compile it and get lots of errors.

 What is the difference between GDC and LDC? Off the top of my 
 head:
 1. I assume dcompute
 2. LLVM intrinsics
3. ldc.attributes vs. gcc.attributes. I've kept it in sync with LDC, but GDC has a few more attributes available - mostly alternative names though to match GCC equivalents.
 Are there differences between GDC and LDC inline assembly?
Yes, there are. Though LDC does support GDC-style asm nowadays.
Jun 14 2021
parent reply Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= <ola.fosheim.grostad gmail.com> writes:
On Monday, 14 June 2021 at 14:48:43 UTC, Iain Buclaw wrote:
 The darwin port maintainer and I have been testing various OS X 
 versions and hardware combinations.
Good to know, thanks!
 I think people would prefer to have the latest over 
 regression-free.  Having a release branch open for 3 years 
 should allow plenty of time for all regressions to be plugged 
 long after DMD has moved on to the next major release.
Maybe. I strongly prefer regression free (applies to all languages, not only D), maybe others have different priorities. When you say you have a release branch open for 3 years, how many branches do that imply?
 3. ldc.attributes vs. gcc.attributes.  I've kept it in sync 
 with LDC, but GDC has a few more attributes available - mostly 
 alternative names though to match GCC equivalents.

 Are there differences between GDC and LDC inline assembly?
Yes, there are. Though LDC does support GDC-style asm nowadays.
Ok, so it should be possible then to add a linting-pass to GDC that warns against LDC-incompatible features? Thus making GDC the preferred compiler for library authors that does not want to litter they code with conditional compilation statements? Anyway, making it possible to write tutorials/libraries that remain valid over time and that works equally well for both production compilers would greatly improve the eco system. There is a lot of old D code on github, sadly it can no longer be viewed as relevant to the eco system... Something worth thinking about, in my view.
Jun 14 2021
parent mw <mingwu gmail.com> writes:
On Monday, 14 June 2021 at 15:02:54 UTC, Ola Fosheim Grøstad 
wrote:

 I think people would prefer to have the latest over 
 regression-free.  Having a release branch open for 3 years 
 should allow plenty of time for all regressions to be plugged 
 long after DMD has moved on to the next major release.
Maybe. I strongly prefer regression free (applies to all languages, not only D), maybe others have different priorities.
People who prefer the latest can always use DMD. Since we are talking about LTS here, I think people prefer regression free (and bug fix backport). We can have a poll on this. Right now 2 votes for regression free.
Jun 14 2021
prev sibling parent Guillaume Piolat <first.name domain.tld> writes:
On Saturday, 12 June 2021 at 13:06:20 UTC, sighoya wrote:
 Your opinions?
Use an earlier version of the compiler. Otherwise I'm not seeing all the breakage people complain about...
Jun 14 2021