]> git.eshelyaron.com Git - emacs.git/commit
Move eln files into dedicated cache directories
authorAndrea Corallo <akrl@sdf.org>
Sun, 19 Jul 2020 08:46:24 +0000 (10:46 +0200)
committerAndrea Corallo <akrl@sdf.org>
Mon, 17 Aug 2020 16:04:22 +0000 (18:04 +0200)
commit3224a443060a5f21bb910064fc06fe4432810355
treea28a7e743a30bea9bbd17fc08aff906b95b40a64
parentf2e6168ece69d635b4f9d9a138100c6772903d0b
Move eln files into dedicated cache directories

When loading a elc file search for a corresponding eln one into
`comp-eln-load-path' directories and load it if available.
`comp-eln-load-path' contains by default two directory (user and
system one).

* src/pdumper.c (dump_do_dump_relocation): While resurrecting from
load set eln cache sys dir in `Vcomp_eln_load_path'.

* src/lread.c (maybe_swap_for_eln): New function.
(Fload): Clean-up some now unnecessary code going
back to the master one.
(Fload): Make use of Vcomp_eln_to_el_h for the reverse file
look-up.
(openp_add_middle_dir_to_suffixes)
(openp_max_middledir_and_suffix_len, openp_fill_filename_buffer):
Remove functions.
(openp): As for Fload revert code modifications.
(openp): When a .elc file is being loaded check if a corresponding
eln can be loaded in place.

* src/comp.c (ELN_FILENAME_HASH_LEN): New macro.
(comp_hash_string): New function.
(hash_native_abi): Make use of 'comp_hash_string'.
(hash_native_abi): Change `comp-native-path-postfix' format.
(Fcomp_el_to_eln_filename): New function.
(Fcomp__compile_ctxt_to_file): Have file_name as a input.
(Vcomp_eln_to_el_h, Vcomp_eln_load_path): New global varaibles.

* lisp/startup.el (normal-top-level): Add user eln cache directory
in `comp-eln-load-path'.

* lisp/help-fns.el (find-lisp-object-file-name): Reverse look-up
files using `comp-eln-to-el-h'.

* lisp/files.el (locate-file): Likewise.

* lisp/emacs-lisp/find-func.el (find-library-name): Likewise.

* lisp/emacs-lisp/comp.el (comp-output-directory)
(comp-output-base-filename, comp-output-filename): Remove function.
(comp-compile-ctxt-to-file): Create parent directories if
necessary.
(comp-run-async-workers, native-compile, native-compile-async):
Make use `comp-el-to-eln-filename'.
lisp/emacs-lisp/comp.el
lisp/emacs-lisp/find-func.el
lisp/files.el
lisp/help-fns.el
lisp/startup.el
src/comp.c
src/lread.c
src/pdumper.c