Re: Discussion about why GNU/Linux system upgrades cause old programs to break
Arsen Arsenović <[email protected]> Mon, 10 Aug 2026 13:58:17 +0200
| Newsgroups | gmane.emacs.devel |
|---|---|
| Message-ID | <[email protected]> |
Richard Stallman <[email protected]> writes: > > Trying to run old versions of Emacs I've built myself on that very > > system: > > > eliz@fencepost:~$ emacs-28.x/emacs-28.0.90/src/emacs -Q > > eliz@fencepost:~$ emacs-27.x/emacs-27.2/src/emacs -Q > > > emacs-27.x/emacs-27.2/src/emacs: error while loading shared > > libraries: libgtk-3.so.0: cannot open shared object file: No such > > file or directory 127 eliz@fencepost:~$ > > It looks like 28.x did work, because you report no error message from it. > But 27.2 failed. > > 27.2 was released in March, 2021. That is 5 years ago. I think we > shouldn't break programs that quickly! I think our tools should > continue to support a program for many more years than that. > > Now that I have specific reports, I can discuss them with maintainers. The program didn't necessarily break in this example; the admin removed libraries that the program was linked against. If I removed libraries that my copy of Emacs 32 was linked against, it'd also "break" in the same manner, even though the Emacs 32 I have installed was built ~18 hours ago. More broadly speaking, note that, IME as a distro maintainer, programs quite rarely break due to issues in gcc, glibc, etc. In the vast majority of cases, "breaks" are in things that previously only worked by coincidence. For instance, the example Eli gave, of programs "breaking" because GCC versions up to 14 failed to properly diagnose invalid C99, the correct interpretation is that the programs were only "working" (in air-quotes, because they cannot possibly be considered working, the same way as someone falling off a cliff is not truly flying) because GCC in particular did not enforce language rules. In reality, the programs have been broken for decades, often in subtle ways, for instance by silently being compiled into wrong code. Indeed, such miscompilations were among the reasons the diagnostics were strengthened. Were we to keep this broken status quo, of having a compiler that fails to diagnose incorrect programs, because people, 20+ years in, were not correcting their habits of writing incorrect code? In my opinion, said habits are a reason to correct the status quo to start diagnosing incorrect code. I don't care to relitigate that discussion further, it went on long enough on the GCC mailing list when it initially happen. We've put in the effort of correcting existing programs, and https://gcc.gnu.org/gcc-14/porting_to.html was written to help everyone else deal with the "break". I can't recall any actual breaks (i.e. not something like what was described above) in the last five years, so I'd argue we don't break programs that quickly. All the breaks I can remember are simply instances of Hyrum's Law. -- Arsen Arsenović
signature.asc
(application/pgp-signature, 418 B)
-----BEGIN PGP SIGNATURE----- iQECBAEWCgCqFiEE/uKz0RP8AKMWLWBhUsKUMB6ixJMFAmp5vNkbFIAAAAAABAAO bWFudTIsMi41KzEuMTIsMiwyXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25z Lm9wZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXRGRUUyQjNEMTEzRkMwMEEzMTYyRDYw NjE1MkMyOTQzMDFFQTJDNDkzEBxhcnNlbkBhYXJzZW4ubWUACgkQUsKUMB6ixJMk jQEAxKRvcrFaavMjjm0PMo5+Mw6pCQFsGVAAG+gKqAJd9usA/1BfAqbFCPbUwtDi tbSbq2RQGMBTcY9rKSLTo8bTRpkJ =Tso5 -----END PGP SIGNATURE-----