[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


From: Po Lu
Date: Sat, 01 Apr 2023 17:17:07 +0800
User-agent: Gnus/5.13 (Gnus v5.13)

Eli Zaretskii <eliz@gnu.org> writes:

> IOW, "best engineering practices" are for master; on the release
> branch, using existing code proven by time takes precedence, because
> our ability to predict consequences is limited.

This problem is not about engineering practices, but basic program
correctness.  Look at the GCC bug tracker: every release, a program
that relies on this undefined behavior becomes subtly broken, a bug
is filed against GCC, and is closed by the GCC developers, stating
that this behavior is unsupported.

Emacs 29 has been in development for less than three years... not nearly
long enough to be sure no subtle miscompilations have taken (or will
take) place.

If that's ``proven by time'', then so is this:

null_terminate (buffer, size)
  char *buffer;
  buffer[size] = '\0';

It might work for a few months, or a year, then suddenly break with a
new compiler release, or perhaps a change to malloc, or something else.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]