unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Dave Goel <deego3@gmail.com>
To: "Gerd Möllmann" <gerd.moellmann@gmail.com>,
	"Dave Goel" <deego3@gmail.com>
Cc: 66940@debbugs.gnu.org
Subject: bug#66940: Dynamic scoping is all weird now?
Date: Sun, 5 Nov 2023 15:21:25 -0500	[thread overview]
Message-ID: <CAOCW0Dja5JrJHT1fTyES3jmvL_kR2MtTj24rLNXe8A_SGM32vw@mail.gmail.com> (raw)
In-Reply-To: <CAOCW0DiDypdSdpK38f94LS0rqGAC7LUtE5f9UqeUTzaRXFEbbQ@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 1666 bytes --]

Here's the simplest MRE I have so far -

(progn
  (setq lexical-binding nil)

  (let ((ii 1))
    (defmacro mac ()
      `(message "%S" ,ii)
      )
    (mac)))


Eval it three times, using C-x C-e.
Error on the third time.

(Following the prior response, I figured I will discuss on devel first to
confirm before officially reporting it, but was kinda directed back here.)



On Sun, Nov 5, 2023 at 2:07 PM Dave Goel <deego3@gmail.com> wrote:

> Gerd,
>
> Ok.
>
> I hope this bugreport is clearer -
>
> Here's some code.
>
> The variable ii is clearly set every time mac was defined OR called.
>
> backquote should expand, and mac should have read its content as (list
> 'message "%S" ii).
>
>
>
>
> (progn
>   (setq lexical-binding nil)
>
>   (dotimes (ii 10)
>     (defmacro mac ()
>       `(message "%S" ,ii)
>       )
>     (let
>         ((old_ii ii))
>       (setq ii 33)
>       (mac)
>       (setq ii old_ii)
>       )))
>
>
> You eval this code once. It works.
> You eval this again. It works.
> The third time, though, it lands you in the debugger. The very same code.
> Why the third time? And, why the debugger?  ii is well set every time it is
> used.
>
> That was bug (b). That's clearly an emacs bug?
>
>
> Here's (c) -
>
> The third time, change every "ii" to "var" ,and change every "old_ii" to
> "old_var".
> And, evaluate it.
> We still get the very same error, but the error involves ii, not var. The
> code we are defining and eval'ing has no "ii" whatsoever. It should have
> forgotten the old mac that involved ii. We defined a new mac involving
> "var."
>
>
>>
>>

[-- Attachment #2: Type: text/html, Size: 2895 bytes --]

  reply	other threads:[~2023-11-05 20:21 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-05  4:06 bug#66940: Dynamic scoping is all weird now? Dave Goel
2023-11-05  4:09 ` Dave Goel
2023-11-05  6:04   ` Gerd Möllmann
2023-11-05  6:58     ` Dave Goel
2023-11-05  7:25       ` Gerd Möllmann
2023-11-05  8:12         ` Dave Goel
2023-11-05  8:39           ` Gerd Möllmann
2023-11-05 19:07             ` Dave Goel
2023-11-05 20:21               ` Dave Goel [this message]
2023-11-06  1:52               ` Michael Heerdegen
2023-11-06  6:25                 ` Gerd Möllmann
2023-11-06 16:49                   ` Drew Adams
2023-11-06  6:57                 ` Dave Goel
2023-11-07  5:59                   ` Michael Heerdegen
2023-11-08  2:49                     ` Dave Goel
2023-11-08  3:08                       ` Michael Heerdegen
2023-11-08  3:21                         ` Dave Goel

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=CAOCW0Dja5JrJHT1fTyES3jmvL_kR2MtTj24rLNXe8A_SGM32vw@mail.gmail.com \
    --to=deego3@gmail.com \
    --cc=66940@debbugs.gnu.org \
    --cc=gerd.moellmann@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).