Subject: bug#76470: 31.0.50; `setq-local` makes the var buffer-local too soon

From: Stefan Monnier <[email-masked]>
Date: Sun, 23 Feb 2025 16:54:21 -0500

>> As for how to implement that fix.  The simplest way is to just change
>> the macro, of course.  But maybe a better way is to do it by introducing
>> a `set-local` function (sibling to `set` and `set-default`) and then
>> make the macro expand to a call to this function.
> What are the benefits of adding a new function instead of just changing
> the macro?

- It adds the function (which is both a benefit and downside
  depending on how you look at it).
- It makes the semantics more clear (this bug wouldn't have occurred if
  I had started with that).
- It opens up the possibility to have a "real" `set-local` which doesn't
  introduce the spurious intermediate state where the var has already
  been made buffer-local but not yet set.

        Stefan