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:
parent
77fa6befb4
commit
8b135af5bb
@ -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"))))
|
||||
|
@ -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
|
||||
|
@ -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))))
|
||||
|
@ -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.
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user