1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-14 09:39:42 +00:00

Provide feature nativecomp and make use of it

* lisp/emacs-lisp/comp.el (comp-ensure-native-compiler): Use
	`featurep' to identify if the native compiler is available.
	* lisp/emacs-lisp/nadvice.el (advice--add-function): Likewise.
	* lisp/emacs-lisp/package.el (package--delete-directory): Likewise.
	* lisp/loadup.el: Likewise.
	* src/comp.c (syms_of_comp): Provide feature nativecomp.
This commit is contained in:
Andrea Corallo 2020-10-10 18:18:09 +02:00
parent 77fa6befb4
commit 8b135af5bb
5 changed files with 6 additions and 5 deletions

View File

@ -422,7 +422,7 @@ CFG is mutated by a pass.")
Raise an error otherwise.
To be used by all entry points."
(cond
((null (boundp 'comp-ctxt))
((null (featurep 'nativecomp))
(error "Emacs not compiled with native compiler support (--with-nativecomp)"))
((null (native-comp-available-p))
(error "Cannot find libgccjit"))))

View File

@ -318,7 +318,7 @@ is also interactive. There are 3 cases:
;;;###autoload
(defun advice--add-function (where ref function props)
(when (and (boundp 'comp-ctxt)
(when (and (featurep 'nativecomp)
(subr-primitive-p (gv-deref ref)))
(let ((subr-name (intern (subr-name (gv-deref ref)))))
;; Requiring the native compiler to advice `macroexpand' cause a

View File

@ -2207,7 +2207,7 @@ If some packages are not installed propose to install them."
"Delete DIR recursively.
Clean-up the corresponding .eln files if Emacs is native
compiled."
(when (boundp 'comp-ctxt)
(when (featurep 'nativecomp)
(cl-loop
for file in (directory-files-recursively dir ".el\\'")
do (comp-clean-up-stale-eln (comp-el-to-eln-filename file))))

View File

@ -449,7 +449,7 @@ lost after dumping")))
;; At this point, we're ready to resume undo recording for scratch.
(buffer-enable-undo "*scratch*")
(when (boundp 'comp-ctxt)
(when (featurep 'nativecomp)
;; Fix the compilation unit filename to have it working when
;; when installed or if the source directory got moved. This is set to be
;; a pair in the form: (rel-path-from-install-bin . rel-path-from-local-bin).
@ -510,7 +510,7 @@ lost after dumping")))
((equal dump-mode "bootstrap") "emacs")
((equal dump-mode "pbootstrap") "bootstrap-emacs.pdmp")
(t (error "unrecognized dump mode %s" dump-mode)))))
(when (and (boundp 'comp-ctxt)
(when (and (featurep 'nativecomp)
(equal dump-mode "pdump"))
;; Don't enable this before bootstrap is completed the as the
;; compiler infrastructure may not be usable.

View File

@ -5300,6 +5300,7 @@ The last directory of this list is assumed to be the system one. */);
doc: /* Hash table subr-name -> bool. */);
Vcomp_installed_trampolines_h = CALLN (Fmake_hash_table);
Fprovide (intern_c_string ("nativecomp"), Qnil);
#endif /* #ifdef HAVE_NATIVE_COMP */
defsubr (&Snative_comp_available_p);