From: Eli Zaretskii <eliz@gnu.org>
To: Thuna <thuna.cing@gmail.com>
Cc: michael_heerdegen@web.de, monnier@iro.umontreal.ca,
72328@debbugs.gnu.org
Subject: bug#72328: [PATCH] Nested backquote in pcase
Date: Mon, 05 Aug 2024 14:52:11 +0300 [thread overview]
Message-ID: <86ikwfqj9w.fsf@gnu.org> (raw)
In-Reply-To: <87v80gkmg7.fsf@gmail.com> (message from Thuna on Sun, 04 Aug 2024 23:27:52 +0200)
> From: Thuna <thuna.cing@gmail.com>
> Cc: Eli Zaretskii <eliz@gnu.org>, monnier@iro.umontreal.ca,
> 72328@debbugs.gnu.org
> Date: Sun, 04 Aug 2024 23:27:52 +0200
>
> >>> Thanks, but I think Stefan meant to say that we would need real-life
> >>> use cases to change the current behavior. So if there are no such
> >>> cases, it makes the decision less likely.
> >>
> >> I don't see how Stefan's message could be interpreted that way.
> >
> > FWIW, I interpreted it that way too.
>
> My understaning is that the utility of going through use cases for or
> against the new behavior is to determine whether it would be an
> improvement or not. The absence of any such use cases does not mean
> anything in either direction, but simply that this is not a usable tool.
The existing implementation has an advantage up front, because it
exists and presumably can be used by some Lisp program. We try very
hard not to break anyone's code, even if we are not aware of such
code, and therefore an incompatible change in behavior can be
justified only if there's a very good reason. Thus the request for
real-life use cases.
AFAIU, those real-life use cases don't have to be from existing
packages, they can be from your own practice. You just need to
explain why you needed the behavior you are requesting.
> Furthermore, just intuitively, why would the absence of users of a
> feature be a reason to not improve it?
Because the danger of breaking someone's code is not something we
ignore lightly. So the improvement must be significant, and the use
case must be a practical one, to trump that.
> Note that I do not believe that there are no people who would be
> effected by this, positively or negatively.
We've learned from bitter experience that such arguments are usually
false. IOW, we don't really know enough to make such assertions.
> > From what I understand, coming to decisions as a maintainer is not that
> > simple. And Stefan had reasons to choose the current implementation.
>
> The stated reasoning was that implementational simplicity was valued
> over symmetry with backquote.
That' too. But the mere existence of the current behavior is also
important.
> Very well. In that case, here's the original case which prompted me to
> look into how pcase's backquote behaves:
>
> (defun macroexp-null (exp)
> "Return non-nil if EXP will always evaluate to nil.
> This form does not take non-local exits or side-effects into account."
> (pcase exp
> ((or 'nil ''nil '#'nil '`nil ``,,(pred macroexp-null))
> t)))
>
> which without this change would read as:
>
> (defun macroexp-null (exp)
> "Return non-nil if EXP will always evaluate to nil.
> This form does not take non-local exits or side-effects into account."
> (pcase exp
> ((or 'nil ''nil '#'nil '`nil
> `(,'\` (,'\, ,(pred macroexp-null))))
> t)))
Thanks, now you just need to explain why you needed this code and what
did its caller do to require this.
next prev parent reply other threads:[~2024-08-05 11:52 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-28 0:40 bug#72328: [PATCH] Nested backquote in pcase Thuna
2024-07-28 14:52 ` Michael Heerdegen via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-28 15:51 ` Thuna
2024-07-28 16:02 ` Eli Zaretskii
2024-07-28 16:20 ` Thuna
2024-07-29 16:03 ` Michael Heerdegen via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-29 16:45 ` Eli Zaretskii
2024-07-30 7:45 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-08-03 0:07 ` Thuna
2024-08-03 5:59 ` Eli Zaretskii
2024-08-03 13:22 ` Thuna
2024-08-04 17:10 ` Michael Heerdegen via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-08-04 21:27 ` Thuna
2024-08-05 11:52 ` Eli Zaretskii [this message]
2024-08-05 19:32 ` Thuna
2024-08-06 8:21 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-08-06 11:13 ` Eli Zaretskii
2024-08-06 13:09 ` Thuna
2024-08-07 3:33 ` Michael Heerdegen via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-08-07 11:53 ` Eli Zaretskii
2024-08-07 17:34 ` Thuna
2024-08-08 5:57 ` Eli Zaretskii
2024-08-23 3:25 ` Michael Heerdegen via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-08-23 14:49 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-08-23 16:04 ` Eli Zaretskii
2024-08-23 19:11 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-08-23 19:29 ` Eli Zaretskii
2024-09-07 7:18 ` Eli Zaretskii
2024-09-07 12:24 ` Michael Heerdegen via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-09-21 9:03 ` Eli Zaretskii
2024-09-22 13:30 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-09-22 14:16 ` Eli Zaretskii
2024-09-22 15:21 ` Michael Heerdegen via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-09-23 11:16 ` Eli Zaretskii
2024-09-24 18:02 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-09-25 19:04 ` Adam Porter
2024-09-26 6:13 ` Eli Zaretskii
2024-09-26 14:05 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-09-26 20:41 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-08-23 20:19 ` Thuna
2024-07-29 17:43 ` Thuna
2024-07-29 19:05 ` Michael Heerdegen via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-29 20:45 ` Michael Heerdegen via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-29 20:59 ` Thuna
2024-07-30 17:53 ` Michael Heerdegen via Bug reports for GNU Emacs, the Swiss army knife of text editors
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
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=86ikwfqj9w.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=72328@debbugs.gnu.org \
--cc=michael_heerdegen@web.de \
--cc=monnier@iro.umontreal.ca \
--cc=thuna.cing@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 public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).