GNU bug report logs - #68075
30.0.50; New special form `handler-bind`

Previous Next

Package: emacs;

Reported by: Stefan Monnier <monnier <at> iro.umontreal.ca>

Date: Thu, 28 Dec 2023 06:34:01 UTC

Severity: normal

Found in version 30.0.50

Done: Stefan Monnier <monnier <at> iro.umontreal.ca>

Bug is archived. No further changes may be made.

Full log


Message #29 received at 68075 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 68075 <at> debbugs.gnu.org
Subject: Re: bug#68075: 30.0.50; New special form `handler-bind`
Date: Sun, 31 Dec 2023 14:07:18 -0500
>> >> +@var{handler} is called in the dynamic context where the error
>> >> +happened, without first unwinding the stack, meaning that all the
>> >> +dynamic bindings are still in effect,
>> >
>> > Should we tell something about the effects of lexical-binding on those
>> > "dynamic bindings"?
>> 
>> It's not related to `handler-bind` in any case, so if
>> we want to say something about it, we should do it elsewhere (and
>> I think we already do when we discuss lexical binding).
>
> Maybe I'm confused by your use of "dynamic context" and "dynamic
> bindings" in that passage, which somehow hinted on dynamic vs lexical
> binding.

Of course: "dynamic context" refers to things that include dynamically
bound variable (as well as the set of active catch tags, error handlers,
and unwind-protect forms), and does not include statically bound
variables.  `handler-bind` is different from `condition-case` in the way
it interacts with that dynamic context.  But for statically bound
variables, well, they obey the rules of static scoping so there's
nothing to influence here.

> If this is irrelevant, maybe try to reword the text so that
> this potentially confusing terminology is not used?

Could you give an example piece of code where this "confusing
terminology" makes you unsure how things would work?


        Stefan





This bug report was last modified 1 year and 138 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.