unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Michael Heerdegen <michael_heerdegen@web.de>
Cc: gerd.moellmann@gmail.com, 65209@debbugs.gnu.org,
	monnier@iro.umontreal.ca
Subject: bug#65209: 30.0.50; Unexpected behaviour of setq-local
Date: Sat, 26 Aug 2023 09:02:15 +0300	[thread overview]
Message-ID: <83jztimjdk.fsf@gnu.org> (raw)
In-Reply-To: <87h6om8shk.fsf@web.de> (message from Michael Heerdegen on Sat, 26 Aug 2023 04:09:11 +0200)

> From: Michael Heerdegen <michael_heerdegen@web.de>
> Cc: monnier@iro.umontreal.ca,  65209@debbugs.gnu.org,  gerd.moellmann@gmail.com
> Date: Sat, 26 Aug 2023 04:09:11 +0200
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > Please describe such situations, where the escape (i.e. how to avoid
> > bumping into this subtlety, by either rewriting the code or using
> > auxiliary variables) is not clear.
> 
> I don't know.  The problem is that when setting buffer-local variables
> it is unknown which bindings are in effect unless you explicitly look.

Only if you happen to write the convoluted code such as the one you
show, right?  Because in simple cases the results are predictable and
known in advance, right?

> I don't know whether something like this can happen at all.  Stefan's
> examples use `setq', not `setq-local', so maybe everything is just fine
> after his fix of this bug.  I can't tell for sure because I can't read C
> very efficiently and we don't have doc describing this, so I am not
> really a good person to ask.  Since Stefan is quiet, let's assume the
> situation is good enough now.

From where I stand, we cannot possibly include all of this in the
manual.  Emacs Lisp is a large and complex language, especially when
the code mixes some of the advanced features in complex ways.  Trying
to describe all of them and all of their combinations will just make
the manual harder to read.

There are times when I bump into situations like that, even though I
try to avoid such complex code as mush as possible (because it also
increases the probability of making mistakes due to complexity).  When
that happens, and the blunder is not clear upon examination and
debugging, I simply rewrite the code to use simpler patterns.  This is
my advice to anyone who bumps into these situations.





  reply	other threads:[~2023-08-26  6:02 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-10 13:50 bug#65209: 30.0.50; Unexpected behaviour of setq-local Gerd Möllmann
2023-08-10 14:00 ` Eli Zaretskii
2023-08-11  0:17 ` Michael Heerdegen
2023-08-11  4:56   ` Gerd Möllmann
2023-08-11  5:53     ` Michael Heerdegen
2023-08-11  8:17       ` Gerd Möllmann
2023-08-11 11:09         ` Eli Zaretskii
2023-08-11 11:34           ` Gerd Möllmann
2023-08-11 11:36             ` Eli Zaretskii
2023-08-13  4:16           ` Michael Heerdegen
2023-08-13  5:53             ` Eli Zaretskii
2023-08-11 14:58         ` Drew Adams
2023-08-13 16:43 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-13 19:51   ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-14  3:24     ` Michael Heerdegen
2023-08-14  4:05       ` Gerd Möllmann
2023-08-18 23:24         ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-20  4:43           ` Michael Heerdegen
2023-08-20  6:49             ` Eli Zaretskii
2023-08-22  3:09               ` Michael Heerdegen
2023-08-22 10:56                 ` Eli Zaretskii
2023-08-23  3:47                   ` Michael Heerdegen
2023-08-23 11:39                     ` Eli Zaretskii
2023-08-23 12:51                       ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-24  1:06                         ` Michael Heerdegen
2023-08-24  5:22                           ` Eli Zaretskii
2023-08-26  2:09                             ` Michael Heerdegen
2023-08-26  6:02                               ` Eli Zaretskii [this message]
2023-08-26 14:25                               ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-27  4:19                                 ` Michael Heerdegen
2023-08-24  3:31                       ` Michael Heerdegen
2023-08-24  5:35                         ` Eli Zaretskii

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=83jztimjdk.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=65209@debbugs.gnu.org \
    --cc=gerd.moellmann@gmail.com \
    --cc=michael_heerdegen@web.de \
    --cc=monnier@iro.umontreal.ca \
    /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).