Subject: Re: bug#59793: 29.0.60; subr.elc is not compiled correctly

From: Feng Shu <[email-masked]>
Date: Sun, 04 Dec 2022 05:49:06 +0800

Eli Zaretskii <[email-masked]> writes:

>> From: Akib Azmain Turja <[email-masked]>
>> Cc: Feng Shu <[email-masked]>,  [email-masked]
>> Date: Sat, 03 Dec 2022 23:16:47 +0600
>> 
>> > Am I missing something, or do you redefine a function and then expect it to work like you never redefined it?
>> 
>> Unexpected: bug59593-yank just inserts the killed text.
>> Expected: bug59593-yank intercepts and shows the killed text in echo
>> area.
>
> You have redefined a subr.el function with cl-letf*, so how is what happens
> as result a bug in Emacs?  Does the original subr.el function not do what
> it's supposed to do, before you replace it?
>
> I understand you didn't expect the result of cl-letf*, and were surprised by
> what you saw, but I don't understand why you expect the Emacs development to
> do something about your surprise.

I think the issue is that: 
when I run emacs-29 first, I can not temp override `insert' function
in `insert-for-yank-1' with the help of cl-letf in bug59593-yank

(require 'cl-lib)
(defun bug59593-yank (&optional arg)
  (interactive "*P")
  (cl-letf* ((inhibit-read-only t)
             (insert-for-yank (symbol-function #'insert-for-yank))
             ((symbol-function #'insert-for-yank)
              (lambda (&rest args)
                (cl-letf (((symbol-function #'insert)
                           (lambda (&rest args)
                             (message
                              "%S"
                              (mapconcat (lambda (arg)
                                           (if (stringp arg)
                                               arg
                                             (string arg)))
                                         args "")))))
                  (apply insert-for-yank args)))))
    (yank arg)))

but after I run (load "subr.el"), overriding `insert' success.
if I run (load "subr.elc"), overriding do not success.

so I think subr.elc maybe has some problem.

by the way, I use f6e2f30f394a270c2eca9a9a14be46876d2a86e5 to test

>
>> > So I'm still confused...
>> 
>> Is it clear now?  (Somehow, I think, no.)
>
> See above: I understand what you are saying, but not why this is submitted
> as a bug to the Emacs development team.

--