[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#65620: void function edebug-after
From: |
Michael Heerdegen |
Subject: |
bug#65620: void function edebug-after |
Date: |
Thu, 31 Aug 2023 01:09:11 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Alan Mackenzie <acm@muc.de> writes:
> (defmacro hash-if (condition then-form &rest else-forms)
> "A conditional compilation macro analogous to C's #if.
> Evaluate CONDITION at macro-expansion time. If it is non-nil,
> expand the macro to THEN-FORM. Otherwise expand it to ELSE-FORMS
> enclosed in a `progn' form. ELSE-FORMS may be empty."
> (declare (indent 2)
> (debug (form sexp &rest sexp)))
> (if (eval condition lexical-binding)
> then-form
> (cons 'progn else-forms)))
Dunno if someone is able to fix this (I'm not). Until then using
`def-form` `or `sexp` instead of `form` works in a better way (the
former edebugs CONDITION when instrumenting, the latter would omit
edebugging the CONDITION entirely).
Anyway, the key point in the above example is that macroexpanding (while
instrumenting) combined with the `eval' call seems to lead to the
evaluation of instrumented code outside of an Edebug session when
CONDITION is instrumented using `form`. `eval-when-compile' uses
`def-form` for example - I guess using `form` in this case doesn't work
as one might expect.
Michael.