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

From: Sean Whitton <[email-masked]>
Date: Wed, 27 Nov 2024 10:37:27 +0800

Hello,

On Mon 25 Nov 2024 at 10:24pm -05, Stefan Monnier via "Bug reports for GNU Emacs, the Swiss army knife of text editors" wrote:

>> 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.

Okay, done, thanks.

Osama, if you could let us know whether this fixes the original bug, we
can close this.

-- 
Sean Whitton