Subject: bug#66570: 29.1; Regression when printing option set with value of wrong type

From: Drew Adams <[email-masked]>
Date: Sun, 15 Oct 2023 21:25:00 +0000

emacs -Q

Evaluate (customize-set-variable 'fill-column nil).

No message or error about improver value (just as in previous releases).

C-h v fill-column

An error is raised, but the *Compile-Log* message doesn't say what
function raised the error:

z:/path/to/Emacs-29.1.2/share/emacs/29.1/lisp/emacs-lisp/cl-print.elc:
Error: Wrong type argument: number-or-marker-p, nil

And why does is the error message shown in that buffer?

C-h v fill-column ; Repeat it.

Another error is raised, producing this incomprehensible error msg (this
time it is not shown in *Compile-Log*):

  Symbol's function definition is void: t

What function is void, `t'?

Buffer *Messages* shows this:

cl--generic-make-next-function: Symbol's function definition is void: t

In previous releases there is no such problem.  The improper value is
just shown in buffer *Help*.

[Arguably, options defined in C should maybe have a non-nil property
`custom-set', with the proper :set function, so that using
`customize-set-variable' raises an error when setting to an improper
value.  But that too would be backward-incompatible.]

In Emacs 28.2, you get a similar wrong-type-argument error in
*Compile-Log*, but identifiying seq.elc, not cl-print.elc.  And in Emacs
28.2 the *Help* buffer is shown normally (as in previous releases).

In Emacs 27 and prior there is no confusing display of buffer
*Compile-Log* with its error message that is only half-helpful.

In GNU Emacs 29.1 (build 2, x86_64-w64-mingw32) of 2023-08-02 built on
 AVALON
Windowing system distributor 'Microsoft Corp.', version 10.0.19045
System Description: Microsoft Windows 10 Pro (v10.0.2009.19045.3448)

Configured using:
 'configure --with-modules --without-dbus --with-native-compilation=aot
 --without-compress-install --with-tree-sitter CFLAGS=-O2'

Configured features:
ACL GIF GMP GNUTLS HARFBUZZ JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP
NOTIFY W32NOTIFY PDUMPER PNG RSVG SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XPM ZLIB

(NATIVE_COMP present but libgccjit not available)