Subject: bug#56648: 29.0.50; Need for `compiled-function-p`

From: Stefan Monnier <[email-masked]>
Date: Tue, 19 Jul 2022 16:43:27 -0400

Package: Emacs
Version: 29.0.50

I think we need something like `compiled-function-p`, i.e. a function
which will return non-nil for both byte-code and native-code functions.
Its definition would be

    (defun compiled-function-p (obj)
      "<Appropriate doc here>"
      (or (byte-code-function-p obj)
          (subr-native-elisp-p obj)))

This is because `byte-code-function-p` shouldn't be changed to return
non-nil for native-code functions (both because it would break a lot of
code and because the name would be too confusing), but several uses of
`byte-code-function-p` actually want to know "is this an (inefficient)
source code function or not" (e.g. in unidata-gen.el,
loadup.el, bytecomp.el, ...).

        Stefan