bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#58396: 29.0.50; Optimization failure for add-to-list


From: Stefan Monnier
Subject: bug#58396: 29.0.50; Optimization failure for add-to-list
Date: Sat, 30 Sep 2023 09:56:09 -0400
User-agent: Gnus/5.13 (Gnus v5.13)

> +                  (let ((inhibit-message t)     ;[1]
> +                        (warning-minimum-log-level :emergency))
>                      (advice-add 'macroexpand :around macroexpand-advice)
> -                    (macroexpand-all sexp))
> +                    (condition-case nil         ;[3]
> +                        (macroexpand-all sexp)
> +                      (t sexp)))

This `t` catches more than errors.  Better replace it with `error`.

> -                  (let ((warning-minimum-log-level :emergency))
> +                  (let ((inhibit-message t)                  ;[1]
> +                        (macroexp-inhibit-compiler-macros t) ;[2]
> +                        (warning-minimum-log-level :emergency))
>                      (advice-add 'macroexpand-1 :around macroexpand-advice)
> -                    (macroexpand-all sexp elisp--local-macroenv))
> +                    (condition-case nil         ;[3]
> +                        (macroexpand-all sexp elisp--local-macroenv)
> +                      (t sexp)))

What kind of errors are we expecting to catch with this
`condition-case`?  The pre-existing advice is supposed to catch macro
expansion errors, and the new let-binding is supposed to catch
compiler-macro errors, so it seems to me there aren't any *expected*
errors left.  If so, better remove this `condition-case` (or replace it
with `with-demoted-errors`) since all it has left to do is to hide any
real coding error that may come up and that we'd like to be told about.


        Stefan






reply via email to

[Prev in Thread] Current Thread [Next in Thread]