June 09, 2023
On Friday, 9 June 2023 at 16:22:15 UTC, H. S. Teoh wrote:
> I wasn't around during the D1/D2 split, but AFAIK there were D1 projects that eventually had no way to transition to D2 because of fundamental language discrepancies that had no migration path.

Indeed.

So worth noting that the D1/D2 split happened almost simultaneously: D2 came out about six months after D1. What happened previously is there was just the D language that changed randomly as it wanted. People asked for some long term support.

D1 was arbitrarily branched off. It became the "stable" version and the existing all-development version got rebranded D2.

This actually was a decent success for a while! Some big users stayed on stable successfully. But the stable thing eventually got dropped with no migration plan, and then there was never another stable release to replace it.

Would want to avoid repeating those latter mistakes.
June 09, 2023
On Fri, Jun 09, 2023 at 04:41:28PM +0000, Adam D Ruppe via Digitalmars-d wrote:
> On Friday, 9 June 2023 at 16:22:15 UTC, H. S. Teoh wrote:
> > I wasn't around during the D1/D2 split, but AFAIK there were D1 projects that eventually had no way to transition to D2 because of fundamental language discrepancies that had no migration path.
> 
> Indeed.
> 
> So worth noting that the D1/D2 split happened almost simultaneously: D2 came out about six months after D1. What happened previously is there was just the D language that changed randomly as it wanted. People asked for some long term support.
> 
> D1 was arbitrarily branched off. It became the "stable" version and the existing all-development version got rebranded D2.
> 
> This actually was a decent success for a while! Some big users stayed on stable successfully. But the stable thing eventually got dropped with no migration plan, and then there was never another stable release to replace it.
> 
> Would want to avoid repeating those latter mistakes.

See, to me this proves that:

(1) LTS is viable for D;

(2) A migration path must be provided to move between LTS releases.

Point (1) is simple, at least in theory. (Well, simpl*er*, anyway.)

Point (2) is something we need to work on.  There should be a clear migration path for every breaking change introduced to the language, and this should be well-documented in a well-known place.  Probably it's too onerous to do this for every release (though ideally that should be the case), but at the very least there should be a solid migration plan from one LTS release to the next.

That way, users who want/need stability will have a way to migrate to newer releases, and won't be left behind with a 10yo obsolete compiler because there's no migration path. Users who don't mind breakages every now and then can just stay with the current releases.


T

-- 
Caffeine underflow. Brain dumped.
June 09, 2023

On Thursday, 8 June 2023 at 21:11:24 UTC, Richard (Rikki) Andrew Cattermole wrote:

>

On 09/06/2023 7:43 AM, Hipreme wrote:

>

The thing is that D doesn't have structure enough to get a LTS.

Not true.

Iain maintained the LTS version for gdc for a very long time.

We can do it, but as far as I'm concerned its up to him if we proceed and how.

GCC is released yearly with a D front-end frozen at whatever the current version is at the time of branching, and that stays maintained for ~3 years.

  • GDC 11.x - D v2.076.x (C++ port)
    Current release 11.4, last point release 11.5 expected 2024-05.

  • GDC 12.x - D v2.100.x
    Current release 12.3, next point releases expected 2024-05 and 2025-05.

  • GDC 13.x - D v2.103.x
    Current release 13.1, next point releases expected 2023-08, 2024-05, 2025-05, 2026-05.

The devs working on LDC could sync up and maintain these specific versions as well. Then we'd just be working together on backporting regression fixes long after DMD has moved on to the next bi-monthly major release rather than just leave it to one person. ;-)

It's only a matter of creating a release branch instead of tags in the dlang/dmd repository so that there's still a common upstream maintained by all interested downstream parties - i.e: this is where all updates and fixes for the C++ port got landed to.

https://github.com/dlang/dmd/tree/dmd-cxx

If no one else is doing it, there's really no incentive for me to re-upstream any regression fixes backported into GDC from a newer D language version.

June 10, 2023
My general feeling is the LTS should be based upon what is required to bootstrap the compiler.

But yeah, this kinda needs rights to happen with branches & coordination. Not something that can be made to happen on the N.G. needs an industry meeting with someone wanting to do it I think.
June 10, 2023
On 09/06/2023 11:42 PM, Guillaume Piolat wrote:
> I don't believe a D LTS would solve things

It does have some strong benefit, wrt. bootstrapping of the compiler.

