Subject: Lack of error message about number of args (?native compilation?)
From: Alan Mackenzie <[email-masked]>
To: [email-masked]
Date: Sun, 23 Oct 2022 12:12:49 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello, Emacs.

Firstly, note that the function desktop-buffer has exactly 12
parameters.

With an up to date Emacs 29:

(i) emacs -Q
(ii) M-x load-library RET desktop RET.
(iii) M-x disassemble RET desktop-buffer.

Note that this is native code.

(iv) M-: (desktop-buffer 1 2 3 4 5 6 7 8 9 10 11 12 13) RET

This gives an error message about 4 not being a list.  What it ought to
do is instead throw an error about the number of arguments.  This is a
bug.

(v) M-x load-file RET /path/to/emacs/lisp/desktop.elc.
(vi) M-x disassemble RET desktop-buffer.

Note that we now have byte compiled code.

(vii) M-: (desktop-buffer 1 2 3 4 5 6 7 8 9 10 11 12 13) RET

We now get a correct error message about the numbere of arguments.

As a matter of interest, I noticed this bug while byte-compiling
desktop.el inside Emacs.  It gave a warning message about the number of
parameters to desktop-buffer having changed from 12+ to 12.

Here, I suspect there's a bug in the native compilation of
desktop-buffer.

-- 
Alan Mackenzie (Nuremberg, Germany).