[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
feature/native-comp 36e0c3f: * When advising search in `comp-eln-load-pa
From: |
Andrea Corallo |
Subject: |
feature/native-comp 36e0c3f: * When advising search in `comp-eln-load-path' the first writable dir |
Date: |
Fri, 2 Oct 2020 13:19:08 -0400 (EDT) |
branch: feature/native-comp
commit 36e0c3fb07db9805e97fbd2650aa28ac2c169dba
Author: Andrea Corallo <akrl@sdf.org>
Commit: Andrea Corallo <akrl@sdf.org>
* When advising search in `comp-eln-load-path' the first writable dir
* lisp/emacs-lisp/comp.el (comp-tampoline-compile): Do not crash
if we can't write in the first entry in `comp-eln-load-path' but
search for another one.
---
lisp/emacs-lisp/comp.el | 30 +++++++++++++++++++-----------
1 file changed, 19 insertions(+), 11 deletions(-)
diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el
index 02b0811..ef13c0c 100644
--- a/lisp/emacs-lisp/comp.el
+++ b/lisp/emacs-lisp/comp.el
@@ -2593,17 +2593,25 @@ Return the its filename if found or nil otherwise."
;; the primitive we are replacing in the function reloc table.
(defalias trampoline-sym
`(closure nil ,lambda-list
- (let ((f #',subr-name))
- (,(if (memq '&rest lambda-list) 'apply 'funcall)
- f
- ,@(cl-loop
- for arg in lambda-list
- unless (memq arg '(&optional &rest))
- collect arg)))))
- (native-compile trampoline-sym nil
- (expand-file-name (comp-trampoline-filename subr-name)
- (concat (car comp-eln-load-path)
- comp-native-version-dir)))))
+ (let ((f #',subr-name))
+ (,(if (memq '&rest lambda-list) 'apply 'funcall)
+ f
+ ,@(cl-loop
+ for arg in lambda-list
+ unless (memq arg '(&optional &rest))
+ collect arg)))))
+ (native-compile
+ trampoline-sym nil
+ (cl-loop
+ for dir in comp-eln-load-path
+ for f = (expand-file-name
+ (comp-trampoline-filename subr-name)
+ (concat dir
+ comp-native-version-dir))
+ when (file-writable-p f)
+ do (cl-return f)
+ finally (error "Can't find a writable directory in \
+`comp-eln-load-path'")))))
;;;###autoload
(defun comp-subr-safe-advice (subr-name)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- feature/native-comp 36e0c3f: * When advising search in `comp-eln-load-path' the first writable dir,
Andrea Corallo <=