summaryrefslogtreecommitdiff
path: root/src/comp.c
Commit message (Collapse)AuthorAgeFilesLines
...
* | Merge branch 'master' into scratch/correct-warning-posAlan Mackenzie2022-01-111-36/+31
|\ \
| * | Merge from origin/emacs-28Eli Zaretskii2022-01-011-1/+1
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 836be7a112 ; * etc/refcards/ru-refcard.tex: Update Copyright year. 86cbc6ee4a * lisp/net/tramp-sh.el: Adapt copyright year ebe8772f65 ; Minor fixes related to copyright years 23c1ee6989 ; * test/manual/etags/ETAGS.good_N: Adjust to copyright ye... 8d3fc7ec89 * src/xfaces.c (face_for_font): Make 'hash' be uintptr_t. 19dcb237b5 ; Add 2022 to copyright years. # Conflicts: # etc/NEWS # etc/refcards/ru-refcard.tex # lib/cdefs.h # lisp/erc/erc-dcc.el # lisp/erc/erc-imenu.el # lisp/erc/erc-replace.el # lisp/image-dired.el # lisp/progmodes/xref.el # m4/alloca.m4 # m4/byteswap.m4 # m4/errno_h.m4 # m4/getopt.m4 # m4/gnulib-common.m4 # m4/inttypes.m4 # m4/stddef_h.m4 # m4/stdint.m4 # m4/sys_socket_h.m4
| | * ; Add 2022 to copyright years.Eli Zaretskii2022-01-011-1/+1
| | |
| * | Have 'dlopen' use RTLD_GLOBAL in 'dynlib_open'Andrea Corallo2021-12-151-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/pdumper.c (dump_do_dump_relocation): Use 'dynlib_open_for_eln' in place of 'dynlib_open'. * src/dynlib.h (dynlib_open_for_eln): Declare it. * src/dynlib.c (dynlib_open_for_eln): New function. (dynlib_open): Add RTLD_GLOBAL. * src/comp.c (Fnative_elisp_load): Use 'dynlib_open_for_eln' in place of 'dynlib_open'.
| * | Merge from origin/emacs-28Stefan Kangas2021-12-031-5/+13
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | 9c222b9c1a Port to C compilers that lack size-0 arrays fed35a8951 Port emacsclient to Solaris 10 f35d6a9c73 * CONTRIBUTE: Improve commit message instructions e0ee1d003a Work around IBM XL C compiler bug 6b99b6eb8b * admin/make-tarball.txt: Various clarifications. bbf4140091 * admin/diff-tar-files: Don't assume .tar.gz. 0a50ad11db * lisp/tab-bar.el (tab-bar-close-other-tabs): Fix regression.
| | * Port to C compilers that lack size-0 arraysPaul Eggert2021-12-021-5/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The C standard does not allow size-zero arrays, so redo struct Lisp_Subr to not use size-zero arrays when native compilation is not being used. Formerly, the code was using size-zero arrays (a GNU C extension) to avoid using memory unnecessarily when HAVE_NATIVE_COMP is not defined. Replace this hack with the more-traditional hack of putting the relevant members inside ‘#ifdef HAVE_NATIVE_COMP’. * src/alloc.c (cleanup_vector, mark_object): * src/comp.c (make_subr): * src/data.c (Fsubr_native_lambda_list, Fsubr_native_comp_unit): * src/eval.c (init_eval_once, funcall_lambda): * src/lisp.h (SUBR_NATIVE_COMPILEDP, SUBR_NATIVE_COMPILED_DYNP) (SUBR_TYPE): * src/lread.c (Fload): Conditionally compile with ‘#ifdef HAVE_NATIVE_COMP’ instead of with ‘if (NATIVE_COMP_FLAG)’. Redo members like native_comp_u[0] to be plain native_comp_u. Put all uses of these members inside ‘#ifdef HAVE_NATIVE_COMP’. * src/lisp.h (struct Lisp_Subr): Members native_comp_u, native_c_name, lambda_list, type are now all ifdeffed out if HAVE_NATIVE_COMP is not defined, instead of being size-zero arrays. All uses changed. * src/pdumper.c (dump_subr, dump_cold_native_subr) (dump_do_dump_relocation): * src/comp.h (NATIVE_COMP_FLAG): Remove; no longer needed.
| * | Merge from origin/emacs-28Stefan Kangas2021-12-011-3/+3
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | e632b83a28 Update authors.el for Emacs 28 e9fdb11903 ; * ChangeLog.3: Some additional fixes. 8fa4749df1 ; * ChangeLog.3: Filename fixes. ea5a90b4f4 * lisp/repeat.el: Fix long-standing problem when a random ... ef4954b69c * lisp/repeat.el (repeat-keep-prefix): Change default to nil. 6d5886e780 * test/lisp/repeat-tests.el (repeat-tests-call-b): Test fo... 9e16c6a96d ; * src/comp.c (syms_of_comp) <comp-no-native-file-h>: Doc... 9aa8fd6e62 * src/callint.c (Fcall_interactively): Fix inhibit_mouse_e... 70c229b1fc Fix regression in gdb-frame-handler cd9dd26d24 Format and index concept 'predicate' in ELisp Intro ab291656d0 ; * ChangeLog.3: Fix typos. 354f6c5609 ; * ChangeLog.3: Formatting fixes. 6192525a96 ; make change-history-commit
| | * ; * src/comp.c (syms_of_comp) <comp-no-native-file-h>: Doc fix.Eli Zaretskii2021-11-301-3/+3
| | |
| * | ; * src/comp.c (syms_of_comp): Fix first lines of doc strings.Eli Zaretskii2021-11-301-4/+4
| | |
| * | Improve native compiler startup circular dependecy prevention mechanismAndrea Corallo2021-11-301-24/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/comp.c (maybe_defer_native_compilation): Update to accumulate delayed objects in `comp--delayed-sources'. (syms_of_comp): Add `comp--delayed-sources' and `comp--loadable' vars. * lisp/startup.el (startup--honor-delayed-native-compilations): New function. (normal-top-level): Call it.
* | | Try to make scratch/correct-warning-pos build on Windows and not segfaultAlan Mackenzie2021-12-311-3/+2
| | | | | | | | | | | | | | | | | | | | | * src/comp.c (emit_EQ): Replace calls to gcc_jit_context_new_location with NULLs. (Fcomp__init_ctxt): Remove the register_emitter call for Qsymbol_with_pos_p, which was causing a segfault.
* | | Miscellaneous enhancements to scratch/correct-warning-pos.Alan Mackenzie2021-12-311-15/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Check the type (symbol with position) of the argument given to the native compiled version of SYMBOL_WITH_POS_SYM. 2. Handle infinite recursion caused by circular lists, etc., in macroexp-strip-symbol-positions by using hash tables. 3. Read byte compiled functions without giving symbols positions. * lisp/emacs-lisp/comp.el (comp-finalize-relocs): Add symbol-with-pos-p into the list of relocated symbols. * lisp/emacs-lisp/macroexp.el (macroexp--ssp-conses-seen) (macroexp--ssp-vectors-seen, macroexp--ssp-records-seen): Renamed, and animated as hash tables. (macroexp--strip-s-p-2): Optionally tests for the presence of an argument in one of the above hash tables, so as to handle otherwise infinite recursion. (byte-compile-strip-s-p-1): Add a condition-case to handle infinite recursion caused by circular lists etc., using the above hash tables as required. * src/comp.c (comp_t): New element symbol_with_pos_sym. (emit_SYMBOL_WITH_POS_SYM): Amend just to call the new SYMBOL_WITH_POS_SYM. (emit_CHECK_SYMBOL_WITH_POS, define_SYMBOL_WITH_POS_SYM): New functions. (Fcomp__init_ctxt): Register an emitter for Qsymbol_with_pos_p. (Fcomp__compile_ctxt_to_file): Call define_SYMBOL_WITH_POS_SYM. (syms_of_comp): Define Qsymbol_with_pos_p. * src/data.c (syms_of_data): Define a new error symbol Qrecursion_error, an error category for the new error symbols Qexcessive_variable_binding and Qexcessive_lisp_nesting. * src/eval.c (grow_specpdl): Change the signal_error call to an xsignal0 call using the new error symbol Qexcessive_variable_binding. (eval_sub, Ffuncall): Change the `error' calls to xsignal using the new error symbol Qexcessive_lisp_nesting. * src/lread.c (read1): When reading a compiled function, read the components of the vector without giving its symbols a position.
* | | Make symbols with positions work with native compilationAlan Mackenzie2021-12-301-5/+237
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This version of the software should bootstrap Emacs successfully with native compilation enabled. * lisp/emacs-lisp/bytecomp.el (byte-compile-strip-s-p-1) (byte-compile-strip-symbol-positions): Rename and move to macroexp.el. Rename calls to these functions throughout the file. (byte-compile-initial-macro-environment): In the code sections for eval-when-compile and eval-and-compile, call macroexp-strip-symbol-positions before evaluating code. (byte-compile-file, byte-compile-output-file-form) (byte-compile-file-form-defmumble, byte-compile, batch-byte-compile): Call macroexp-strip-symbol-positions from code being passed to the native compiler. * lisp/emacs-lisp/cl-macs.el (cl-macs--strip-s-p-1) (cl-macs--strip-symbol-positions): Remove, replacing them with the renamed functions in macroexp.el. (cl-define-compiler-macro): Apply macroexp-strip-symbol-positions to ARGS and BODY. * lisp/emacs-lisp/comp.el (comp-limplify-lap-inst): Use `null' to compile byte-not rather than a compilation of `eq'. (comp--native-compile): bind symbols-with-pos-enabled to t. * lisp/emacs-lisp/macroexp.el (byte-compile--ssp-conses-seen) (byte-compile--ssp-vectors-seen, byte-compile--ssp-records-seen): Provisional auxiliary variables to support the following functions. (macroexp--strip-s-p-2, byte-compile-strip-s-p-1) (macroexp-strip-symbol-positions): Functions moved from bytecomp.el, renamed, and further developed. (macroexp--compiler-macro): Bind symbol-with-pos-enabled to t around the call to `handler'. (internal-macroexpand-for-load): Strip symbol positions from the form being eagerly expanded for macros. * src/comp.c (F_SYMBOLS_WITH_POS_ENABLED_RELOC_SYM): New macro for a relocation symbol. (comp_t): New elements bool_ptr_type, f_symbols_with_pos_enabled_ref, lisp_symbol_with_position, lisp_symbol_with_position_header, lisp_symbol_with_position_sym, lisp_symbol_with_position_pos, lisp_symbol_with_position_type, lisp_symbol_with_position_ptr_type, get_symbol_with_position. (helper_GET_SYMBOL_WITH_POSITION): New function. (emit_BASE_EQ): Function rename from emit_EQ. (emit_AND, emit_OR, emit_BARE_SYMBOL_P, emit_SYMBOL_WITH_POS_P) (emit_SYMBOL_WITH_POS_SYM): New functions. (emit_EQ): New function which handles symbols with position correctly. (emit_NILP): Use emit_BASE_EQ rather than emit_EQ. (emit_limple_insn): When emitting a conditional branch, check each operand for being a literal Qnil, and if one of them is, use emit_BASE_EQ rather than emit_EQ. (declare_runtime_imported_funcs): Declare helper_GET_SYMBOL_WITH_POSITION. (emit_ctxt_code): Export the global F_SYMBOLS_WITH_POS_ENABLED_RELOC_SYM. (define_lisp_symbol_with_position, define_GET_SYMBOL_WITH_POSITION): New functions. (Fcomp__init_ctxt): Initialise comp.bool_ptr_type, call the two new define_.... functions. (load_comp_unit): Initialise **f_symbols_with_pos_enabled_reloc. * src/fns.c (Fput): Strip positions from symbols in PROPNAME and VALUE.
* / Update Fstring_match calls in comp.cLars Ingebrigtsen2021-10-071-2/+3
|/ | | | | * src/comp.c (Fcomp_el_to_eln_rel_filename, file_in_eln_sys_dir): Update Fstring_match calls.
* Fix build with native compilation but without zlibEli Zaretskii2021-09-221-0/+10
| | | | | | | | * src/comp.c (comp_hash_source_file): Condition code that requires zlib with HAVE_ZLIB. * etc/NEWS: Explain that '--without-compress-install' is necessary when configuring with native compilation but without zlib.
* Doc string fixes in comp.eEli Zaretskii2021-09-221-8/+26
| | | | | * src/comp.c (Fcomp_el_to_eln_filename) (Fcomp_el_to_eln_rel_filename): Doc fix.
* Avoid compiler warnings in comp.c on MS-WindowsEli Zaretskii2021-09-151-4/+16
| | | | | | * src/comp.c (DEF_DLL_FN, init_gccjit_functions): Don't load and don't define functions/macros if libgccjit doesn't have them, to avoid compiler warnings.
* * Clean-up some unnecessary macro usage in comp.cAndrea Corallo2021-09-131-11/+6
| | | | | | | * src/comp.c (emit_static_object) (Fcomp_native_driver_options_effective_p, add_driver_options) (Fcomp__compile_ctxt_to_file, Fcomp_libgccjit_version): Clean-up unenecessary 'defined (WINDOWSNT)' usage.
* Add support for GCC compiler command-line optionsArthur Miller2021-09-101-0/+58
| | | | | | | | | * lisp/emacs-lisp/comp.el ('native-comp-compiler-options): New option. * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Add support for new 'native-comp-compiler-options'. * src/comp.c (Fcomp_native_compiler_options_effective_p): New function. (add_compiler_options): New function. (Fcomp__compile_ctxt_to_file): Call 'add_compiler_options'.
* * Add a dll loader entry for gcc_jit_context_new_cast (bug#50315)Kien Nguyen2021-09-011-0/+6
| | | | | * src/comp.c: Add a dll loader entry for 'gcc_jit_context_new_cast' (bug#50315).
* Implement proper type conversion in native compilerAndreas Schwab2021-08-301-108/+102
| | | | | | | | | | | | * src/comp.c (enum cast_kind_of_type): Remove. (comp_t): Add cast_ptr_to_int, cast_int_to_ptr, remove cast_type_sizes, cast_type_kind, cast_type_names, cast_union_fields, cast_union_field_biggest_type. (emit_coerce): Remove check for type size. (struct cast_type): Remove bytes_size. (define_type_punning): New function. (define_cast_from_to): Implement proper type conversion. (define_cast_functions): Adjust. (bug#50230)
* Set a unique ID for eln files on macOS (bug#45934)Andrea Corallo2021-08-221-0/+9
| | | | | * src/comp.c (Fcomp__compile_ctxt_to_file): Set gcc's -install_name parameter to the real filename.
* Fix NS self contained eln location (bug#49271)Alan Third2021-07-011-1/+27
| | | | | | | | | * Makefile.in: * configure.ac: Change eln file install location to Contents/Frameworks. * src/comp.c (hash_native_abi): Replace dots with underscores in the eln install location as the macOS code-signing tool won't sign the files if the parent directories have dots.
* ; * src/comp.c (ADD_IMPORTED): Fix broken macro.Mattias Engdegård2021-06-181-1/+1
|
* Fix resolution of symlinks during dumpingEli Zaretskii2021-05-271-9/+10
| | | | | | | | | | | | | * src/comp.c (Fcomp_el_to_eln_rel_filename): Don't use 'file-truename', as it is only available once files.el is loaded, which doesn't work during dumping, until loadup loads files.el. Instead, use 'realpath'. (Bug#48578) * src/w32.c (realpath): New function. * src/w32.h (realpath): Add prototype. * nt/mingw-cfg.site (ac_cv_func_realpath) (gl_cv_func_realpath_works): Define to "yes", as this function is now implemented in w32.c.
* * Fix ahead-of-time native compilation for out-of-tree builds (bug#48497)Andrea Corallo2021-05-211-1/+2
| | | | | * src/comp.c (Fcomp_el_to_eln_rel_filename): Expand 'PATH_DUMPLOADSEARCH' while computing 'loadsearch_re_list'.
* Rename comp-deferred-compilationAndrea Corallo2021-05-111-3/+4
| | | | | | | | * lisp/progmodes/elisp-mode.el (emacs-lisp-native-compile-and-load): Rename comp-deferred-compilation -> native-comp-deferred-compilation. * src/comp.c (maybe_defer_native_compilation, syms_of_comp): Likewise.
* Rename comp-eln-load-path → native-comp-eln-load-pathAndrea Corallo2021-05-061-7/+7
| | | | | | | | | | | | * src/comp.c (Fcomp_el_to_eln_filename): Rename comp-eln-load-path → native-comp-eln-load-path. * src/lread.c (maybe_swap_for_eln): Likewise. * lisp/startup.el (native-comp-eln-load-path) (normal-top-level): Likewise. * lisp/emacs-lisp/comp.el (comp-spill-lap-function, comp-final) (comp-eln-load-path-eff, comp-trampoline-compile) (comp-clean-up-stale-eln, comp-run-async-workers) (comp-lookup-eln, batch-byte-native-compile-for-bootstrap): Likewise.
* Rename comp-warning-on-missing-sourceAndrea Corallo2021-05-061-1/+2
| | | | | | | | | * src/lread.c (maybe_swap_for_eln): Rename comp-warning-on-missing-source → native-comp-warning-on-missing-source. * src/comp.c (syms_of_comp): Likewise. * lisp/emacs-lisp/comp.el (native-comp-warning-on-missing-source): Likewise.
* Rename comp-native-driver-options → native-comp-driver-optionsAndrea Corallo2021-05-061-2/+2
| | | | | | | | | * src/comp.c (add_driver_options, syms_of_comp): Rename comp-native-driver-options → native-comp-driver-options. * lisp/emacs-lisp/comp.el (native-comp-driver-options) (comp-ctxt, comp-spill-lap-function, comp-final) (comp-run-async-workers): Likewise. * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Likewise.
* Rename comp-debug -> native-comp-debugAndrea Corallo2021-05-061-2/+2
| | | | | | | | | * src/comp.c (emit_ctxt_code, syms_of_comp): Rename comp-debug -> native-comp-debug. * lisp/emacs-lisp/comp.el (native-comp-debug, comp-ctxt) (comp-spill-lap-function, comp-run-async-workers): Likewise. * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Likewise. * test/src/comp-tests.el (comp-tests-bootstrap): Likewise.
* Rename comp-speed -> native-comp-speedAndrea Corallo2021-05-061-3/+3
| | | | | | | | | | | * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Rename comp-speed -> native-comp-speed. * lisp/emacs-lisp/comp.el (native-comp-speed, comp-ctxt, comp-func, comp-spill-lap-function, comp-trampoline-compile, comp-run-async-workers): Likewise. * src/comp.c (emit_ctxt_code, load_comp_unit, syms_of_comp): Likewise. * test/src/comp-tests.el (comp-tests-tco, comp-tests-fw-prop-1) (comp-tests-check-ret-type-spec, comp-tests-pure): Likewise.
* Rename feature `nativecomp' into `native-compile'Andrea Corallo2021-05-051-1/+1
| | | | | | | | | | | | | | | * test/src/comp-tests.el : Rename feature `nativecomp' into `native-compile'. * test/lisp/help-fns-tests.el (help-fns-test-lisp-defun): Likewise. * src/comp.c (syms_of_comp): Likewise. * lisp/startup.el (normal-top-level): Likewise. * lisp/loadup.el: Likewise. * lisp/help.el (help-function-arglist): Likewise. * lisp/emacs-lisp/package.el (package--native-compile-async) (package--delete-directory): Likewise. * lisp/emacs-lisp/nadvice.el (advice--add-function): Likewise. * lisp/emacs-lisp/comp.el (comp-ensure-native-compiler): Likewise. * lisp/emacs-lisp/advice.el (ad-add-advice): Likewise.
* ; * src/comp.c: Fix typos.Eli Zaretskii2021-04-271-2/+2
|
* ; Fix typosStefan Kangas2021-04-271-3/+3
|
* * src/comp.c (fixup_eln_load_path): Simplify code.Eli Zaretskii2021-04-181-7/+5
|
* Fix loading *.eln files when Emacs is installed via symlinksEli Zaretskii2021-04-171-17/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/emacs.c (real_filename, set_invocation_vars) (init_vars_for_load): Functions deleted; callers adjusted. (init_cmdargs): Put back all the code which was extracted into set_invocation_vars. (load_pdump_find_executable): Make sure the return value has any symlinks in it expanded. (load_pdump): Accept only 2 arguments, not 3. Determine both the file name of the Emacs executable and of the dump file in synchronized manner, so that if we decided to look for the dump file in its hardcoded installation directory, the directory of the Emacs executable will also be where we expect it to be installed. Pass only 2 arguments to pdumper_load. (Bug#47800) (Bug#44128) * src/pdumper.c (dump_do_dump_relocation): Use emacs_execdir instead of Vinvocation_directory to produce absolute file names of *.eln files that are recorded in the pdumper file. Pass the full .eln file name to fixup_eln_load_path. (pdumper_set_emacs_execdir) [HAVE_NATIVE_COMP]: New function. (pdumper_load) [HAVE_NATIVE_COMP]: Call pdumper_set_emacs_execdir. * src/comp.c (fixup_eln_load_path): Use Fsubstring_no_properties instead of Fsubstring. No need to cons a file name, as the caller already did that. Use explicit const string to avoid "magic" values. * lisp/startup.el (normal-top-level): Use expand-file-name instead of concat. Decode comp-eln-load-path and expand-file-name its members.
* * Introduce `comp-file-preloaded-p'Andrea Corallo2021-04-051-7/+13
| | | | | * src/comp.c (syms_of_comp): Define `comp-file-preloaded-p'. (Fcomp_el_to_eln_filename): Account for `comp-file-preloaded-p'.
* * src/comp.c (fixup_eln_load_path): Fix parameter name.Andrea Corallo2021-04-041-2/+2
|
* * src/comp.c (Fcomp_el_to_eln_filename): Fix doc.Andrea Corallo2021-04-041-1/+2
|
* Output native compiled preloaded files into the 'preloaded' subfolderAndrea Corallo2021-04-041-7/+22
| | | | | | | | | * src/comp.c (fixup_eln_load_path): Account the fact that the file can be dumped in the 'preloaded' subfolder. * lisp/loadup.el: Likewise. * src/lread.c (maybe_swap_for_eln1): New function. (maybe_swap_for_eln): Handle 'preloaded' subfolder. * src/Makefile.in (LISP_PRELOADED): Export preloaded files.
* Issue a warning when eln look-up fails due to missing .el source file.Andrea Corallo2021-04-011-1/+2
| | | | | | | | | * lisp/emacs-lisp/comp.el (comp-warning-on-missing-source): New customize. * src/lread.c (maybe_swap_for_eln): Issue a warning when eln look-up fails due to missing .el source file. * src/comp.c (syms_of_comp): Define 'Qcomp_warning_on_missing_source'.
* * src/comp.c (Fcomp__compile_ctxt_to_file): Fix debug level 1.Eli Zaretskii2021-03-311-1/+1
|
* Rework native compilation `comp-debug' (bug#46495)Andrea Corallo2021-03-311-2/+2
| | | | | | | * lisp/emacs-lisp/comp.el (comp-debug): Update docstring and move default on Windows systems from 0 to 1. * src/comp.c (Fcomp__compile_ctxt_to_file): Tweak debug levels.
* Do not defer compilation when bytecode is explicitly requested (bug#46617)Andrea Corallo2021-03-311-1/+9
| | | | | | | | | | | * src/comp.c (maybe_defer_native_compilation): Check if the file is registered in 'V_comp_no_native_file_h'. (syms_of_comp): 'V_comp_no_native_file_h' new global. * src/lread.c (maybe_swap_for_eln): Register files in 'V_comp_no_native_file_h'. * lisp/faces.el (tty-run-terminal-initialization): Do not explicitly load .elc file to not exclude .eln being loaded in place.
* Improve two native compiler related docstrings.Andrea Corallo2021-03-241-0/+2
| | | | | * lisp/emacs-lisp/comp.el (comp-eln-load-path-eff): Improve docstring. * src/comp.c (comp-eln-load-path): Likewise.
* ; * src/comp.c (Fcomp_el_to_eln_filename): Improve docstring.Andrea Corallo2021-03-211-1/+2
|
* Prevent unnecessary multiple .el hashing in 'maybe_swap_for_eln'Andrea Corallo2021-03-211-6/+15
| | | | | | | | | * src/comp.c (Fcomp_el_to_eln_rel_filename): New function. (Fcomp_el_to_eln_filename): Make use of. (syms_of_comp): Register 'Scomp_el_to_eln_rel_filename'. * src/lread.c (maybe_swap_for_eln): Make use of 'Fcomp_el_to_eln_rel_filename' to hash prevent unnecessary multiple hashing.
* Prefer expand-file-name to concat in native-compilation codeEli Zaretskii2021-03-151-4/+4
| | | | | | | * lisp/emacs-lisp/comp.el (comp-eln-load-path-eff): * src/comp.c (Fcomp_el_to_eln_filename) (eln_load_path_final_clean_up): Prefer expand-file-name to concat. (Bug#43725)
* Don't call setjmp through a function pointer on Windows (bug#47067)Pip Cet2021-03-141-12/+14
| | | | | | | * src/comp.c (ABI_VERSION): Bump. (emit_setjmp): Call setjmp directly. (declare_runtime_imported_funcs): Remove setjmp. (helper_link_table): Remove entry for setjmp.