unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: lin Sun via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
To: 62609@debbugs.gnu.org, Eli Zaretskii <eliz@gnu.org>
Subject: bug#62609: 29.0.60; [PATCH] src/comp.c: New variable `comp-el-to-eln-strip-prefix` for `comp-el-to-eln-rel-filename`
Date: Mon, 3 Apr 2023 00:53:18 +0000	[thread overview]
Message-ID: <CABCREdpwPgOz1oDu0AOZRyP6OStH+cVDZsa5OnaWV=wpC+bMtA@mail.gmail.com> (raw)
In-Reply-To: <CABCREdojDr56zAi62=pEoi-Oh5tAcCzTNoPFaNKRFVoJgVVVCA@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 467 bytes --]

Hi Eli,

Apologize for my wrong comment.
You're right, the patch will allow to relocate/copy an elisp source folder from
/home/userA/.emacs.d/epla/**.el to
/home/userB/.emacs.d/epla/**.el.
So the patch should be the
"0002-New-variable-comp-el-to-eln-strip-prefix-for-comp-el.patch"
attached in this email.

And agree with you, it's dangerous when this variable is configured
with an arbitrary value.
So please feel free to close this ticket. Thanks

Best regards
Lin

[-- Attachment #2: 0002-New-variable-comp-el-to-eln-strip-prefix-for-comp-el.patch --]
[-- Type: text/x-patch, Size: 3181 bytes --]

From 78cfbda547678a1c655c8c3c06059b6d16696380 Mon Sep 17 00:00:00 2001
From: Lin Sun <sunlin7@hotmail.com>
Date: Sun, 2 Apr 2023 00:00:09 +0000
Subject: [PATCH] New variable `comp-el-to-eln-strip-prefix` for
 `comp-el-to-eln-rel-filename`

* src/comp.c: define the variable `comp-el-to-eln-strip-prefix`
* emacs-lisp/comp.el: forward the variable to native compile workers
---
 lisp/emacs-lisp/comp.el |  1 +
 src/comp.c              | 17 +++++++++++++++--
 2 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el
index e97832455b9..6c9ccb247ca 100644
--- a/lisp/emacs-lisp/comp.el
+++ b/lisp/emacs-lisp/comp.el
@@ -3996,6 +3996,7 @@ comp-run-async-workers
                                              native-comp-driver-options
                                              load-path
                                              backtrace-line-length
+                                             comp-el-to-eln-strip-prefix
                                              ;; package-load-list
                                              ;; package-user-dir
                                              ;; package-directory-list
diff --git a/src/comp.c b/src/comp.c
index 3f72d088a66..d464616ff3e 100644
--- a/src/comp.c
+++ b/src/comp.c
@@ -4400,7 +4400,11 @@ DEFUN ("comp-el-to-eln-rel-filename", Fcomp_el_to_eln_rel_filename,
 and Emacs must have been compiled with zlib; the file will be
 uncompressed on the fly to hash its contents.
 Value includes the original base name, followed by 2 hash values,
-one for the file name and another for its contents, followed by .eln.  */)
+one for the file name and another for its contents, followed by .eln.
+
+The file part hash value is generated from the absolute file path, however,
+the absolute path can be stripped with `comp-el-to-eln-strip-prefix' to left
+the significant part for hashing.  */)
   (Lisp_Object filename)
 {
   CHECK_STRING (filename);
@@ -4462,7 +4466,7 @@ DEFUN ("comp-el-to-eln-rel-filename", Fcomp_el_to_eln_rel_filename,
       loadsearch_re_list = list2 (sys_re, Fregexp_quote (dump_load_search));
     }
 
-  Lisp_Object lds_re_tail = loadsearch_re_list;
+  Lisp_Object lds_re_tail = CALLN (Fappend, Vcomp_el_to_eln_strip_prefix, loadsearch_re_list);
   FOR_EACH_TAIL (lds_re_tail)
     {
       Lisp_Object match_idx =
@@ -5864,6 +5868,15 @@ syms_of_comp (void)
      dump reload.  */
   Vnative_comp_eln_load_path = Fcons (build_string ("../native-lisp/"), Qnil);
 
+  DEFVAR_LISP ("comp-el-to-eln-strip-prefix", Vcomp_el_to_eln_strip_prefix,
+    doc: /* List of regex to strip the path prefix in the function
+`comp-el-to-eln-rel-filename'.
+
+When the `comp-el-to-eln-rel-filename' try to convert an <absolute-path>.el
+to eln file name, it will remove the matched prefix on this list and hash
+the rest part to be middle of eln file name, this will allow to relocate the
+*.el source file without rebuild the relative *.eln files.  */);
+
   DEFVAR_LISP ("native-comp-enable-subr-trampolines",
 	       Vnative_comp_enable_subr_trampolines,
     doc: /* If non-nil, enable generation of trampolines for calling primitives.
-- 
2.20.5


  parent reply	other threads:[~2023-04-03  0:53 UTC|newest]

Thread overview: 93+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1181651021.466162.1581309285621.ref@mail.yahoo.com>
2020-02-10  4:34 ` bug#39539: 27.0.60; [PATCH] Fix error message "Invalid function: with-connection-local-variables" Sun Lin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-02-10  6:46   ` bug#39539: Acknowledgement (27.0.60; [PATCH] Fix error message "Invalid function: with-connection-local-variables") Sun Lin
2020-02-10  8:23     ` Sun Lin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-02-10 16:04       ` Sun Lin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-02-10 16:22         ` Stefan Kangas
2020-02-10 16:44         ` Eli Zaretskii
2022-09-27 21:10   ` bug#58127: 29.0.50; [PATCH] Fix the calc load calc-loaddefs.el without suffix sensitive lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-27 21:15     ` Lars Ingebrigtsen
2022-09-27 22:23     ` bug#58129: 29.0.50; [PATCH] Fix (package-update) always install package due to invalid version comparison lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-28 11:05       ` Lars Ingebrigtsen
2022-10-22  5:16     ` bug#58708: 29.0.50; [PATCH] Fix build error that gflags.will_dump_ not surround by the directives as its definition lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-10-22  7:00       ` Eli Zaretskii
2022-10-25  5:32       ` lin Sun
2022-10-25 11:57         ` Eli Zaretskii
2022-10-25 22:03           ` lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-10-29  5:01       ` bug#58860: 29.0.50; [PATCH] semantic/fw.el: speed up the 'semantic-find-file-noselect' lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-10-29  6:31         ` Eli Zaretskii
2022-10-29 15:06         ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-10-30  6:56           ` Eli Zaretskii
2022-10-30 12:37             ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-10-30 17:13               ` lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-10-31 13:22                 ` Eli Zaretskii
2022-11-13  4:26         ` bug#59236: 29.0.50; [PATCH] bytecomp.el: (byte-recompile-directory): Fix negated ignore lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-11-13  7:12           ` Eli Zaretskii
2022-11-13  7:22             ` Philip Kaludercic
2022-11-09  1:19               ` bug#59139: 29.0.50; batch-byte-recompile-directory doesn't recompile file as expected David Ponce
2022-11-09  9:41                 ` bug#59139: Acknowledgement (29.0.50; batch-byte-recompile-directory doesn't recompile file as expected) David Ponce
2022-11-12 16:01                 ` bug#59139: 29.0.50; batch-byte-recompile-directory doesn't recompile file as expected David Ponce
     [not found]                 ` <handler.59139.D59236.16683241653696.notifdone@debbugs.gnu.org>
2022-11-13 10:12                   ` bug#59139: closed (Re: bug#59236: 29.0.50; [PATCH] bytecomp.el: (byte-recompile-directory): Fix negated ignore) David Ponce
2022-11-14 11:50                     ` Philip Kaludercic
2022-11-13  7:45               ` bug#59236: 29.0.50; [PATCH] bytecomp.el: (byte-recompile-directory): Fix negated ignore lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-11-14 17:52                 ` lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-11-16 19:21                   ` lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-11-16 19:30                     ` Philip Kaludercic
2022-11-16 19:43                       ` lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-12-19 22:39           ` bug#60209: 29.0.50; [PATCH] lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-04-02  5:13             ` bug#62609: 29.0.60; [PATCH] src/comp.c: New variable `comp-el-to-eln-strip-prefix` for `comp-el-to-eln-rel-filename` lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-04-02  6:02               ` Eli Zaretskii
2023-04-03  0:53               ` lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors [this message]
2023-04-03 12:33                 ` Eli Zaretskii
2023-04-03 14:08                   ` Andrea Corallo
2023-04-03 14:37                     ` Eli Zaretskii
2023-04-11  5:15               ` bug#62767: 29.0.90; [PATCH] *lisp/emacs-lisp/package.el: set variables after info package lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-04-14 20:07                 ` Philip Kaludercic
2023-04-14 22:12                   ` lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-04-15  9:15                   ` Eli Zaretskii
2023-04-15 10:43                     ` Philip Kaludercic
2023-04-15 10:58                       ` Eli Zaretskii
2023-04-17  6:13                       ` lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-04-17  6:53                         ` Ruijie Yu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-04-17  6:59                           ` Ruijie Yu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-04-17 13:24                         ` Philip Kaludercic
2023-04-17 15:27                           ` lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-04-17 16:03                             ` Philip Kaludercic
2023-04-17 17:25                             ` Eli Zaretskii
2023-04-17 16:30                           ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-04-19  5:11                             ` lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-04-20  9:12                               ` Eli Zaretskii
2023-04-20 16:16                               ` lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-23 22:11                                 ` lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
     [not found]                                   ` <CABCREdpha5W_phrK8iLVN973-m5BjahNgMhpHDC=oA-X4Vvj9A@mail.gmail.com>
