Re: Discussion about why GNU/Linux system upgrades cause old programs to break

Eli Zaretskii <[email protected]>
Newsgroups gmane.emacs.devel
Message-ID <[email protected]>
> From: Arsen Arsenović <[email protected]>
> Cc: [email protected],  [email protected],  [email protected]
> Date: Sat, 15 Aug 2026 20:10:54 +0200
> 
> >> But, to make an analogous hypothetical for sake of clarity, if Emacs was
> >> to change some default because you, a veteran Emacs developer, with
> >> consensus from other Emacs developers, saw that it has caused much more
> >> harm than good, and it happened to break some random Elisp script on my
> >> machine, that went untouched for 25 years, but helped a thousand people
> >> for each such script, would you expect me to use it as an example of the
> >> poor judgment, abandonment of principle, carelessness, and adversarial
> >> approach of you, a few years down the line?
> >
> > YES!  When such changes are suggested for Emacs, there's no end to our
> > attempts to find a way to have the cake and eat it, too, so that we
> > don't break backward compatibility.  You can find many examples of
> > that on this list.  In many cases, when a solution that leaves both
> > cases satisfied cannot be found, we actually refuse to make the
> > change, even though the proposed new behavior is desirable.
> >
> >> Would it be fair for me to say, in that scenario, "that the current
> >> attitude of many/most Emacs developers is at best downplaying the
> >> importance of being able to run old Elisp, and at worst is utterly
> >> hostile to the plight of people who for some reason need to do that"?
> >
> > YES!!!
> >
> >> I don't read debbugs for Emacs.  I don't maintain ELPA.  I don't
> >> maintain Emacs core.  How could I possibly allow myself to do that?
> >
> > You can allow that because your legitimate use case was broken by a
> > change in Emacs.
> 
> I don't think you're being frank here.  It's easy to be bold in face of
> a hypothetical.

It isn't a hypothetical.  I invite you to read this list and the
bug-gnu-emacs list, and you will see it for yourself.

> The example below demonstrates this.  You've "mov[ed] towards
> [lexical-binding:t by default] painstakingly slowly", so you think it's
> OK.  Yet, when an aged exception made for backwards compatibility is
> reconsidered 20 (or more) years later, after a diagnostic has been
> emitted for that scenario the entire time, you think that's not OK.

Sorry, you lost me here.  I don't understand what you are saying.

> I can conjure up programs that will break after the lexical-binding
> change.  Indeed, I can probably find programs that will break after that
> change, rather than needing to construct one.

That didn't happen yet, so let's delay this until it does, so we could
talk about something that has a factual basis.  How about if you find
another example, something that we actually did in Emacs?

> >> For instance, it may happen when lexical-binding becomes default.
> >
> > Which is why we are moving towards that goal painstakingly slowly, in
> > tiny steps, each time leaving behind compatibility features and
> > waiting a very long time between such changes.  Several people brought
> > up suggestions to move faster and with bolder changes, but we
> > eventually decided not to do that.
> 
> The K&R C diagnostics have been in place for C99 and newer since at
> least 2004 (I don't have GCCs older than that on hand).  GCC started
> emitting them without any flags set in 2015, when C11 became the default
> dialect.  They only started being rejected by default in 2024, with a
> way to get old behaviour back.
> 
> In fact, even back in 2004, there was a way to suppress those
> diagnostics.  There still is.
> 
> Like with that change, the change of the lexical-binding default will,
> should it happen, break programs.
> 
> Based on this, it seems to me that there's a double standard at play.

Is there?  lexical-binding was introduced in Emacs 24.1, released in
2012, and it isn't default yet.  So let's defer the discussion of
whose double standard it is until lexical-binding becomes the default
in Emacs, so we could compare the actual, not hypothetical, timelines,
okay?

> > It was not wrong once upon a time.  And programs still worked and did
> > their jobs correctly.  Yes, that required the developers to be more
> > vigilant and find problems "by hand" rather than with help of the
> > compiler.  But that's a far cry from "blatantly wrong".
> 
> No, a program that called a function returning a pointer as if it was
> returning an int was wrong once upon a time also, and would indeed break
> sporadically on machines whee the sizes of integers and pointers differ,
> even if we're lucky enough not to see it break in other ways.

Buggy programs happen under C99 as well, so that's a red herring.

> With that context, I asked: should malloc development have halted even
> though pdumper was made?

They moved on even before that.

> (Yes, I know that would not have happened, but "will avoid breaking
>  Emacs [...] at all costs" implies that it should have.  I doubt you
>  mean that.
> 
>  This also seems very un-comradery; it implies that Emacs concerns
>  should triumph over all others, and implies that Emacs specifically
>  cannot be wrong in using other GNU tools.

Emacs does not consciously break other GNU projects, so there's
nothing un-comradery here.  The attitude is symmetrical.

Anyway, since it sounds like we are down to discussing whether Emacs
is better or worse than other GNU projects, I will bow out of this now
useless "discussion".
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.