Subject: Re: bug#46573: 28.0.50; Error when edebugging setting unbound place

From: Stefan Monnier <[email-masked]>
Date: Wed, 03 Mar 2021 18:26:12 -0500

>> >> I checked older Emacs versions -- (setf foo 'bar) works in Emacs 26.1,
>> >> but not in Emacs 27.1.
>> > Then we should try fixing it in Emacs 27.2, if that's possible without
>> > risky changes.
>>
>> I plan to install the patch below into `master` to fix this problem, but
>> I believe this change is sufficiently safe for the `emacs-27` branch, so
>> you agree I'll install it into `emacs-27` instead.
>
> I tried your patch (thanks for working on it) now.  The error is gone,
> but in my example
>
>   (setf y 3)
>
> when I step with edebug the thing still stops after the "y" to say the
> value is "3", not after the number "3" - that position is omitted.  Is
> this intentional?

Intentional, maybe not, but expected yes: the instrumentation adds
a "before" step right before the "GV assignment" itself and an "after"
step right after it.

Maybe we should add a special case for when `setf` is used for
a simple variable such that the variable is not instrumented at all,
just as is the case for `setq`?

        Stefan