mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-24 07:20:37 +00:00
Add trampoline AOT compilation target (bug#58318)
* Makefile.in (trampolines): New target. * lisp/Makefile.in (trampolines): Likewise. * lisp/emacs-lisp/comp.el (comp-compile-all-trampolines): New function.
This commit is contained in:
parent
61b6da5ace
commit
3744720904
@ -530,6 +530,11 @@ lisp: src
|
||||
lib lib-src lisp nt: Makefile
|
||||
$(MAKE) -C $@ all
|
||||
|
||||
trampolines: src lisp
|
||||
ifeq ($(HAVE_NATIVE_COMP),yes)
|
||||
$(MAKE) -C lisp trampolines
|
||||
endif
|
||||
|
||||
# Pass an unexpanded $srcdir to src's Makefile, which then
|
||||
# expands it using its own value of srcdir (which points to the
|
||||
# source directory of src/).
|
||||
|
@ -430,6 +430,12 @@ compile-always:
|
||||
find $(lisp) -name '*.elc' $(FIND_DELETE)
|
||||
$(MAKE) compile
|
||||
|
||||
.PHONY: trampolines
|
||||
trampolines: compile
|
||||
ifeq ($(HAVE_NATIVE_COMP),yes)
|
||||
$(emacs) -l comp -f comp-compile-all-trampolines
|
||||
endif
|
||||
|
||||
.PHONY: backup-compiled-files compile-after-backup
|
||||
|
||||
# Backup compiled Lisp files in elc.tar.gz. If that file already
|
||||
|
@ -4204,6 +4204,17 @@ bytecode definition was not changed in the meantime)."
|
||||
|
||||
;;; Compiler entry points.
|
||||
|
||||
(defun comp-compile-all-trampolines ()
|
||||
"Pre-compile AOT all trampolines."
|
||||
(let ((comp-running-batch-compilation t)
|
||||
;; We want to target only the 'native-lisp' directory.
|
||||
(native-compile-target-directory
|
||||
(car (last native-comp-eln-load-path))))
|
||||
(mapatoms (lambda (f)
|
||||
(when (subr-primitive-p (symbol-function f))
|
||||
(message "Compiling trampoline for: %s" f)
|
||||
(comp-trampoline-compile f))))))
|
||||
|
||||
;;;###autoload
|
||||
(defun comp-lookup-eln (filename)
|
||||
"Given a Lisp source FILENAME return the corresponding .eln file if found.
|
||||
|
Loading…
Reference in New Issue
Block a user