GNU bug report logs - #48585
28.0.50; Missing Edebug instrumentation for some 'if-let' variants

Previous Next

Package: emacs;

Reported by: Philipp <p.stephani2 <at> gmail.com>

Date: Sat, 22 May 2021 11:38:02 UTC

Severity: normal

Found in version 28.0.50

Full log


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

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: Philipp <p.stephani2 <at> gmail.com>, 48585 <at> debbugs.gnu.org
Subject: Re: bug#48585: 28.0.50; Missing Edebug instrumentation for some
 'if-let' variants
Date: Sat, 16 Jul 2022 18:25:55 -0400
>> The 'symbolp' specification element causes Edebug to not instrument the
>> 'x' symbol.  However, the 'symbolp' specification is also necessary
>> here; we couldn't just replace it with 'form' because that would make
>> the branches overlap.  What we'd need here is something like
>> [&and symbolp form], i.e. match only in case of a symbol, but also
>> instrument as a form.  IIUC Edebug doesn't support such constructs yet.
>
> Perhaps Stefan has some comments here; added to the CCs.

The instrumentation takes place before expanding the macro, so either we
instrument the `x` into a form (edebug-<foo> ... x ...) or we leave the
`x` untouched and have no instrumentation.  We can't have it both ways
from that side.

So if we want the occurrence of `x` which *evaluates* `x` (as opposed to
the occurrence that *binds* the new variable) to be instrumented, we
need to change the macro to accept a "variable name" of the form
(edebug-<foo> ... x ...) and somehow strip the edebug instrumentation
when we use the argument as a variable name in a binding position.

As someone who doesn't much like `if-let`, I'll let someone else figure
out how to that somewhat cleanly.  Also to be honest I also wonder if
that would be worthwhile.


        Stefan





This bug report was last modified 3 years and 64 days ago.

Previous Next


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