[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
feature/native-comp d018584: * Fix circular dependecy when loading a mod
From: |
Andrea Corallo |
Subject: |
feature/native-comp d018584: * Fix circular dependecy when loading a modified comp.el (bug#47049) |
Date: |
Fri, 12 Mar 2021 16:35:54 -0500 (EST) |
branch: feature/native-comp
commit d018584814e0c15f13bc458ba54491239b584069
Author: Andrea Corallo <akrl@sdf.org>
Commit: Andrea Corallo <akrl@sdf.org>
* Fix circular dependecy when loading a modified comp.el (bug#47049)
* lisp/emacs-lisp/comp.el (comp-subr-trampoline-install): Move it
before other functional code.
---
lisp/emacs-lisp/comp.el | 31 +++++++++++++++++--------------
1 file changed, 17 insertions(+), 14 deletions(-)
diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el
index a62efc7..866ee8d 100644
--- a/lisp/emacs-lisp/comp.el
+++ b/lisp/emacs-lisp/comp.el
@@ -648,6 +648,23 @@ Useful to hook into pass checkers.")
'native-compiler-error)
+;; Moved early to avoid circularity when comp.el is loaded and
+;; `macroexpand' needs to be advised (bug#47049).
+;;;###autoload
+(defun comp-subr-trampoline-install (subr-name)
+ "Make SUBR-NAME effectively advice-able when called from native code."
+ (unless (or (null comp-enable-subr-trampolines)
+ (memq subr-name comp-never-optimize-functions)
+ (gethash subr-name comp-installed-trampolines-h))
+ (cl-assert (subr-primitive-p (symbol-function subr-name)))
+ (comp--install-trampoline
+ subr-name
+ (or (comp-trampoline-search subr-name)
+ (comp-trampoline-compile subr-name)
+ ;; Should never happen.
+ (cl-assert nil)))))
+
+
(cl-defstruct (comp-vec (:copier nil))
"A re-sizable vector like object."
(data (make-hash-table :test #'eql) :type hash-table
@@ -3743,20 +3760,6 @@ Return the trampoline if found or nil otherwise."
finally (error "Cannot find suitable directory for output in \
`comp-eln-load-path'")))))
-;;;###autoload
-(defun comp-subr-trampoline-install (subr-name)
- "Make SUBR-NAME effectively advice-able when called from native code."
- (unless (or (null comp-enable-subr-trampolines)
- (memq subr-name comp-never-optimize-functions)
- (gethash subr-name comp-installed-trampolines-h))
- (cl-assert (subr-primitive-p (symbol-function subr-name)))
- (comp--install-trampoline
- subr-name
- (or (comp-trampoline-search subr-name)
- (comp-trampoline-compile subr-name)
- ;; Should never happen.
- (cl-assert nil)))))
-
;; Some entry point support code.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- feature/native-comp d018584: * Fix circular dependecy when loading a modified comp.el (bug#47049),
Andrea Corallo <=