So it solves more long term things, rather than short or medium term issues I think.
June 10, 2023
On Friday, 9 June 2023 at 08:05:18 UTC, Walter Bright wrote:
> On 6/8/2023 7:56 AM, GrimMaple wrote:
>> The truth is, I've been nagging about LTS branches, and I've been nagging directly to Mike about it, and it went nowhere.
>
> It's not about not caring about it. It's just that I can't see how it would be effective. Making LTS versions balkanizes the language into multiple languages, which will play hell with 3rd party library maintenance.
>
> Clearly, the deprecation scheme is not serving our users well. We'll have to find a better way.

2 versions is hardly balkanizing

Given even 1 wave of depreciations I would have dropped dlanggui; if grim says he needs an lts to continue supporting that ancient project I think theres a simple question:

Would you rather make an lts or let dlanggui die entirely?
June 10, 2023
On 09/06/2023 8:05 PM, Walter Bright wrote:
> It's not about not caring about it. It's just that I can't see how it would be effective.

Not making the compiler versions required to bootstrap the compiler LTS dooms our very ability to have a working compiler.

Without having C++ dumps of the compiler, before we did the whole self hosting thing was kinda short sighted.

Having LTS versions which work towards bootstrapping would certainly be beneficial to us long term and would allow us to solve the problem for the wider community who need stabilization.
June 10, 2023

On Thursday, 8 June 2023 at 15:22:46 UTC, Mike Parker wrote:

>

On Thursday, 8 June 2023 at 14:56:21 UTC, GrimMaple wrote:

>

The truth is, I've been nagging about LTS branches, and I've been nagging directly to Mike about it, and it went nowhere.
Per "core team doesn't care", when was the last time they had any meaningful meeting with said third party? When did they ask 3rd party developers directly about what they want or what they need? When did core team asked about "is it okay to deprecate this"?

At the end of every monthly meeting summary I post an open invitation for anyone who wants to bring something to us to discuss. I've been doing that for a while now. If you want to make the case for an LTS, that's the place to do it. Anytime you want to bring anything to the team, just email me and I'll bring you in.

A formal meeting with idk how many people but id guess like 6 people where your posting minutes is hardly an invitation Id accept.

Formality and 1 on 6 is scary; id suggest different methods to get information from people who dont feel listened to.

June 10, 2023

On Saturday, 10 June 2023 at 00:32:33 UTC, monkyyy wrote:

>

A formal meeting with idk how many people but id guess like 6 people where your posting minutes is hardly an invitation Id accept.

Formality and 1 on 6 is scary; id suggest different methods to get information from people who dont feel listened to.

Our meetings are far from formal. And it's in no way a scenario in which all of us will gang up on any one person. Often, we disagree with each other at first and discuss our way to agreement.

Adam and Steve are regular members now. Nick Treleaven joined us last time and may become either a semi-regular or regular member. There's much benefit to having a range of viewpoints, and I think once anyone comes in, any trepidation or uncertainty they have will disappear once they see how it goes.

And if anyone doesn't want their words to appear in the summary, all they have to do is tell me. That's why I call them "summaries" and not "minutes".

June 10, 2023

On Saturday, 10 June 2023 at 05:43:39 UTC, Mike Parker wrote:

>

Our meetings are far from formal. And it's in no way a scenario in which all of us will gang up on any one person. Often, we disagree with each other at first and discuss our way to agreement.

Adam and Steve are regular members now. Nick Treleaven joined us last time and may become either a semi-regular or regular member. There's much benefit to having a range of viewpoints, and I think once anyone comes in, any trepidation or uncertainty they have will disappear once they see how it goes.

And if anyone doesn't want their words to appear in the summary, all they have to do is tell me. That's why I call them "summaries" and not "minutes".

Long story short, what is there to discuss, if a simple question like "What are the requirments for the D team to consider LTS branch/release" is hanging unanswered? I don't believe that discussing such a thing is worth my (or anyone else's) time just because nobody cares enough to give straight answers. Without resorting to [please forgive my momentary rudeness] idiotic suggestions to come to some arbitrary meeting to discuss essentially nothing.

I am willing to come to the meeting, fine, but only after some common ground is found on topics of:

  1. Needing LTS in the first place
  2. Requirments and prerequisites for such an event
  3. Your (D team's) proposition on how such thing could be achieved, and what resources are necessary for it

So far I only saw endless debates on wether LTS is even needed, and some abstract talk about "gib monez" without any concrete propositions.

Otherwise, this is a waste of everyone's time.