Subject: Re: bug#74530: 31.0.50; Emacs fails to compile cape package

From: Stefan Monnier <[email-masked]>
Date: Mon, 25 Nov 2024 22:24:11 -0500

> Stefan's commit a0f60293d9 says
>
>     `byte-compile-macro-environment` contains definitions which expand
>     to code that is only understood by the rest of the byte-compiler, so
>     using it for code which isn't being byte-compiled leads to errors
>     such as references to non-existing function
>     `internal--with-suppressed-warnings`.
>
> So it sounds like we are inappropriately tangling with machinery
> internal to the byte compiler.  I used with-suppressed-warnings in a
> completely standard way, so I think the most likely thing is that we
> have uncovered a bug in the byte compiler, probably something to do with
> evaluating top-level forms while compiling.  Adding Stefan.

My guess is that it's the `when-let` inside an `eval-and-compile` that's
making us bite the dust.

I'd welcome a patch to fix that problem, but in the mean time a
patch that actually fixes `when-let` to not use `if-let` (and hence not
use `with-suppressed-warnings` either) might be a simpler solution.

        Stefan