all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Mauro Aranda <maurooaranda@gmail.com>
To: 23926@debbugs.gnu.org
Cc: Eli Zaretskii <eliz@gnu.org>, Noam Postavsky <npostavs@gmail.com>,
	Drew Adams <drew.adams@oracle.com>
Subject: bug#23926: defcustom with STANDARD=<non-constant-expression> gives confusing results
Date: Tue, 17 Oct 2023 11:29:48 -0300	[thread overview]
Message-ID: <a625e634-2eb1-46bb-90d4-5e27016f3960@gmail.com> (raw)
In-Reply-To: <cabc1078-eaf2-4ef4-9c18-8b48ad67765d@gmail.com>

In case it wasn't clear in my previous message, I'm focusing on the
Customize part of the problem here.  I went through a lot of the
defcustoms we have in source, and found out that there are many, so
many, that can potentially show this inconsistency.  The one that's
comparable to the test case given is archive-tmpdir, but there are
others.  I've classified them in 6 categories, as:

- Standard value changes every time its standard form is evaluated
This is archive-tmpdir.

- Standard value depends on special conditions in an Emacs session
For example, highlight-changes-colors depends on the background-mode
frame parameter.  I've seen it's somewhat common to use different themes
(light and dark) in a session, so using a frame-parameter query as
standard is not optimal.  There are other cases like erc-nicks-bg-color,
vc-annotate-background-mode, etc.

- Standard value depends on some external (usually OS-related) condition
These are mostly defcustoms that try to find a program available.
Examples are remote-shell-program, wallpaper-command, etc.  The standard
values could change, potentially, if some program gets installed while
an Emacs session is active.

- Standard value depends on a built-in option
Take for example ido-case-fold, or ibuffer-case-fold-search.  If those
options get defined and after that the user customizes case-fold-search,
it will exhibit the inconsistency presented in this bug report.  What's
worse, is that the current session may show a different behavior than a
new session, if the user saves the customization for case-fold-search.

- Standard value depends on an option from the same package
gnus-*-directory options are a good example here.

- Standard value depends on another's package option
For example, erc-button-url-regexp that depends on
browse-url-button-regexp.

- Standard value depends on finding an Emacs-related file
This is usually detected with a call to locate-user-emacs-file with two
arguments, trying to keep backward-compatibility with an older filename.
For example, bookmark-default-file, diary-file, timeclock-file, etc.

I left this for last, because while it might potentially show the
problem, it should be rare enough to consider it a non-issue.


That's a summary of what I've found.  I would like to find a way to make
the Customize part of this problem less confusing (or better, no
confusing at all), keeping in mind backward-compatibility, of course.  I
don't have any clear ideas yet.






  reply	other threads:[~2023-10-17 14:29 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-09  3:11 bug#23926: defcustom with STANDARD=<non-pure-expression> gives confusing results Noam Postavsky
2016-07-09  6:31 ` Drew Adams
2016-07-09  7:13 ` Eli Zaretskii
2016-07-09 11:54   ` npostavs
2016-07-09 12:31     ` Eli Zaretskii
2016-07-09 12:55       ` Noam Postavsky
2016-07-09 13:14         ` Eli Zaretskii
2016-07-09 13:48           ` Noam Postavsky
2016-07-09 14:03             ` Eli Zaretskii
2016-07-12  3:26               ` npostavs
2016-07-12  5:20                 ` Eli Zaretskii
2016-07-09 14:34             ` Drew Adams
     [not found]             ` <<8360sehps4.fsf@gnu.org>
2016-07-09 14:54               ` Drew Adams
2016-07-09 15:09                 ` Drew Adams
2016-07-10 17:23                 ` Drew Adams
2023-10-17 14:19 ` bug#23926: defcustom with STANDARD=<non-constant-expression> " Mauro Aranda
2023-10-17 14:29   ` Mauro Aranda [this message]
     [not found] <<<CAM-tV-8cG3gLgf-A+wBYPZWNy2WPGFV3uEdNE7=ad3oq4rXmnw@mail.gmail.com>
     [not found] ` <<<83vb0fgu83.fsf@gnu.org>
     [not found]   ` <<443f2e44-5167-48e7-abc6-cce1e243461e@default>
     [not found]     ` <<8337nihpdw.fsf@gnu.org>
2016-07-09 14:59       ` bug#23926: defcustom with STANDARD=<non-pure-expression> " Drew Adams
2016-07-09 16:52         ` Eli Zaretskii
2016-07-09 20:48           ` npostavs
2016-07-10 14:19             ` Eli Zaretskii
     [not found]           ` <<871t32ilm0.fsf@users.sourceforge.net>
     [not found]             ` <<83k2gtfue4.fsf@gnu.org>
2016-07-10 17:18               ` Drew Adams
2016-07-11 18:40                 ` Eli Zaretskii
     [not found] <<CAM-tV-8cG3gLgf-A+wBYPZWNy2WPGFV3uEdNE7=ad3oq4rXmnw@mail.gmail.com>
     [not found] ` <<83vb0fgu83.fsf@gnu.org>
2016-07-09 14:09   ` Drew Adams
2016-07-09 14:12     ` Eli Zaretskii
     [not found]       ` <<c0dd88c2-51ef-4f4f-964c-f0254db970f7@default>
     [not found]         ` <<83zipqg3e3.fsf@gnu.org>
2016-07-10 17:18           ` Drew Adams
2016-07-11 18:52             ` Eli Zaretskii
     [not found] <<<<CAM-tV-8cG3gLgf-A+wBYPZWNy2WPGFV3uEdNE7=ad3oq4rXmnw@mail.gmail.com>
     [not found] ` <<<<83vb0fgu83.fsf@gnu.org>
     [not found]   ` <<<443f2e44-5167-48e7-abc6-cce1e243461e@default>

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a625e634-2eb1-46bb-90d4-5e27016f3960@gmail.com \
    --to=maurooaranda@gmail.com \
    --cc=23926@debbugs.gnu.org \
    --cc=drew.adams@oracle.com \
    --cc=eliz@gnu.org \
    --cc=npostavs@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.