Subject: bug#51140: 28.0.50; cl-letf appears not to work with native-comp (at least for process-exit-status and other builtins)

From: Robert Irelan <[email-masked]>
Date: Mon, 11 Oct 2021 19:57:37 -0700

Ah, I see what you mean. I get the same error when I fix the free
variables in the lambda.

On Mon, Oct 11, 2021 at 7:50 PM Michael Heerdegen
<[email-masked]> wrote:
>
> Robert Irelan <[email-masked]> writes:
>
> >     (defun +ivy--always-return-zero-exit-code-a (fn &rest args)
> >       (let ((process-exit-status-orig
> >              (symbol-function 'process-exit-status)))
> >         (cl-letf* (((symbol-function 'process-exit-status)
> >                     (lambda (_proc)
> >                       (let ((code (funcall process-exit-status-orig proc)))
> >                         (if (= code 2) 0 code)))))
> >           (apply fn args)))
>
> You didn't touch what I meant: the variable `proc' is free in your
> lambda.  There is only an argument with the similar name `_prog'.  So
> that code still looks broken.
>
> Michael.

-- 
Robert Irelan
[email-masked]