From 2965f85459dfbafcd02c47177d6b1ee1a5aeb2d8 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Wed, 22 May 2024 14:45:35 -0400 Subject: [PATCH 2/2] Redirect calls to `subr-native-elisp-p` to `native-comp-function-p` * test/src/comp-tests.el (comp-tests-bootstrap, lambda-return) (lambda-return2, free-fun, free-fun2, free-fun-silly-name, speed--1) (compile-forms, comp-test-defsubst, primitive-redefine-compile-44221) (48029-1, 61917-1, tco, fw-prop-1, pure): * test/lisp/help-fns-tests.el (help-fns-test-lisp-defun): * lisp/subr.el (subr-primitive-p, primitive-function-p, symbol-file): * lisp/help-fns.el (find-lisp-object-file-name): * lisp/emacs-lisp/disass.el (disassemble-internal): * lisp/emacs-lisp/comp.el (comp--call-optim-form-call): * lisp/emacs-lisp/comp-run.el (comp-warn-primitives): * lisp/emacs-lisp/comp-common.el (comp-function-type-spec): * lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): * lisp/emacs-lisp/bytecomp.el (): Rename `subr-native-elisp-p` to `native-comp-function-p`. --- lisp/emacs-lisp/byte-opt.el | 5 +++-- lisp/emacs-lisp/bytecomp.el | 2 +- lisp/emacs-lisp/comp-common.el | 2 +- lisp/emacs-lisp/comp-run.el | 2 +- lisp/emacs-lisp/comp.el | 2 +- lisp/emacs-lisp/disass.el | 4 ++-- lisp/help-fns.el | 2 +- lisp/subr.el | 8 +++---- test/lisp/help-fns-tests.el | 2 +- test/src/comp-tests.el | 40 +++++++++++++++++----------------- 10 files changed, 35 insertions(+), 34 deletions(-) diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el index 4095726d276..c060c8d676b 100644 --- a/lisp/emacs-lisp/byte-opt.el +++ b/lisp/emacs-lisp/byte-opt.el @@ -1876,9 +1876,10 @@ byte-optimize-set byteorder car-safe cdr-safe char-or-string-p char-table-p condition-variable-p consp eq floatp indirect-function integer-or-marker-p integerp keywordp listp markerp - module-function-p multibyte-string-p mutexp natnump nlistp null + module-function-p multibyte-string-p mutexp native-comp-function-p + natnump nlistp null number-or-marker-p numberp recordp remove-pos-from-symbol - sequencep stringp subr-native-elisp-p subrp symbol-with-pos-p symbolp + sequencep stringp subrp symbol-with-pos-p symbolp threadp type-of user-ptrp vector-or-char-table-p vectorp wholenump ;; editfns.c bobp bolp buffer-size buffer-string current-message emacs-pid diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index 12b45f9f5b8..03cfbe6f4c9 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -6028,7 +6028,7 @@ byte-compile-report-ops (let ((byte-optimize nil) ; do it fast (byte-compile-warnings nil)) (mapc (lambda (x) - (unless (subr-native-elisp-p x) + (unless (native-comp-function-p x) (or noninteractive (message "compiling %s..." x)) (byte-compile x) (or noninteractive (message "compiling %s...done" x)))) diff --git a/lisp/emacs-lisp/comp-common.el b/lisp/emacs-lisp/comp-common.el index 355988838c7..ce6296953bf 100644 --- a/lisp/emacs-lisp/comp-common.el +++ b/lisp/emacs-lisp/comp-common.el @@ -518,7 +518,7 @@ comp-function-type-spec (if-let ((delc-type (function-get function 'function-type))) ;; Declared Lisp function (setf type-spec delc-type) - (when (subr-native-elisp-p f) + (when (native-comp-function-p f) ;; Native compiled inferred (setf kind 'inferred type-spec (subr-type f)))))) diff --git a/lisp/emacs-lisp/comp-run.el b/lisp/emacs-lisp/comp-run.el index 5cc61579030..f159c5b1911 100644 --- a/lisp/emacs-lisp/comp-run.el +++ b/lisp/emacs-lisp/comp-run.el @@ -341,7 +341,7 @@ comp-run-async-workers (clrhash comp-deferred-pending-h))) (defconst comp-warn-primitives - '(null memq gethash and subrp not subr-native-elisp-p + '(null memq gethash and subrp not native-comp-function-p comp--install-trampoline concat if symbolp symbol-name make-string length aset aref length> mapcar expand-file-name file-name-as-directory file-exists-p native-elisp-load) diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el index 4c76f95a0e9..32d4442ca1b 100644 --- a/lisp/emacs-lisp/comp.el +++ b/lisp/emacs-lisp/comp.el @@ -2847,7 +2847,7 @@ comp--call-optim-form-call (subrp (subrp f)) (comp-func-callee (comp--func-in-unit callee))) (cond - ((and subrp (not (subr-native-elisp-p f))) + ((and subrp (not (native-comp-function-p f))) ;; Trampoline removal. (let* ((callee (intern (subr-name f))) ; Fix aliased names. (maxarg (cdr (subr-arity f))) diff --git a/lisp/emacs-lisp/disass.el b/lisp/emacs-lisp/disass.el index 91427166137..07072f2a2be 100644 --- a/lisp/emacs-lisp/disass.el +++ b/lisp/emacs-lisp/disass.el @@ -91,8 +91,8 @@ disassemble-internal args) (setq obj (autoload-do-load obj name)) (if (subrp obj) - (if (and (fboundp 'subr-native-elisp-p) - (subr-native-elisp-p obj)) + (if (and (fboundp 'native-comp-function-p) + (native-comp-function-p obj)) (progn (require 'comp) (let ((eln (native-comp-unit-file (subr-native-comp-unit obj)))) diff --git a/lisp/help-fns.el b/lisp/help-fns.el index 182b22549b5..af27d101ac8 100644 --- a/lisp/help-fns.el +++ b/lisp/help-fns.el @@ -475,7 +475,7 @@ find-lisp-object-file-name (cond ((and (not file-name) (subrp type) - (not (subr-native-elisp-p type))) + (not (native-comp-function-p type))) ;; A built-in function. The form is from `describe-function-1'. (if (or (get-buffer " *DOC*") (and also-c-source diff --git a/lisp/subr.el b/lisp/subr.el index d6481fdf73e..d171ac7adac 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -316,14 +316,14 @@ subr-primitive-p Such objects can be functions or special forms." (declare (side-effect-free error-free)) (and (subrp object) - (not (subr-native-elisp-p object)))) + (not (native-comp-function-p object)))) (defsubst primitive-function-p (object) "Return t if OBJECT is a built-in primitive function. This excludes special forms, since they are not functions." (declare (side-effect-free error-free)) (and (subrp object) - (not (or (subr-native-elisp-p object) + (not (or (native-comp-function-p object) (eq (cdr (subr-arity object)) 'unevalled))))) (defsubst xor (cond1 cond2) @@ -3022,7 +3022,7 @@ define-symbol-prop (defvar comp-native-version-dir) (defvar native-comp-eln-load-path) -(declare-function subr-native-elisp-p "data.c") +(declare-function native-comp-function-p "data.c") (declare-function native-comp-unit-file "data.c") (declare-function subr-native-comp-unit "data.c") (declare-function comp-el-to-eln-rel-filename "comp.c") @@ -3071,7 +3071,7 @@ symbol-file (symbolp symbol) (native-comp-available-p) ;; If it's a defun, we have a shortcut. - (subr-native-elisp-p (symbol-function symbol))) + (native-comp-function-p (symbol-function symbol))) ;; native-comp-unit-file returns unnormalized file names. (expand-file-name (native-comp-unit-file (subr-native-comp-unit (symbol-function symbol)))) diff --git a/test/lisp/help-fns-tests.el b/test/lisp/help-fns-tests.el index 82350a4bc71..7393a2624fe 100644 --- a/test/lisp/help-fns-tests.el +++ b/test/lisp/help-fns-tests.el @@ -67,7 +67,7 @@ help-fns-test-lisp-defun (result (help-fns-tests--describe-function 'last))) (should (string-match regexp result)) (should (member (match-string 1 result) - '("subr-native-elisp" "byte-code-function"))))) + '("native-comp-function" "byte-code-function"))))) (ert-deftest help-fns-test-lisp-defsubst () (let ((regexp "a byte-code-function in .+subr\\.el") diff --git a/test/src/comp-tests.el b/test/src/comp-tests.el index 5deff03fd84..dffb7097a3e 100644 --- a/test/src/comp-tests.el +++ b/test/src/comp-tests.el @@ -85,13 +85,13 @@ comp-tests-bootstrap (copy-file comp-src comp2-src t) (let ((load-no-native t)) (load (concat comp-src "c") nil nil t t)) - (should-not (subr-native-elisp-p (symbol-function 'native-compile))) + (should-not (native-comp-function-p (symbol-function 'native-compile))) (message "Compiling stage1...") (let* ((t0 (current-time)) (comp1-eln (native-compile comp1-src))) (message "Done in %d secs" (float-time (time-since t0))) (load comp1-eln nil nil t t) - (should (subr-native-elisp-p (symbol-function 'native-compile))) + (should (native-comp-function-p (symbol-function 'native-compile))) (message "Compiling stage2...") (let ((t0 (current-time)) (comp2-eln (native-compile comp2-src))) @@ -325,15 +325,15 @@ buffer (comp-deftest lambda-return () (let ((f (comp-tests-lambda-return-f))) - (should (subr-native-elisp-p f)) + (should (native-comp-function-p f)) (should (= (funcall f 3) 4)))) (comp-deftest lambda-return2 () "Check a nested lambda function gets native compiled." (let ((f (comp-tests-lambda-return-f2))) - (should (subr-native-elisp-p f)) + (should (native-comp-function-p f)) (let ((f2 (funcall f))) - (should (subr-native-elisp-p f2)) + (should (native-comp-function-p f2)) (should (= (funcall f2 3) 4))))) (comp-deftest recursive () @@ -391,7 +391,7 @@ free-fun t) (native-compile #'comp-tests-free-fun-f) - (should (subr-native-elisp-p (symbol-function 'comp-tests-free-fun-f))) + (should (native-comp-function-p (symbol-function 'comp-tests-free-fun-f))) (should (= (comp-tests-free-fun-f) 3)) (should (string= (documentation #'comp-tests-free-fun-f) "Some doc.")) @@ -412,8 +412,8 @@ free-fun2 (let* ((f (symbol-function 'comp-tests-free-fun-f2)) (f2 (funcall f))) - (should (subr-native-elisp-p f)) - (should (subr-native-elisp-p f2)) + (should (native-comp-function-p f)) + (should (native-comp-function-p f2)) (should (string= (documentation f2) "Some doc.")) (should (commandp f2)) (should (equal (interactive-form f2) '(interactive nil))) @@ -425,7 +425,7 @@ free-fun-silly-name "Check we are able to compile a single function." (eval '(defun comp-tests/free\fun-f ()) t) (native-compile #'comp-tests/free\fun-f) - (should (subr-native-elisp-p (symbol-function 'comp-tests/free\fun-f)))) + (should (native-comp-function-p (symbol-function 'comp-tests/free\fun-f)))) (comp-deftest bug-40187 () "Check function name shadowing. @@ -436,7 +436,7 @@ bug-40187 (comp-deftest speed--1 () "Check that at speed -1 we do not native compile." (should (= (comp-test-speed--1-f) 3)) - (should-not (subr-native-elisp-p (symbol-function 'comp-test-speed--1-f)))) + (should-not (native-comp-function-p (symbol-function 'comp-test-speed--1-f)))) (comp-deftest bug-42360 () "." @@ -497,22 +497,22 @@ compile-forms (should-error (native-compile '(+ 1 foo))) (let ((lexical-binding t) (f (native-compile '(lambda (x) (1+ x))))) - (should (subr-native-elisp-p f)) + (should (native-comp-function-p f)) (should (= (funcall f 2) 3))) (let* ((lexical-binding nil) (f (native-compile '(lambda (x) (1+ x))))) - (should (subr-native-elisp-p f)) + (should (native-comp-function-p f)) (should (= (funcall f 2) 3)))) (comp-deftest comp-test-defsubst () ;; Bug#42664, Bug#43280, Bug#44209. - (should-not (subr-native-elisp-p (symbol-function 'comp-test-defsubst-f)))) + (should-not (native-comp-function-p (symbol-function 'comp-test-defsubst-f)))) (comp-deftest primitive-redefine-compile-44221 () "Test the compiler still works while primitives are redefined (bug#44221)." (cl-letf (((symbol-function 'delete-region) (lambda (_ _)))) - (should (subr-native-elisp-p + (should (native-comp-function-p (native-compile '(lambda () (delete-region (point-min) (point-max)))))))) @@ -564,7 +564,7 @@ comp-test-47868-1 (comp-deftest 48029-1 () "" - (should (subr-native-elisp-p + (should (native-comp-function-p (symbol-function 'comp-test-48029-nonascii-žžž-f)))) (comp-deftest 61917-1 () @@ -578,7 +578,7 @@ 61917-1 (setf x (native-compile '(lambda () (delete-region 1 2)))) - (should (subr-native-elisp-p x)) + (should (native-comp-function-p x)) (funcall x) (advice-remove #'delete-region f) (should (equal comp-test-primitive-redefine-args '(1 2)))))) @@ -874,7 +874,7 @@ tco (comp-tests-tco-f (+ a b) a (- count 1)))) t) (native-compile #'comp-tests-tco-f) - (should (subr-native-elisp-p (symbol-function 'comp-tests-tco-f))) + (should (native-comp-function-p (symbol-function 'comp-tests-tco-f))) (should (= (comp-tests-tco-f 1 0 10) 55)))) (defun comp-tests-fw-prop-checker-1 (_) @@ -901,7 +901,7 @@ fw-prop-1 (length c))) ; <= has to optimize t) (native-compile #'comp-tests-fw-prop-1-f) - (should (subr-native-elisp-p (symbol-function 'comp-tests-fw-prop-1-f))) + (should (native-comp-function-p (symbol-function 'comp-tests-fw-prop-1-f))) (should (= (comp-tests-fw-prop-1-f) 6)))) (defun comp-tests--type-lists-equal (l1 l2) @@ -1556,10 +1556,10 @@ pure (declare-function comp-tests-pure-caller-f nil) (declare-function comp-tests-pure-fibn-entry-f nil) - (should (subr-native-elisp-p (symbol-function 'comp-tests-pure-caller-f))) + (should (native-comp-function-p (symbol-function 'comp-tests-pure-caller-f))) (should (= (comp-tests-pure-caller-f) 4)) - (should (subr-native-elisp-p (symbol-function 'comp-tests-pure-fibn-entry-f))) + (should (native-comp-function-p (symbol-function 'comp-tests-pure-fibn-entry-f))) (should (= (comp-tests-pure-fibn-entry-f) 6765)))) (defvar comp-tests-cond-rw-checked-function nil -- 2.43.0