2023-05-24  2:53                                     ` lin Sun
2023-05-24 11:32                                       ` Eli Zaretskii
2023-05-25  0:46                                         ` lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-26  9:37                                           ` Eli Zaretskii
2023-05-30  3:56                                             ` lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-30 10:25                                               ` Eli Zaretskii
2023-05-23  4:28                 ` bug#63653: 29.0.91; [PATCH] More fix for loading SQLite extensions lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-23  4:36                   ` lin Sun
2023-05-23 11:33                     ` Eli Zaretskii
2023-05-23 13:40                       ` lin Sun
2023-05-23 14:54                         ` Eli Zaretskii
2023-05-23 15:01                           ` lin Sun
2023-05-23  4:52                   ` lin Sun
     [not found]                   ` <CABCREdoXGHXZPJJK7255c=DEAGqUtMc67Yj0VxwbS+GGXqciZQ@mail.gmail.com>
2023-06-30 21:55                     ` bug#64386: 29.0.91; [PATCH] *src/emacs.c: a comma for elements of usage_message Lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-07-01  1:34                       ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-07-01  4:43                         ` Lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-09-01 18:56                           ` Stefan Kangas
2023-07-01  6:10                       ` Eli Zaretskii
2023-08-16 19:39                       ` bug#65346: 30.0.50; *lisp/net/eww.el: new function 'eww-open-in-new-buffer-background' Lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-17  7:49                         ` Eli Zaretskii
2023-08-17 22:51                           ` Lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-18  5:52                             ` Eli Zaretskii
2023-08-18 19:03                               ` Lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-20  8:50                                 ` Eli Zaretskii
2023-08-20 14:29                                   ` Lin Sun via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-20 16:44                                 ` Juri Linkov
2023-08-27 16:40                                   ` Eli Zaretskii
2023-08-18  2:15                           ` Michael Heerdegen
2023-08-18  6:07                             ` Eli Zaretskii
2023-10-23 17:15                       ` bug#66710: 29.0.1; [PATCH] *doc/misc/gnus.texi: Fix unmatched quote in gnus doc Lin Sun
2023-10-23 18:57                         ` Eli Zaretskii
2023-10-23 23:30                           ` bug#62767: " Lin Sun
2023-09-01 19:58             ` bug#60209: 29.0.50; [PATCH] lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el Stefan Kangas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CABCREdpwPgOz1oDu0AOZRyP6OStH+cVDZsa5OnaWV=wpC+bMtA@mail.gmail.com' \
    --to=bug-gnu-emacs@gnu.org \
    --cc=62609@debbugs.gnu.org \
    --cc=eliz@gnu.org \
    --cc=sunlin7@yahoo.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).