]> git.eshelyaron.com Git - emacs.git/commitdiff
* Add two hooks for async native compilation
authorAndrea Corallo <akrl@sdf.org>
Sun, 23 Feb 2020 14:49:46 +0000 (14:49 +0000)
committerAndrea Corallo <akrl@sdf.org>
Sun, 23 Feb 2020 16:50:15 +0000 (16:50 +0000)
lisp/emacs-lisp/comp.el

index c13844c70b7e8d43a47b0d26126271aa24b932f2..af7963289dc9a4b6113c658ee49d90df209b5a1c 100644 (file)
@@ -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))