Subject: bug#70155: 29.3; Several Emacs Lisp list functions accept non-list arguments

From: Drew Adams <[email-masked]>
Date: Sat, 27 Apr 2024 15:01:11 +0000

I don't speak about the other functions
mentioned.  Fix just `last', and then we
can see what else might need to be looked
at - maybe nothing.  The _regression_ is
the change in `last' behavior.

Elisp's `last' behaved perfectly well, and
the same way as in all other Lisps, until
the regression was introduced, in Emacs 24.

This is a BUG, and it goes against 70 years
of Lisp's `last' function.

> (Of course if you ask me, I'd prefer it if lists were guaranteed to be
> proper, immutable, with the empty list an object distinct from the
> symbol nil and the false boolean value. Maybe next year.)

I see.  Then if you ask me, you don't want
Lisp.  You want something else.

Of course, you can get what you want with
Lisp.  Just don't hijack longstanding Lisp
constructs to do so.  Instead, define new
constructs and don't touch longstanding,
basic Lisp functions and other constructs.

Please restore `last' to its normal, sane,
longstanding behavior.