diff options
author | Andrea Corallo <akrl@sdf.org> | 2023-03-05 10:46:18 +0100 |
---|---|---|
committer | Andrea Corallo <akrl@sdf.org> | 2023-03-05 11:06:37 +0100 |
commit | 9c18af0cfaf2d949d782f6c44c6604b54dbb87a0 (patch) | |
tree | 4c2df058e89d64a91231247295f81e368c39a379 /lisp/emacs-lisp/comp.el | |
parent | 5af695c7479f97d86bf913b5ff96d3f3b744781f (diff) | |
download | emacs-9c18af0cfaf2d949d782f6c44c6604b54dbb87a0.tar.gz emacs-9c18af0cfaf2d949d782f6c44c6604b54dbb87a0.tar.bz2 emacs-9c18af0cfaf2d949d782f6c44c6604b54dbb87a0.zip |
* Warn when certain primitives are redefined (bug#61880)
* lisp/emacs-lisp/comp.el (comp-warn-primitives): New constant.
(comp-subr-trampoline-install): Warn when a sensitive primitive is
being redefined.
Diffstat (limited to 'lisp/emacs-lisp/comp.el')
-rw-r--r-- | lisp/emacs-lisp/comp.el | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el index 046d169f00f..48756caf100 100644 --- a/lisp/emacs-lisp/comp.el +++ b/lisp/emacs-lisp/comp.el @@ -698,11 +698,22 @@ Useful to hook into pass checkers.") (defvar comp-no-spawn nil "Non-nil don't spawn native compilation processes.") +(defconst comp-warn-primitives + '(null memq gethash and subrp not subr-native-elisp-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) + "List of primitives we want to warn about in case of redefinition. +This are essential for the trampoline machinery to work properly.") + ;; Moved early to avoid circularity when comp.el is loaded and ;; `macroexpand' needs to be advised (bug#47049). ;;;###autoload (defun comp-subr-trampoline-install (subr-name) "Make SUBR-NAME effectively advice-able when called from native code." + (when (memq subr-name comp-warn-primitives) + (warn "Redefining `%s' might breaks trampoline native compilation." + subr-name)) (unless (or (null native-comp-enable-subr-trampolines) (memq subr-name native-comp-never-optimize-functions) (gethash subr-name comp-installed-trampolines-h)) |