From 48b131c6d17383eed4b09634e4dddf226b0cd3cd Mon Sep 17 00:00:00 2001 From: Andrea Corallo Date: Sun, 23 Feb 2020 14:49:46 +0000 Subject: [PATCH] * Add two hooks for async native compilation --- lisp/emacs-lisp/comp.el | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el index c13844c70b7..af7963289dc 100644 --- a/lisp/emacs-lisp/comp.el +++ b/lisp/emacs-lisp/comp.el @@ -83,6 +83,20 @@ performed at `comp-speed' > 0." :type 'list :group 'comp) +(defcustom comp-async-cu-done-hook nil + "This hook is run whenever an asyncronous native compilation +finish compiling a single compilation unit. +The argument FILE passed to the function is the filename used as +compilation input." + :type 'hook + :group 'comp) + +(defcustom comp-async-all-done-hook nil + "This hook is run whenever the asyncronous native compilation +finished compiling all input files." + :type 'hook + :group 'comp) + (defvar comp-dry-run nil "When non nil run everything but the C back-end.") @@ -2016,6 +2030,9 @@ Prepare every function for final compilation and drive the C back-end." "--eval" (prin1-to-string code)) :sentinel (lambda (prc _event) + (run-hook-with-args + 'comp-async-cu-done-hook + f) (accept-process-output prc) (comp-start-async-worker))) comp-prc-pool) @@ -2023,6 +2040,7 @@ Prepare every function for final compilation and drive the C back-end." (when (cl-notany #'process-live-p comp-prc-pool) (let ((msg "Compilation finished.")) (setf comp-prc-pool ()) + (run-hooks 'comp-async-all-done-hook) (with-current-buffer (get-buffer-create comp-async-buffer-name) (save-excursion (goto-char (point-max)) -- 2.39.5