GNU bug report logs - #66570
29.1; Regression when printing option set with value of wrong type

Previous Next

Package: emacs;

Reported by: Drew Adams <drew.adams <at> oracle.com>

Date: Sun, 15 Oct 2023 21:26:02 UTC

Severity: normal

Tags: wontfix

Found in version 29.1

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 66570 in the body.
You can then email your comments to 66570 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#66570; Package emacs. (Sun, 15 Oct 2023 21:26:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Drew Adams <drew.adams <at> oracle.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sun, 15 Oct 2023 21:26:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Drew Adams <drew.adams <at> oracle.com>
To: "bug-gnu-emacs <at> gnu.org" <bug-gnu-emacs <at> gnu.org>
Subject: 29.1; Regression when printing option set with value of wrong type
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)





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66570; Package emacs. (Mon, 23 Oct 2023 14:55:01 GMT) Full text and rfc822 format available.

Message #8 received at 66570 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Drew Adams <drew.adams <at> oracle.com>
Cc: 66570 <at> debbugs.gnu.org
Subject: Re: bug#66570: 29.1;
 Regression when printing option set with value of wrong type
Date: Mon, 23 Oct 2023 17:53:58 +0300
tags 66570 wontfix
close 66570
thanks

> From: Drew Adams <drew.adams <at> oracle.com>
> 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).

Emacs 29 has setopt, so you should use that instead.  It will display
a warning when a variable is set to a value that it doesn't support.

Or use the command customize-option.

> 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

Yes.  Actually, errors start popping up before that, because the value
of fill-column is bogus.  Just don't do that (and use setopt to make
sure you don't inadvertently set a variable to a bad value).

I don't think we should do anything here, as this is a clear cockpit
error that can nowadays be avoided by using a different API.

So I'm closing this bug.




Added tag(s) wontfix. Request was from Eli Zaretskii <eliz <at> gnu.org> to control <at> debbugs.gnu.org. (Mon, 23 Oct 2023 14:55:02 GMT) Full text and rfc822 format available.

bug closed, send any further explanations to 66570 <at> debbugs.gnu.org and Drew Adams <drew.adams <at> oracle.com> Request was from Eli Zaretskii <eliz <at> gnu.org> to control <at> debbugs.gnu.org. (Mon, 23 Oct 2023 14:55:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 21 Nov 2023 12:24:13 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 293 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.