From: Stefan Kangas Date: Tue, 30 Nov 2021 08:46:20 +0000 (+0100) Subject: ; * ChangeLog.3: Formatting fixes. X-Git-Tag: emacs-28.0.90~24 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=354f6c56095312e58e1be1a4e6b4c347131ac551;p=emacs.git ; * ChangeLog.3: Formatting fixes. --- diff --git a/ChangeLog.3 b/ChangeLog.3 index 8789471ed36..9f6d29c8f43 100644 --- a/ChangeLog.3 +++ b/ChangeLog.3 @@ -1669,7 +1669,7 @@ 2021-10-15 Andrea Corallo - * Fix `native-compile-target-directory' effectiveness on trampolines + Fix `native-compile-target-directory' effectiveness on trampolines * lisp/emacs-lisp/comp.el (comp-trampoline-compile): Fix `native-compile-target-directory' effectiveness on trampoline @@ -2479,7 +2479,7 @@ 2021-10-04 Andrea Corallo - * Fix mh tests for native comp builds (bug#50975) + Fix mh tests for native comp builds (bug#50975) * test/lisp/mh-e/mh-utils-tests.el (mh-ensure-native-trampolines): New function. @@ -2488,7 +2488,7 @@ 2021-10-04 Andrea Corallo - * Fix `batch-native-compile' not to spawn a subprocess + Fix `batch-native-compile' not to spawn a subprocess * lisp/emacs-lisp/comp.el (comp-running-batch-compilation): New var. (comp-final): Use it. @@ -7303,12 +7303,12 @@ 2021-09-13 Andrea Corallo - * Clean-up some unnecessary macro usage in comp.c + Clean-up some unnecessary macro usage in comp.c - * 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. + * 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. 2021-09-13 Lars Ingebrigtsen @@ -9739,7 +9739,7 @@ 2021-08-27 Andrea Corallo - * Forward `comp-file-preloaded-p' to async workers + Forward `comp-file-preloaded-p' to async workers * lisp/emacs-lisp/comp.el (comp-run-async-workers): Forward `comp-file-preloaded-p' to async workers. @@ -11025,7 +11025,7 @@ 2021-08-17 Andrea Corallo - * Fix `native-compile-target-directory' effectiveness for async compilation. + Fix `native-compile-target-directory' effectiveness for async compilation. * lisp/emacs-lisp/comp.el (comp-run-async-workers): Forward to async workers `native-compile-target-directory'. @@ -17475,7 +17475,7 @@ 2021-06-21 Andrea Corallo - * Do not attempt to write .elc files when not necessary (bug#49118) + Do not attempt to write .elc files when not necessary (bug#49118) * lisp/emacs-lisp/bytecomp.el (byte-compile-file): Do not attempt to write .elc files when not necessary. @@ -17995,7 +17995,7 @@ 2021-06-14 Andrea Corallo - * Do not produce .elc temporary file when unnecessary (bug#48978) + Do not produce .elc temporary file when unnecessary (bug#48978) * lisp/emacs-lisp/bytecomp.el (byte-compile-file): Produce .elc temporary files only when non native compiling or when native @@ -19169,7 +19169,7 @@ 2021-06-01 Andrea Corallo - * Add `native-compile-target-directory' (bug#48743) + Add `native-compile-target-directory' (bug#48743) * lisp/emacs-lisp/comp.el (native-compile-target-directory): New variable. @@ -19326,7 +19326,7 @@ 2021-05-31 Andrea Corallo - * Make *Async-native-compile-log* buffer read-only (bug#48763) + Make *Async-native-compile-log* buffer read-only (bug#48763) * lisp/emacs-lisp/comp.el (comp-run-async-workers): Make "*Async-native-compile-log*" read-only. @@ -20409,7 +20409,7 @@ 2021-05-21 Andrea Corallo - * Fix ahead-of-time native compilation for out-of-tree builds (bug#48497) + Fix ahead-of-time native compilation for out-of-tree builds (bug#48497) * src/comp.c (Fcomp_el_to_eln_rel_filename): Expand 'PATH_DUMPLOADSEARCH' while computing 'loadsearch_re_list'. @@ -21669,15 +21669,15 @@ Rename comp-deferred-compilation - * 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. + * 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. 2021-05-11 Andrea Corallo - * Rename comp-deferred-compilation-deny-list + Rename comp-deferred-compilation-deny-list * lisp/emacs-lisp/comp.el (native-comp-deferred-compilation-deny-list) (native-compile-async-skip-p): Rename @@ -22167,7 +22167,7 @@ 2021-05-06 Andrea Corallo - * Rename comp-async-query-on-exit → native-comp-async-query-on-exit + Rename comp-async-query-on-exit → native-comp-async-query-on-exit * lisp/emacs-lisp/comp.el (native-comp-async-query-on-exit) (comp-run-async-workers): Rename comp-async-query-on-exit → @@ -22175,7 +22175,7 @@ 2021-05-06 Andrea Corallo - * Rename comp-async-report-warnings-errors + Rename comp-async-report-warnings-errors * lisp/emacs-lisp/comp.el (native-comp-async-report-warnings-errors) (comp-accept-and-process-async-output): Rename @@ -22184,7 +22184,7 @@ 2021-05-06 Andrea Corallo - * Rename comp-async-env-modifier-form → native-comp-async-env-modifier-form + Rename comp-async-env-modifier-form → native-comp-async-env-modifier-form * lisp/emacs-lisp/comp.el (native-comp-async-env-modifier-form) (comp-final, comp-run-async-workers): Rename @@ -22192,7 +22192,7 @@ 2021-05-06 Andrea Corallo - * Rename comp-async-all-done-hook → native-comp-async-all-done-hook + Rename comp-async-all-done-hook → native-comp-async-all-done-hook * lisp/emacs-lisp/comp.el (native-comp-async-all-done-hook) (comp-run-async-workers): Rename comp-async-all-done-hook → @@ -22200,7 +22200,7 @@ 2021-05-06 Andrea Corallo - * Rename comp-async-cu-done-functions → native-comp-async-cu-done-functions + Rename comp-async-cu-done-functions → native-comp-async-cu-done-functions * lisp/emacs-lisp/comp.el (native-comp-async-cu-done-functions) (comp-run-async-workers): Rename comp-async-cu-done-functions → @@ -22208,7 +22208,7 @@ 2021-05-06 Andrea Corallo - * Rename comp-async-jobs-number → native-comp-async-jobs-number + Rename comp-async-jobs-number → native-comp-async-jobs-number * lisp/emacs-lisp/comp.el (native-comp-async-jobs-number) (comp-effective-async-max-jobs, native--compile-async) @@ -22234,7 +22234,7 @@ 2021-05-06 Andrea Corallo - * Rename comp-always-compile → native-comp-always-compile + Rename comp-always-compile → native-comp-always-compile * lisp/emacs-lisp/comp.el (native-comp-always-compile) (comp-run-async-workers): comp-always-compile → @@ -22242,7 +22242,7 @@ 2021-05-06 Andrea Corallo - * Rename comp-verbose -> native-comp-verbose + Rename comp-verbose -> native-comp-verbose * lisp/emacs-lisp/comp.el (native-comp-verbose, comp-log) (comp-log-func, comp-final, comp-run-async-workers): Rename @@ -22274,7 +22274,7 @@ 2021-05-06 Andrea Corallo - * Rename comp-limple-mode -> native-comp-limple-mode + Rename comp-limple-mode -> native-comp-limple-mode * lisp/emacs-lisp/comp.el (comp-limple-lock-keywords): Doc update. (native-comp-limple-mode, comp-log-to-buffer): Rename comp-limple-mode @@ -22462,18 +22462,18 @@ Rename feature `nativecomp' into `native-compile' - * 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. + * 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. 2021-05-05 Martin Rudalics @@ -22495,11 +22495,11 @@ 2021-05-05 Andrea Corallo - * Better identify native compiler presence in two tests. + Better identify native compiler presence in two tests. - * test/lisp/help-fns-tests.el (help-fns-test-lisp-defun) - (help-fns-test-lisp-defsubst): Better identify native-comp - presence. + * test/lisp/help-fns-tests.el (help-fns-test-lisp-defun) + (help-fns-test-lisp-defsubst): Better identify native-comp + presence. 2021-05-05 Daniel Mendler @@ -22582,10 +22582,10 @@ 2021-05-04 Andrea Corallo - * Do not try to load unexistent eln file if async compilation was skipped + Do not try to load unexistent eln file if async compilation was skipped - * lisp/emacs-lisp/comp.el (comp-run-async-workers): Don't try to - load if the eln file was not produced. + * lisp/emacs-lisp/comp.el (comp-run-async-workers): Don't try to + load if the eln file was not produced. 2021-05-04 Eli Zaretskii @@ -23007,10 +23007,10 @@ 2021-04-29 Andrea Corallo - * Improve `comp-normalize-valset' reproducibility (bug#48021) + Improve `comp-normalize-valset' reproducibility (bug#48021) - * lisp/emacs-lisp/comp-cstr.el (comp-normalize-valset): Make - it more reproducible. + * lisp/emacs-lisp/comp-cstr.el (comp-normalize-valset): Make + it more reproducible. 2021-04-29 Glenn Morris @@ -23062,10 +23062,10 @@ 2021-04-28 Andrea Corallo - * Add a note related to native compilation and Dynamic Binding + Add a note related to native compilation and Dynamic Binding - * doc/lispref/variables.texi (Dynamic Binding): Add a note - related to native compilation. + * doc/lispref/variables.texi (Dynamic Binding): Add a note + related to native compilation. 2021-04-28 Michael Albinus @@ -23135,20 +23135,20 @@ 2021-04-27 Andrea Corallo - * Clean-up temporary eln test-suite directory when exiting (bug#48060) + Clean-up temporary eln test-suite directory when exiting (bug#48060) - * lisp/startup.el (normal-top-level): Remove eln test-suite temp - dir when exiting. + * lisp/startup.el (normal-top-level): Remove eln test-suite temp + dir when exiting. 2021-04-27 Andrea Corallo Have `comp-cstr-intersection-no-mem' intersect pos neg value sets - * lisp/emacs-lisp/comp-cstr.el (comp-cstr-intersection-no-mem): - intersect pos and neg value sets - * test/lisp/emacs-lisp/comp-cstr-tests.el - (comp-cstr-typespec-tests-alist): Add two tests and fix some - test number. + * lisp/emacs-lisp/comp-cstr.el (comp-cstr-intersection-no-mem): + intersect pos and neg value sets + * test/lisp/emacs-lisp/comp-cstr-tests.el + (comp-cstr-typespec-tests-alist): Add two tests and fix some + test number. 2021-04-27 Stefan Kangas @@ -23466,10 +23466,10 @@ Rework where `comp-ctxt' is defined. - * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-ctxt): Remove - `comp-ctxt' definition. - * lisp/emacs-lisp/comp.el (comp-ctxt): Likewise. - * lisp/emacs-lisp/comp-cstr.el (comp-ctxt): Define it here. + * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-ctxt): Remove + `comp-ctxt' definition. + * lisp/emacs-lisp/comp.el (comp-ctxt): Likewise. + * lisp/emacs-lisp/comp-cstr.el (comp-ctxt): Define it here. 2021-04-26 Andrea Corallo @@ -23494,32 +23494,32 @@ Make use of `ert-resource-file' `ert-resource-directory' in comp-tests - * test/src/comp-resources/comp-test-pure.el: Rename. - * test/src/comp-resources/comp-test-funcs.el: Likewise. - * test/src/comp-resources/comp-test-funcs-dyn.el: Likewise. - * test/src/comp-resources/comp-test-45603.el: Likewise. - * test/src/comp-tests.el (comp-test-src, comp-test-dyn-src): Use - `ert-resource-file'. - (comp-tests-bootstrap): Use ert-resource-directory. - (comp-tests-45603-1, comp-tests-pure): Use `ert-resource-file'. + * test/src/comp-resources/comp-test-pure.el: Rename. + * test/src/comp-resources/comp-test-funcs.el: Likewise. + * test/src/comp-resources/comp-test-funcs-dyn.el: Likewise. + * test/src/comp-resources/comp-test-45603.el: Likewise. + * test/src/comp-tests.el (comp-test-src, comp-test-dyn-src): Use + `ert-resource-file'. + (comp-tests-bootstrap): Use ert-resource-directory. + (comp-tests-45603-1, comp-tests-pure): Use `ert-resource-file'. 2021-04-26 Andrea Corallo - * Use `expand-file-name' in place of `concat' in comp-tests.el + Use `expand-file-name' in place of `concat' in comp-tests.el - * test/src/comp-tests.el (comp-test-src, - comp-test-dyn-src) (comp-tests-bootstrap, comp-tests-pure, - comp-test-src): Use `expand-file-name' in place of `concat'. + * test/src/comp-tests.el (comp-test-src, + comp-test-dyn-src) (comp-tests-bootstrap, comp-tests-pure, + comp-test-src): Use `expand-file-name' in place of `concat'. 2021-04-26 Andrea Corallo Move native compiler test data into proper directory (bug#48031) - * test/src/comp-tests-resources/comp-test-45603.el: Rename. - * test/src/comp-tests-resources/comp-test-funcs-dyn.el: Likewise. - * test/src/comp-tests-resources/comp-test-funcs.el: Likewise. - * test/src/comp-tests-resources/comp-test-pure.el: Likewise. - * test/src/comp-tests.el (comp-test-directory): Update. + * test/src/comp-tests-resources/comp-test-45603.el: Rename. + * test/src/comp-tests-resources/comp-test-funcs-dyn.el: Likewise. + * test/src/comp-tests-resources/comp-test-funcs.el: Likewise. + * test/src/comp-tests-resources/comp-test-pure.el: Likewise. + * test/src/comp-tests.el (comp-test-directory): Update. 2021-04-26 Andrea Corallo @@ -23527,10 +23527,10 @@ 2021-04-26 Andrea Corallo - * Fix comp-cstr tests for vanilla build (bug#48021) + Fix comp-cstr tests for vanilla build (bug#48021) - * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-ctxt): Fix tests - for vanilla build (bug#48021) + * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-ctxt): Fix tests + for vanilla build (bug#48021) 2021-04-26 Andrea Corallo @@ -24036,10 +24036,10 @@ Improve a native compiler test - * test/src/comp-tests.el (comp-test-47868-1): Improve - testcase. - * test/src/comp-test-funcs.el (comp-test-47868-3-f) - (comp-test-47868-4-f): New functions. + * test/src/comp-tests.el (comp-test-47868-1): Improve + testcase. + * test/src/comp-test-funcs.el (comp-test-47868-3-f) + (comp-test-47868-4-f): New functions. 2021-04-22 Stefan Kangas @@ -24121,23 +24121,23 @@ Fix native compiler string hash consing strategy (bug#47868) - * test/src/comp-tests.el (comp-test-47868-1): Add new test. - * test/src/comp-test-funcs.el (comp-test-47868-1-f) - (comp-test-47868-2-f): New functions. - * lisp/emacs-lisp/comp.el (comp-imm-equal-test): Define new hash - tanble test. - (comp-data-container): Use it. - (comp-final, comp-run-async-workers): have comp required before - reading dumped hashes so that `comp-imm-equal-test' is defined. + * test/src/comp-tests.el (comp-test-47868-1): Add new test. + * test/src/comp-test-funcs.el (comp-test-47868-1-f) + (comp-test-47868-2-f): New functions. + * lisp/emacs-lisp/comp.el (comp-imm-equal-test): Define new hash + tanble test. + (comp-data-container): Use it. + (comp-final, comp-run-async-workers): have comp required before + reading dumped hashes so that `comp-imm-equal-test' is defined. 2021-04-21 Andrea Corallo Introduce `sxhash-equal-including-properties'. - * src/fns.c (collect_interval): Move it upwards. - (Fsxhash_equal_including_properties): New function. - (syms_of_fns): Register `sxhash-equal-including-properties'. - * etc/NEWS: Add 'sxhash-equal-including-properties'. + * src/fns.c (collect_interval): Move it upwards. + (Fsxhash_equal_including_properties): New function. + (syms_of_fns): Register `sxhash-equal-including-properties'. + * etc/NEWS: Add 'sxhash-equal-including-properties'. 2021-04-21 Philip K @@ -24947,10 +24947,10 @@ 2021-04-14 Andrea Corallo - * Fix native-comp startup for symliked binary (bug#44128) + Fix native-comp startup for symliked binary (bug#44128) - * src/emacs.c (real_filename): New function. - (set_invocation_vars, load_pdump): Make use of. + * src/emacs.c (real_filename): New function. + (set_invocation_vars, load_pdump): Make use of. 2021-04-14 Michael Albinus @@ -25070,10 +25070,10 @@ 2021-04-13 Andrea Corallo - * Fix two comp-cstr tests + Fix two comp-cstr tests - * test/lisp/emacs-lisp/comp-cstr-tests.el - (comp-cstr-typespec-tests-alist): Fix test 53 70. + * test/lisp/emacs-lisp/comp-cstr-tests.el + (comp-cstr-typespec-tests-alist): Fix test 53 70. 2021-04-13 Andrea Corallo @@ -26065,11 +26065,11 @@ 2021-04-07 Andrea Corallo - * Improve some docstring in comp.el + Improve some docstring in comp.el - * lisp/emacs-lisp/comp.el (comp--native-compile) - (batch-native-compile, batch-byte-native-compile-for-bootstrap): - Improve docstring. + * lisp/emacs-lisp/comp.el (comp--native-compile) + (batch-native-compile, batch-byte-native-compile-for-bootstrap): + Improve docstring. 2021-04-07 Glenn Morris @@ -26102,10 +26102,10 @@ Move gitlab-ci native-comp tests into '/test/infra/gitlab-ci.yml' - * .gitlab-ci.yml: Fix incorrect b8d3ae78c5 merge. - * test/infra/gitlab-ci.yml (test-native-bootstrap-speed0) - (test-native-bootstrap-speed1, test-native-bootstrap-speed2): Move - from .gitlab-ci.yml. + * .gitlab-ci.yml: Fix incorrect b8d3ae78c5 merge. + * test/infra/gitlab-ci.yml (test-native-bootstrap-speed0) + (test-native-bootstrap-speed1, test-native-bootstrap-speed2): Move + from .gitlab-ci.yml. 2021-04-07 Mattias Engdegård @@ -26128,7 +26128,7 @@ 2021-04-07 Andrea Corallo - * Makefile.in (BIN_DESTDIR, src): Fix 'BIN_DESTDIR' on MacOS. + Makefile.in (BIN_DESTDIR, src): Fix 'BIN_DESTDIR' on MacOS. 2021-04-07 Dmitry Gutov @@ -26285,10 +26285,10 @@ 2021-04-05 Andrea Corallo - * Introduce `comp-file-preloaded-p' + Introduce `comp-file-preloaded-p' - * 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 (syms_of_comp): Define `comp-file-preloaded-p'. + (Fcomp_el_to_eln_filename): Account for `comp-file-preloaded-p'. 2021-04-05 Michael Albinus @@ -26462,12 +26462,12 @@ Output native compiled preloaded files into the 'preloaded' subfolder - * 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. + * 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. 2021-04-04 Harald Jörg @@ -26834,12 +26834,12 @@ Issue a warning when eln look-up fails due to missing .el source file. - * 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'. + * 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'. 2021-04-01 Stefan Kangas @@ -26991,23 +26991,23 @@ Rework native compilation `comp-debug' (bug#46495) - * 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. + * 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. 2021-03-31 Andrea Corallo Do not defer compilation when bytecode is explicitly requested (bug#46617) - * 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. + * 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. 2021-03-31 Stefan Kangas @@ -27641,10 +27641,10 @@ 2021-03-26 Andrea Corallo - * Prevent stale eln loading checking file timestamp before load (bug#46617) + Prevent stale eln loading checking file timestamp before load (bug#46617) - * src/lread.c (maybe_swap_for_eln): Add file timestamp check. - (openp): Update 'maybe_swap_for_eln' call sites. + * src/lread.c (maybe_swap_for_eln): Add file timestamp check. + (openp): Update 'maybe_swap_for_eln' call sites. 2021-03-25 Glenn Morris @@ -27917,8 +27917,8 @@ Improve two native compiler related docstrings. - * lisp/emacs-lisp/comp.el (comp-eln-load-path-eff): Improve docstring. - * src/comp.c (comp-eln-load-path): Likewise. + * lisp/emacs-lisp/comp.el (comp-eln-load-path-eff): Improve docstring. + * src/comp.c (comp-eln-load-path): Likewise. 2021-03-24 Lars Ingebrigtsen @@ -28210,12 +28210,12 @@ Prevent unnecessary multiple .el hashing in 'maybe_swap_for_eln' - * 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. + * 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. 2021-03-21 Alan Mackenzie @@ -28265,8 +28265,8 @@ Add a tmp dir to `comp-eln-load-path' when running the testsuite. - * lisp/startup.el (normal-top-level): Tweak `comp-eln-load-path' - adding a temp directory when running the testsuite. + * lisp/startup.el (normal-top-level): Tweak `comp-eln-load-path' + adding a temp directory when running the testsuite. 2021-03-21 Glenn Morris @@ -28454,22 +28454,22 @@ Do not load native code when `load' is explicitly called on a .elc file - * src/lread.c (Fload): Do not load native code when `load' is - explicitly called on a .elc file. - (Flocate_file_internal): Update 'openp' call sites. - (maybe_swap_for_eln): Add new 'no_native' parameter. - (openp): Likewise + update 'maybe_swap_for_eln' and 'openp' call - sites. - * src/lisp.h: Update 'openp' signature. - * src/w32proc.c (sys_spawnve): Update 'openp' call sites. - * src/w32.c (check_windows_init_file): Likewise. - * src/sound.c (Fplay_sound_internal): Likewise. - * src/process.c (Fmake_process): Likewise. - * src/image.c (image_create_bitmap_from_file) - (image_find_image_fd): Likewise. - * src/emacs.c (set_invocation_vars): Likewise. - * src/charset.c (load_charset_map_from_file): Likewise. - * src/callproc.c (call_process): Likewise. + * src/lread.c (Fload): Do not load native code when `load' is + explicitly called on a .elc file. + (Flocate_file_internal): Update 'openp' call sites. + (maybe_swap_for_eln): Add new 'no_native' parameter. + (openp): Likewise + update 'maybe_swap_for_eln' and 'openp' call + sites. + * src/lisp.h: Update 'openp' signature. + * src/w32proc.c (sys_spawnve): Update 'openp' call sites. + * src/w32.c (check_windows_init_file): Likewise. + * src/sound.c (Fplay_sound_internal): Likewise. + * src/process.c (Fmake_process): Likewise. + * src/image.c (image_create_bitmap_from_file) + (image_find_image_fd): Likewise. + * src/emacs.c (set_invocation_vars): Likewise. + * src/charset.c (load_charset_map_from_file): Likewise. + * src/callproc.c (call_process): Likewise. 2021-03-19 Mauro Aranda @@ -29028,10 +29028,10 @@ Fix `no-byte-compile' native compilation interaction (bug#47169) - * lisp/emacs-lisp/comp.el (comp-spill-lap-function): Throw - no-native-compile when `byte-native-qualities' are null. - * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): No need - to consider `no-byte-compile'. + * lisp/emacs-lisp/comp.el (comp-spill-lap-function): Throw + no-native-compile when `byte-native-qualities' are null. + * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): No need + to consider `no-byte-compile'. 2021-03-16 Juri Linkov @@ -29086,9 +29086,9 @@ Have `no-byte-compile' implies also `no-native-compile'. - * lisp/emacs-lisp/comp.el (no-native-compile): Update doctring. - * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): when - `no-byte-compile' is set to non-nil it overrides this. + * lisp/emacs-lisp/comp.el (no-native-compile): Update doctring. + * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): when + `no-byte-compile' is set to non-nil it overrides this. 2021-03-16 Daniel Martín @@ -29316,9 +29316,9 @@ Fix some entry in `comp-known-type-specifiers' (bug#46847) - * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Some - fix. - * test/src/comp-tests.el (comp-tests-46670-1): Update test. + * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Some + fix. + * test/src/comp-tests.el (comp-tests-46670-1): Update test. 2021-03-14 Pip Cet @@ -29479,10 +29479,10 @@ 2021-03-12 Andrea Corallo - * Fix circular dependecy when loading a modified comp.el (bug#47049) + 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 (comp-subr-trampoline-install): Move it + before other functional code. 2021-03-12 Stefan Monnier @@ -29637,14 +29637,14 @@ Implement `no-native-compile' (bug#46983) - * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Capture - `no-native-compile'. - * lisp/emacs-lisp/comp.el (no-native-compile): Define new - variable. - (comp-spill-lap-function): Throw when `no-native-compile' was - captured non-nil. - (comp--native-compile): Catch `no-native-compile' if necessary and - return nil in case. + * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Capture + `no-native-compile'. + * lisp/emacs-lisp/comp.el (no-native-compile): Define new + variable. + (comp-spill-lap-function): Throw when `no-native-compile' was + captured non-nil. + (comp--native-compile): Catch `no-native-compile' if necessary and + return nil in case. 2021-03-12 Robert Pluim @@ -29655,11 +29655,11 @@ 2021-03-12 Andrea Corallo - * Fix error reporting for async native compilation (bug#47024) + Fix error reporting for async native compilation (bug#47024) - * lisp/emacs-lisp/comp.el (comp--native-compile): During async - compilation if we catch an error print it in a parsable way so we - can report it to the user. + * lisp/emacs-lisp/comp.el (comp--native-compile): During async + compilation if we catch an error print it in a parsable way so we + can report it to the user. 2021-03-12 Stefan Monnier @@ -30131,10 +30131,10 @@ 2021-03-10 Andrea Corallo - * Fix truncated warnings (bug#47024) + Fix truncated warnings (bug#47024) - * lisp/emacs-lisp/comp.el (comp-run-async-workers): Bind - `warning-fill-column' to `most-positive-fixnum'. + * lisp/emacs-lisp/comp.el (comp-run-async-workers): Bind + `warning-fill-column' to `most-positive-fixnum'. 2021-03-10 Stefan Kangas @@ -30629,22 +30629,22 @@ 2021-03-07 Andrea Corallo - * Handle `comp-native-driver-options' both as file-local both as global + Handle `comp-native-driver-options' both as file-local both as global - * src/comp.c (add_driver_options): Throw an error if - `comp-native-driver-options' is set globally but - 'gcc_jit_context_add_driver_option' is not available, ignore for - the file-local case. + * src/comp.c (add_driver_options): Throw an error if + `comp-native-driver-options' is set globally but + 'gcc_jit_context_add_driver_option' is not available, ignore for + the file-local case. 2021-03-07 Andrea Corallo Use `length=' and family where possible in native comp code - * lisp/emacs-lisp/comp-cstr.el (comp-intersect-typesets) - (comp-cstr-imm): Use Use `length=' and family where possible. - * lisp/emacs-lisp/comp.el (comp-add-cond-cstrs-target-block) - (comp-compute-dominator-frontiers) - (batch-byte-native-compile-for-bootstrap): Likewise. + * lisp/emacs-lisp/comp-cstr.el (comp-intersect-typesets) + (comp-cstr-imm): Use Use `length=' and family where possible. + * lisp/emacs-lisp/comp.el (comp-add-cond-cstrs-target-block) + (comp-compute-dominator-frontiers) + (batch-byte-native-compile-for-bootstrap): Likewise. 2021-03-07 Andrea Corallo @@ -30675,10 +30675,10 @@ 2021-03-07 Andrea Corallo - * Work around GCC PR99126 on all libgccjit < 11 + Work around GCC PR99126 on all libgccjit < 11 - * src/comp.c (Fcomp__compile_ctxt_to_file): Work around GCC - PR99126 on all libgccjit < 11. + * src/comp.c (Fcomp__compile_ctxt_to_file): Work around GCC + PR99126 on all libgccjit < 11. 2021-03-07 Michael Albinus @@ -30889,10 +30889,10 @@ Fix `comp-cstr-intersection-no-hashcons' for negated result cstr - * lisp/emacs-lisp/comp-cstr.el - (comp-cstr-intersection-no-hashcons): When negated and - necessary relax dst to t. - * test/src/comp-tests.el (comp-tests-type-spec-tests): Add a test. + * lisp/emacs-lisp/comp-cstr.el + (comp-cstr-intersection-no-hashcons): When negated and + necessary relax dst to t. + * test/src/comp-tests.el (comp-tests-type-spec-tests): Add a test. 2021-03-06 Pip Cet @@ -30910,11 +30910,11 @@ Fix `=' propagation to handle -0.0 0.0 case - * lisp/emacs-lisp/comp-cstr.el - (comp-cstr-intersection-homogeneous): Fix indent + use `memql'. - (comp-cstr-=): Handle 0.0 -0.0 idiosyncrasy - * test/src/comp-tests.el (comp-tests-type-spec-tests): Add two - tests and fix enumeration. + * lisp/emacs-lisp/comp-cstr.el + (comp-cstr-intersection-homogeneous): Fix indent + use `memql'. + (comp-cstr-=): Handle 0.0 -0.0 idiosyncrasy + * test/src/comp-tests.el (comp-tests-type-spec-tests): Add two + tests and fix enumeration. 2021-03-06 Glenn Morris @@ -31443,14 +31443,14 @@ 2021-03-05 Andrea Corallo - * Harden `comp-abi-hash' computation + Harden `comp-abi-hash' computation Account for subr arity in `comp-abi-hash' computation as that's part of the ABI exposed to .eln files. - * src/comp.c (Fcomp__subr_signature): New support function. - (hash_native_abi): Make use of. - (syms_of_comp): Register 'Scomp__subr_signature'. + * src/comp.c (Fcomp__subr_signature): New support function. + (hash_native_abi): Make use of. + (syms_of_comp): Register 'Scomp__subr_signature'. 2021-03-05 Pip Cet @@ -31472,7 +31472,7 @@ 2021-03-04 Andrea Corallo - * Makefile.in (ELN_DESTDIR): Remove unnecessary double quoting. + Makefile.in (ELN_DESTDIR): Remove unnecessary double quoting. 2021-03-04 Lars Ingebrigtsen @@ -31679,10 +31679,10 @@ Fix two compiler ICEs dealing with nan and infinity - * lisp/emacs-lisp/comp-cstr.el (comp-cstr-=): Don't crash when - truncate fails. - * test/src/comp-test-funcs.el (comp-test-=-nan): Add two functions - to be compiled. + * lisp/emacs-lisp/comp-cstr.el (comp-cstr-=): Don't crash when + truncate fails. + * test/src/comp-test-funcs.el (comp-test-=-nan): Add two functions + to be compiled. 2021-03-03 Juri Linkov @@ -31804,11 +31804,11 @@ Fix = propagation semantic for constrained inputs - * lisp/emacs-lisp/comp-cstr.el (comp-cstr): Synthesize - `comp-cstr-shallow-copy'. - (comp-cstr-=): Relax inputs before intersecting them. - * test/src/comp-tests.el (comp-tests-type-spec-tests): Add three - tests. + * lisp/emacs-lisp/comp-cstr.el (comp-cstr): Synthesize + `comp-cstr-shallow-copy'. + (comp-cstr-=): Relax inputs before intersecting them. + * test/src/comp-tests.el (comp-tests-type-spec-tests): Add three + tests. 2021-03-02 Dmitry Gutov @@ -32008,17 +32008,17 @@ intersections where non hash consed values are not propagated as values but rather promoted to their types. - * lisp/emacs-lisp/comp-cstr.el - (comp-cstr-intersection-no-hashcons): New function. - * lisp/emacs-lisp/comp.el (comp-emit-assume): Logic update to emit - `and-nhc' operator (implemented in fwprop by - `comp-cstr-intersection-no-hashcons'). - (comp-add-cond-cstrs): Map `eq' to `and' assume operator and - `equal' `eql' into `and-nhc'. - (comp-fwprop-insn): Update to handle `and-nhc'. - * test/src/comp-tests.el (comp-tests-type-spec-tests): Add two - tests covering `eql' and `equal' propagation of non hash consed - values. + * lisp/emacs-lisp/comp-cstr.el + (comp-cstr-intersection-no-hashcons): New function. + * lisp/emacs-lisp/comp.el (comp-emit-assume): Logic update to emit + `and-nhc' operator (implemented in fwprop by + `comp-cstr-intersection-no-hashcons'). + (comp-add-cond-cstrs): Map `eq' to `and' assume operator and + `equal' `eql' into `and-nhc'. + (comp-fwprop-insn): Update to handle `and-nhc'. + * test/src/comp-tests.el (comp-tests-type-spec-tests): Add two + tests covering `eql' and `equal' propagation of non hash consed + values. 2021-03-01 Stefan Monnier @@ -32098,31 +32098,31 @@ to caputure '=' semanting during fwprop handling float integer conversions. - * lisp/emacs-lisp/comp.el (comp-equality-fun-p): Don't treat '=' as - simple equality. - (comp-arithm-cmp-fun-p, comp-negate-arithm-cmp-fun) - (comp-reverse-arithm-fun): Rename and add '=' '!='. - (comp-emit-assume, comp-add-cond-cstrs, comp-fwprop-insn): Update - for new function nameing and to handle '='. - * lisp/emacs-lisp/comp-cstr.el (comp-cstr-=): New function. - * test/src/comp-tests.el (comp-tests-type-spec-tests): Add a bunch - of '=' specific tests. + * lisp/emacs-lisp/comp.el (comp-equality-fun-p): Don't treat '=' as + simple equality. + (comp-arithm-cmp-fun-p, comp-negate-arithm-cmp-fun) + (comp-reverse-arithm-fun): Rename and add '=' '!='. + (comp-emit-assume, comp-add-cond-cstrs, comp-fwprop-insn): Update + for new function nameing and to handle '='. + * lisp/emacs-lisp/comp-cstr.el (comp-cstr-=): New function. + * test/src/comp-tests.el (comp-tests-type-spec-tests): Add a bunch + of '=' specific tests. 2021-02-28 Andrea Corallo Migrate and rename a bunch of functions from comp.el to comp-cstr.el - * lisp/emacs-lisp/comp-cstr.el (comp-cstr-imm-vld-p) - (comp-cstr-imm, comp-cstr-fixnum-p, comp-cstr-symbol-p) - (comp-cstr-cons-p): Move and rename from 'comp.el'. - * lisp/emacs-lisp/comp.el (comp-mvar-type-hint-match-p) - (make-comp-mvar, comp-emit-assume, comp-fwprop-prologue) - (comp-function-foldable-p, comp-function-call-maybe-fold) - (comp-fwprop-call, comp-fwprop-insn, comp-call-optim-func) - (comp-compute-function-type): Update for renamed functions. - * src/comp.c (emit_mvar_rval): Likewise. - * test/src/comp-tests.el (comp-tests-mentioned-p-1) - (comp-tests-cond-rw-checker-val): Likewise. + * lisp/emacs-lisp/comp-cstr.el (comp-cstr-imm-vld-p) + (comp-cstr-imm, comp-cstr-fixnum-p, comp-cstr-symbol-p) + (comp-cstr-cons-p): Move and rename from 'comp.el'. + * lisp/emacs-lisp/comp.el (comp-mvar-type-hint-match-p) + (make-comp-mvar, comp-emit-assume, comp-fwprop-prologue) + (comp-function-foldable-p, comp-function-call-maybe-fold) + (comp-fwprop-call, comp-fwprop-insn, comp-call-optim-func) + (comp-compute-function-type): Update for renamed functions. + * src/comp.c (emit_mvar_rval): Likewise. + * test/src/comp-tests.el (comp-tests-mentioned-p-1) + (comp-tests-cond-rw-checker-val): Likewise. 2021-02-28 Glenn Morris @@ -32558,10 +32558,10 @@ 2021-02-26 Andrea Corallo - * Canonicalize filenames on Windows before hashing (bug#46256) + Canonicalize filenames on Windows before hashing (bug#46256) - * src/comp.c (Fcomp_el_to_eln_filename): On Windowns - canonicalize filenames before hashing. + * src/comp.c (Fcomp_el_to_eln_filename): On Windowns + canonicalize filenames before hashing. 2021-02-26 Stefan Monnier @@ -32584,17 +32584,17 @@ 2021-02-26 Andrea Corallo - * Change native compiler configure flag into '--with-native-compilation' + Change native compiler configure flag into '--with-native-compilation' - * configure.ac: Rename configure nativecomp flags into - --with-native-compilation. + * configure.ac: Rename configure nativecomp flags into + --with-native-compilation. 2021-02-26 Andrea Corallo - * Interactive tag native compilation function in emacs-lisp-mode + Interactive tag native compilation function in emacs-lisp-mode - * lisp/progmodes/elisp-mode.el - (emacs-lisp-native-compile-and-load): Tag it for `emacs-lisp-mode'. + * lisp/progmodes/elisp-mode.el + (emacs-lisp-native-compile-and-load): Tag it for `emacs-lisp-mode'. 2021-02-26 Andrea Corallo @@ -32698,10 +32698,10 @@ 2021-02-26 Andrea Corallo - * Improve `comp-async-report-warnings-errors' docstring + Improve `comp-async-report-warnings-errors' docstring - * lisp/emacs-lisp/comp.el (comp-async-report-warnings-errors): - Improve docstring. + * lisp/emacs-lisp/comp.el (comp-async-report-warnings-errors): + Improve docstring. 2021-02-26 Eli Zaretskii @@ -32712,10 +32712,10 @@ 2021-02-26 Andrea Corallo - * Add `comp-async-query-on-exit' customize. + Add `comp-async-query-on-exit' customize. - * lisp/emacs-lisp/comp.el (comp-async-query-on-exit): New customize. - (comp-run-async-workers): Make use of. + * lisp/emacs-lisp/comp.el (comp-async-query-on-exit): New customize. + (comp-run-async-workers): Make use of. 2021-02-26 Basil L. Contovounesios @@ -32757,18 +32757,18 @@ 2021-02-25 Andrea Corallo - * Fix some comp-vec logic + Fix some comp-vec logic - * lisp/emacs-lisp/comp.el (comp-vec-length, comp-vec-append) - (comp-vec-prepend): Fix logic. - (comp-vec-aref): Fix indentation. + * lisp/emacs-lisp/comp.el (comp-vec-length, comp-vec-append) + (comp-vec-prepend): Fix logic. + (comp-vec-aref): Fix indentation. 2021-02-25 Andrea Corallo - * Fix two docstrings in comp.el + Fix two docstrings in comp.el - * lisp/emacs-lisp/comp.el (comp-new-frame, - comp-maybe-add-vmvar): Fix docstring. + * lisp/emacs-lisp/comp.el (comp-new-frame, + comp-maybe-add-vmvar): Fix docstring. 2021-02-25 Eli Zaretskii @@ -33050,46 +33050,46 @@ Fix async compilation and paramenter naming - * lisp/emacs-lisp/comp.el (native--compile-async) - (native-compile-async): Fix broken parameter renaming. + * lisp/emacs-lisp/comp.el (native--compile-async) + (native-compile-async): Fix broken parameter renaming. 2021-02-23 Andrea Corallo Do not emit assumptions referencing clobbered mvars (bug#46670) - * lisp/emacs-lisp/comp.el (comp-func): Add `vframe-size' slot. - (comp-new-frame): Add `vsize' parameter. - (comp-limplify-top-level, comp-limplify-function): Update for new - `comp-new-frame'. - (comp-maybe-add-vmvar): New function. - (comp-add-cond-cstrs): Logic update to emit assumptions not - referencing clobbered variables. - (comp-place-phis, comp-ssa, comp-ssa-rename-insn) - (comp-ssa-rename): Update rename logic to rename also negative - slots. - (comp-fwprop-insn): Update to handle `(assume mvar mvar)' form. - * test/src/comp-tests.el (46670-1): Add testcase. - * test/src/comp-test-funcs.el (comp-test-46670-1-f) - (comp-test-46670-2-f): New functions. + * lisp/emacs-lisp/comp.el (comp-func): Add `vframe-size' slot. + (comp-new-frame): Add `vsize' parameter. + (comp-limplify-top-level, comp-limplify-function): Update for new + `comp-new-frame'. + (comp-maybe-add-vmvar): New function. + (comp-add-cond-cstrs): Logic update to emit assumptions not + referencing clobbered variables. + (comp-place-phis, comp-ssa, comp-ssa-rename-insn) + (comp-ssa-rename): Update rename logic to rename also negative + slots. + (comp-fwprop-insn): Update to handle `(assume mvar mvar)' form. + * test/src/comp-tests.el (46670-1): Add testcase. + * test/src/comp-test-funcs.el (comp-test-46670-1-f) + (comp-test-46670-2-f): New functions. 2021-02-23 Andrea Corallo - * Move ssa rename from vector to comp-vec + Move ssa rename from vector to comp-vec - * lisp/emacs-lisp/comp.el (comp-block): Updated `final-frame' slot - type. - (comp-limplify): Updated `frame' slot type. - (comp-slot-n, comp-new-frame, comp-place-phis, comp-ssa) - (comp-ssa-rename-insn, comp-ssa-rename, comp-finalize-phis): Use - `comp-vec'. + * lisp/emacs-lisp/comp.el (comp-block): Updated `final-frame' slot + type. + (comp-limplify): Updated `frame' slot type. + (comp-slot-n, comp-new-frame, comp-place-phis, comp-ssa) + (comp-ssa-rename-insn, comp-ssa-rename, comp-finalize-phis): Use + `comp-vec'. 2021-02-23 Andrea Corallo - * Add a simple growable vector like type + Add a simple growable vector like type - * lisp/emacs-lisp/comp.el (comp-vec): Define struct. - (comp-vec-copy, comp-vec-length, comp-vec--verify-idx) - (comp-vec-aref, comp-vec-append, comp-vec-prepend): New functions. + * lisp/emacs-lisp/comp.el (comp-vec): Define struct. + (comp-vec-copy, comp-vec-length, comp-vec--verify-idx) + (comp-vec-aref, comp-vec-append, comp-vec-prepend): New functions. 2021-02-23 Juri Linkov @@ -33402,12 +33402,12 @@ 2021-02-22 Andrea Corallo - * Some clean-up in comp.el + Some clean-up in comp.el - * lisp/emacs-lisp/comp.el (comp-func): Remove 'array-h'. - (comp-spill-lap-function, comp-intern-func-in-ctxt) - (comp-spill-lap-function, comp-addr-to-bb-name): Update - accordingly. + * lisp/emacs-lisp/comp.el (comp-func): Remove 'array-h'. + (comp-spill-lap-function, comp-intern-func-in-ctxt) + (comp-spill-lap-function, comp-addr-to-bb-name): Update + accordingly. 2021-02-22 Andrea Corallo @@ -33602,20 +33602,20 @@ 2021-02-22 Andrea Corallo - * Don't use paths to indicate filenames + Don't use paths to indicate filenames - * lisp/emacs-lisp/comp.el (native--compile-async) - (native-compile-async): Replace `paths' argname with `files'. + * lisp/emacs-lisp/comp.el (native--compile-async) + (native-compile-async): Replace `paths' argname with `files'. 2021-02-22 Andrea Corallo - * Fix union constraint for mixed pos/neg constraints + Fix union constraint for mixed pos/neg constraints - * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1-no-mem): Fix neg - type shadowing pos values. - * test/lisp/emacs-lisp/comp-cstr-tests.el - (comp-cstr-typespec-tests-alist): Add testcase. - * test/src/comp-tests.el (comp-tests-type-spec-tests): Fix testcase. + * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1-no-mem): Fix neg + type shadowing pos values. + * test/lisp/emacs-lisp/comp-cstr-tests.el + (comp-cstr-typespec-tests-alist): Add testcase. + * test/src/comp-tests.el (comp-tests-type-spec-tests): Fix testcase. 2021-02-22 Stefan Kangas @@ -33956,31 +33956,31 @@ 2021-02-19 Andrea Corallo - * Work around bug#46495 (GCC PR99126) + Work around bug#46495 (GCC PR99126) - * src/comp.c (gcc_jit_context_add_command_line_option): Import for - dynamic load. - (Fcomp__compile_ctxt_to_file): Disable GCC "isolate-paths" on GCC - 10. + * src/comp.c (gcc_jit_context_add_command_line_option): Import for + dynamic load. + (Fcomp__compile_ctxt_to_file): Disable GCC "isolate-paths" on GCC + 10. 2021-02-19 Andrea Corallo - * Remove unnecessary function 'emit_rvalue_from_unsigned_long_long' + Remove unnecessary function 'emit_rvalue_from_unsigned_long_long' - * src/comp.c (emit_rvalue_from_unsigned_long_long): Remove - function. - (emit_rvalue_from_emacs_uint, emit_rvalue_from_lisp_word_tag) - (emit_rvalue_from_lisp_word): Make use of - 'emit_rvalue_from_long_long'. + * src/comp.c (emit_rvalue_from_unsigned_long_long): Remove + function. + (emit_rvalue_from_emacs_uint, emit_rvalue_from_lisp_word_tag) + (emit_rvalue_from_lisp_word): Make use of + 'emit_rvalue_from_long_long'. 2021-02-19 Andrea Corallo - * Pacify GCC warning on non wide-int configurations + Pacify GCC warning on non wide-int configurations - * src/comp.c (emit_rvalue_from_emacs_uint) - (emit_rvalue_from_lisp_word_tag): Pacify GCC warning. - (emit_rvalue_from_unsigned_long_long): Define it only when - necessary. + * src/comp.c (emit_rvalue_from_emacs_uint) + (emit_rvalue_from_lisp_word_tag): Pacify GCC warning. + (emit_rvalue_from_unsigned_long_long): Define it only when + necessary. 2021-02-19 Alan Third @@ -34120,22 +34120,22 @@ 2021-02-18 Andrea Corallo - * Add a bunch of assertions for fixnums coming from Lisp later used as int + Add a bunch of assertions for fixnums coming from Lisp later used as int - * src/comp.c (emit_limple_insn, declare_lex_function) - (compile_function, Fcomp__compile_ctxt_to_file): Add some - assertion. + * src/comp.c (emit_limple_insn, declare_lex_function) + (compile_function, Fcomp__compile_ctxt_to_file): Add some + assertion. 2021-02-18 Andrea Corallo - * Add assertion guarding against emitting a relocation array overflow + Add assertion guarding against emitting a relocation array overflow - * src/comp.c (reloc_array_t): New type. - (comp_t, imm_reloc_t): Make use of 'reloc_array_t'. - (obj_to_reloc): Add an assertion not to overflow relocation - arrays. - (emit_lisp_obj_reloc_lval, emit_limple_insn) - (declare_imported_data_relocs): Make use of 'reloc_array_t'. + * src/comp.c (reloc_array_t): New type. + (comp_t, imm_reloc_t): Make use of 'reloc_array_t'. + (obj_to_reloc): Add an assertion not to overflow relocation + arrays. + (emit_lisp_obj_reloc_lval, emit_limple_insn) + (declare_imported_data_relocs): Make use of 'reloc_array_t'. 2021-02-18 Stefan Monnier @@ -34297,10 +34297,10 @@ Fix inverted logic in constraint comparison (bug#46540) - * lisp/emacs-lisp/comp-cstr.el (comp-cstr->, comp-cstr->=) - (comp-cstr-<, comp-cstr-<=): Fix inverted logic. - * test/src/comp-tests.el (comp-tests-type-spec-tests): Add - three integer constrain tests. + * lisp/emacs-lisp/comp-cstr.el (comp-cstr->, comp-cstr->=) + (comp-cstr-<, comp-cstr-<=): Fix inverted logic. + * test/src/comp-tests.el (comp-tests-type-spec-tests): Add + three integer constrain tests. 2021-02-17 Lars Ingebrigtsen @@ -34508,10 +34508,10 @@ 2021-02-16 Andrea Corallo - * Clean-up some signal related dead-code + Clean-up some signal related dead-code - * src/comp.c (restore_sigmask): Remove function. - (Fcomp__compile_ctxt_to_file): Remove some dead-code. + * src/comp.c (restore_sigmask): Remove function. + (Fcomp__compile_ctxt_to_file): Remove some dead-code. 2021-02-16 Andrea Corallo @@ -34519,20 +34519,20 @@ 2021-02-16 Andrea Corallo - * Better long range check + Better long range check - * src/comp.c (emit_rvalue_from_emacs_uint) - (emit_rvalue_from_emacs_int, emit_rvalue_from_lisp_word_tag) - (emit_rvalue_from_lisp_word): Better long range check. + * src/comp.c (emit_rvalue_from_emacs_uint) + (emit_rvalue_from_emacs_int, emit_rvalue_from_lisp_word_tag) + (emit_rvalue_from_lisp_word): Better long range check. 2021-02-16 Andrea Corallo - * Sanitize frame slot access in final + Sanitize frame slot access in final - * src/comp.c (comp_t): Add 'frame_size' field. - (emit_mvar_lval): Add sanity check on frame element access. - (compile_function): Initialize 'comp.frame_size' and - 'comp.frame_size'. + * src/comp.c (comp_t): Add 'frame_size' field. + (emit_mvar_lval): Add sanity check on frame element access. + (compile_function): Initialize 'comp.frame_size' and + 'comp.frame_size'. 2021-02-16 Glenn Morris @@ -35811,14 +35811,14 @@ Add late load pdumper hooks so these can call into Lisp - * src/pdumper.h (pdumper_do_now_and_after_late_load): New function. - * src/pdumper.c (dump_late_hooks, nr_dump_late_hooks): New static - variables. - (dump_metadata_for_pdumper): Add support for late load hooks. - (pdumper_do_now_and_after_late_load_impl): New functions. - (pdumper_load): Add support for late load hooks. - * src/window.c (init_window_once): Register - 'init_window_once_for_pdumper' to be executed after late load. + * src/pdumper.h (pdumper_do_now_and_after_late_load): New function. + * src/pdumper.c (dump_late_hooks, nr_dump_late_hooks): New static + variables. + (dump_metadata_for_pdumper): Add support for late load hooks. + (pdumper_do_now_and_after_late_load_impl): New functions. + (pdumper_load): Add support for late load hooks. + * src/window.c (init_window_once): Register + 'init_window_once_for_pdumper' to be executed after late load. 2021-02-10 Andrea Corallo @@ -37278,19 +37278,19 @@ 2021-02-03 Andrea Corallo - * Remove `system-configuration' from eln filename + Remove `system-configuration' from eln filename - * src/comp.c (hash_native_abi): Remove `system-configuration' - from eln filename. Add `system-configuration' and - `emacs-version' into `comp-abi-hash'. + * src/comp.c (hash_native_abi): Remove `system-configuration' + from eln filename. Add `system-configuration' and + `emacs-version' into `comp-abi-hash'. 2021-02-03 Andrea Corallo - * Short eln filename hashes + Short eln filename hashes - * src/comp.c (HASH_LENGTH): New macro. - (comp_hash_string, comp_hash_source_file): Trim the hash before - returning. + * src/comp.c (HASH_LENGTH): New macro. + (comp_hash_string, comp_hash_source_file): Trim the hash before + returning. 2021-02-03 Michael Albinus @@ -40490,9 +40490,9 @@ These have the effect of bloating the IR for no effect killing compile time. The typical cases for that are extremely long backuoted lists. - * lisp/emacs-lisp/comp-cstr.el (comp-cstr-t): New var. - * lisp/emacs-lisp/comp.el (comp-add-call-cstr): No need to add - arg call constraints if this is t. + * lisp/emacs-lisp/comp-cstr.el (comp-cstr-t): New var. + * lisp/emacs-lisp/comp.el (comp-add-call-cstr): No need to add + arg call constraints if this is t. 2021-01-19 Philipp Stephani @@ -40838,29 +40838,29 @@ 2021-01-17 Andrea Corallo - * Run dead code removal always before fwprop, optim bootstrap time (~20% less) + Run dead code removal always before fwprop, optim bootstrap time (~20% less) - * lisp/emacs-lisp/comp.el (comp-passes): Remove `comp-dead-code'. - (comp-fwprop): Call `comp-dead-code'. - (comp-dead-code): Remove fake arg. + * lisp/emacs-lisp/comp.el (comp-passes): Remove `comp-dead-code'. + (comp-fwprop): Call `comp-dead-code'. + (comp-dead-code): Remove fake arg. 2021-01-17 Andrea Corallo - * Introduce `comp-fwprop-max-insns-scan' as heuristic threshold + Introduce `comp-fwprop-max-insns-scan' as heuristic threshold - * lisp/emacs-lisp/comp.el (comp-fwprop-max-insns-scan): New - constant. - (comp-fwprop*): Give-up when `comp-fwprop-max-insns-scan' is - exceeded. + * lisp/emacs-lisp/comp.el (comp-fwprop-max-insns-scan): New + constant. + (comp-fwprop*): Give-up when `comp-fwprop-max-insns-scan' is + exceeded. 2021-01-17 Andrea Corallo Make `comp-enable-subr-trampolines' effective for advices (bug#45854) - * src/comp.c: Copyright update. - (syms_of_comp): Update `comp-enable-subr-trampolines' doc. - * lisp/emacs-lisp/comp.el (comp-subr-trampoline-install): Check - for `comp-enable-subr-trampolines'. + * src/comp.c: Copyright update. + (syms_of_comp): Update `comp-enable-subr-trampolines' doc. + * lisp/emacs-lisp/comp.el (comp-subr-trampoline-install): Check + for `comp-enable-subr-trampolines'. 2021-01-17 Eli Zaretskii @@ -41038,8 +41038,8 @@ Philip Brown - * lisp/emacs-lisp/comp.el (comp-run-async-workers): Set - backtrace-line-length in async worker processes. + * lisp/emacs-lisp/comp.el (comp-run-async-workers): Set + backtrace-line-length in async worker processes. 2021-01-16 Andrea Corallo @@ -41266,20 +41266,20 @@ 2021-01-14 Andrea Corallo - * Normalize `comp-eln-load-path' entries for trampoline comp (bug#43475) + Normalize `comp-eln-load-path' entries for trampoline comp (bug#43475) - * lisp/emacs-lisp/comp.el (comp-eln-load-path-eff): New function. - (comp-trampoline-search, comp-trampoline-compile) - (comp-clean-up-stale-eln): Update to use normalized - `comp-eln-load-path-eff'. + * lisp/emacs-lisp/comp.el (comp-eln-load-path-eff): New function. + (comp-trampoline-search, comp-trampoline-compile) + (comp-clean-up-stale-eln): Update to use normalized + `comp-eln-load-path-eff'. 2021-01-14 Andrea Corallo - * Introduce native compilation time reports + Introduce native compilation time reports - * lisp/emacs-lisp/comp.el (comp-log-time-report): New special - variable. - (comp--native-compile): Rework to log time reports. + * lisp/emacs-lisp/comp.el (comp-log-time-report): New special + variable. + (comp--native-compile): Rework to log time reports. 2021-01-14 Juri Linkov @@ -41911,11 +41911,11 @@ Improve `comp-libgccjit-reproducer' - * src/comp.c (Fcomp__compile_ctxt_to_file): Better libgccjit - reproducer file name. - * lisp/emacs-lisp/comp.el (comp-libgccjit-reproducer): Doc update. - (comp-final, comp-run-async-workers): Pass - `comp-libgccjit-reproducer' setting to child workers. + * src/comp.c (Fcomp__compile_ctxt_to_file): Better libgccjit + reproducer file name. + * lisp/emacs-lisp/comp.el (comp-libgccjit-reproducer): Doc update. + (comp-final, comp-run-async-workers): Pass + `comp-libgccjit-reproducer' setting to child workers. 2021-01-09 Eli Zaretskii @@ -41935,10 +41935,10 @@ Add new customize `comp-libgccjit-reproducer' - * lisp/emacs-lisp/comp.el (comp-libgccjit-reproducer): New customize. - * src/comp.c (Fcomp__compile_ctxt_to_file): Use - `comp-libgccjit-reproducer' for dumping repoducer. - (syms_of_comp): Define 'Qcomp_libgccjit_reproducer'. + * lisp/emacs-lisp/comp.el (comp-libgccjit-reproducer): New customize. + * src/comp.c (Fcomp__compile_ctxt_to_file): Use + `comp-libgccjit-reproducer' for dumping repoducer. + (syms_of_comp): Define 'Qcomp_libgccjit_reproducer'. 2021-01-09 Tak Kunihiro @@ -42066,10 +42066,10 @@ 2021-01-07 Andrea Corallo - * Add a type specifier test + Add a type specifier test - * test/lisp/emacs-lisp/comp-cstr-tests.el - (comp-cstr-typespec-tests-alist): Add testcase. + * test/lisp/emacs-lisp/comp-cstr-tests.el + (comp-cstr-typespec-tests-alist): Add testcase. 2021-01-07 Juri Linkov @@ -42211,10 +42211,10 @@ Reported and reduced by Mauricio Collares. - * lisp/emacs-lisp/comp.el (comp-final): Fix coding system for the - tmp file used to pass data the child processes. - * test/src/comp-tests.el (45603-1): New testcase - * test/src/comp-test-45603.el : New File. + * lisp/emacs-lisp/comp.el (comp-final): Fix coding system for the + tmp file used to pass data the child processes. + * test/src/comp-tests.el (45603-1): New testcase + * test/src/comp-test-45603.el : New File. 2021-01-06 Michael Heerdegen @@ -42507,21 +42507,21 @@ 2021-01-04 Andrea Corallo - * Fix a type specifier test + Fix a type specifier test - * test/lisp/emacs-lisp/comp-cstr-tests.el - (comp-cstr-typespec-tests-alist): Fix a testcase. + * test/lisp/emacs-lisp/comp-cstr-tests.el + (comp-cstr-typespec-tests-alist): Fix a testcase. 2021-01-04 Andrea Corallo Fix type inference for bug#45635 - * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1-no-mem): Fix - missing mixed pos neg handling. - * test/lisp/emacs-lisp/comp-cstr-tests.el - (comp-cstr-typespec-tests-alist): Add a test. - * test/src/comp-tests.el (45635): New testcase. - * test/src/comp-test-funcs.el (comp-test-45635-f): New function. + * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1-no-mem): Fix + missing mixed pos neg handling. + * test/lisp/emacs-lisp/comp-cstr-tests.el + (comp-cstr-typespec-tests-alist): Add a test. + * test/src/comp-tests.el (45635): New testcase. + * test/src/comp-test-funcs.el (comp-test-45635-f): New function. 2021-01-04 Philipp Stephani @@ -42912,12 +42912,12 @@ Fix `functionp' contraining (bug#45576) - * lisp/emacs-lisp/comp.el (comp-known-predicates) - (comp-known-predicates-h): New constants. - (comp-known-predicate-p, comp-pred-to-cstr): New functions. - * lisp/emacs-lisp/cl-macs.el (cl-deftype-satisfies): Don't define. - * test/src/comp-tests.el (comp-test-45576): New testcase. - * test/src/comp-test-funcs.el (comp-test-45576-f): New function. + * lisp/emacs-lisp/comp.el (comp-known-predicates) + (comp-known-predicates-h): New constants. + (comp-known-predicate-p, comp-pred-to-cstr): New functions. + * lisp/emacs-lisp/cl-macs.el (cl-deftype-satisfies): Don't define. + * test/src/comp-tests.el (comp-test-45576): New testcase. + * test/src/comp-test-funcs.el (comp-test-45576-f): New function. 2021-01-02 Eli Zaretskii @@ -42928,13 +42928,13 @@ 2021-01-02 Andrea Corallo - * Rename `dom' slot into `idom' in `comp-block' struct + Rename `dom' slot into `idom' in `comp-block' struct - * lisp/emacs-lisp/comp.el (comp-block): Rename dom `slot' into - `idom'. - (comp-clean-ssa, comp-compute-dominator-tree) - (comp-compute-dominator-frontiers, comp-dom-tree-walker) - (comp-remove-unreachable-blocks): Update accordingly. + * lisp/emacs-lisp/comp.el (comp-block): Rename dom `slot' into + `idom'. + (comp-clean-ssa, comp-compute-dominator-tree) + (comp-compute-dominator-frontiers, comp-dom-tree-walker) + (comp-remove-unreachable-blocks): Update accordingly. 2021-01-02 Eli Zaretskii @@ -43078,7 +43078,7 @@ Add `throw' to non returning functions - * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Add throw. + * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Add throw. 2021-01-01 Dmitry Gutov @@ -43093,18 +43093,18 @@ 2021-01-01 Andrea Corallo - * Clean unreachable block using dominance tree to handle circularities + Clean unreachable block using dominance tree to handle circularities With this commit unreachable basic blocks are pruned automatically by comp-ssa relying on dominance analysis. This solves the issue of unreachable cluster of basic blocks referencing each other. - * lisp/emacs-lisp/comp.el (comp-block-lap): New `no-ret' slot. - (comp-compute-dominator-tree): Update. - (comp-remove-unreachable-blocks): New functions. - (comp-ssa): Update to call `comp-remove-unreachable-blocks'. - (comp-clean-orphan-blocks): Delete. - (comp-rewrite-non-locals): Update and simplify. + * lisp/emacs-lisp/comp.el (comp-block-lap): New `no-ret' slot. + (comp-compute-dominator-tree): Update. + (comp-remove-unreachable-blocks): New functions. + (comp-ssa): Update to call `comp-remove-unreachable-blocks'. + (comp-clean-orphan-blocks): Delete. + (comp-rewrite-non-locals): Update and simplify. 2021-01-01 Andrea Corallo @@ -43117,24 +43117,24 @@ Introduce 'unreachable' as LIMPLE operater so we can handle correctly in the CFG functions throwing values or signaling errors. - * src/comp.c (retrive_block): Better error diagnostic. - (emit_limple_insn): Add `unreachable'. - (compile_function): Fix block iteration. - (syms_of_comp): Define 'Qunreachable'. - * lisp/emacs-lisp/comp.el (comp-block): New variable. - (comp-block-lap): Add `non-ret-insn' slot. - (comp-branch-op-p): New predicate. - (comp-limple-lock-keywords): Color `unreachable' as red. - (comp-compute-edges): Add `unreachable'. - (comp-fwprop-call): Store non returning function call. - (comp-fwprop*): Update. - (comp-clean-orphan-blocks, comp-rewrite-non-locals): New functions. - (comp-fwprop): Call `comp-rewrite-non-locals'. - * test/src/comp-tests.el (comp-tests-type-spec-tests): Add two - tests. - * test/src/comp-test-funcs.el (comp-test-non-local-1) - (comp-test-non-local-2, comp-test-non-local-3) - (comp-test-non-local-4): New functions. + * src/comp.c (retrive_block): Better error diagnostic. + (emit_limple_insn): Add `unreachable'. + (compile_function): Fix block iteration. + (syms_of_comp): Define 'Qunreachable'. + * lisp/emacs-lisp/comp.el (comp-block): New variable. + (comp-block-lap): Add `non-ret-insn' slot. + (comp-branch-op-p): New predicate. + (comp-limple-lock-keywords): Color `unreachable' as red. + (comp-compute-edges): Add `unreachable'. + (comp-fwprop-call): Store non returning function call. + (comp-fwprop*): Update. + (comp-clean-orphan-blocks, comp-rewrite-non-locals): New functions. + (comp-fwprop): Call `comp-rewrite-non-locals'. + * test/src/comp-tests.el (comp-tests-type-spec-tests): Add two + tests. + * test/src/comp-test-funcs.el (comp-test-non-local-1) + (comp-test-non-local-2, comp-test-non-local-3) + (comp-test-non-local-4): New functions. 2021-01-01 Eli Zaretskii @@ -43155,10 +43155,10 @@ 2021-01-01 Andrea Corallo - * Fix two predicates for missing negation handling + Fix two predicates for missing negation handling - * lisp/emacs-lisp/comp-cstr.el (comp-cstr-empty-p) - (comp-cstr-null-p): Fix missing negation handling. + * lisp/emacs-lisp/comp-cstr.el (comp-cstr-empty-p) + (comp-cstr-null-p): Fix missing negation handling. 2021-01-01 Andrea Corallo @@ -43166,10 +43166,10 @@ 2021-01-01 Andrea Corallo - * Add `comp-insert-insn' + Add `comp-insert-insn' - * lisp/emacs-lisp/comp.el (comp-insert-insn): New inline. - (comp-emit-call-cstr): Split logic and call `comp-insert-insn'. + * lisp/emacs-lisp/comp.el (comp-insert-insn): New inline. + (comp-emit-call-cstr): Split logic and call `comp-insert-insn'. 2021-01-01 Paul Eggert @@ -43526,17 +43526,17 @@ 2020-12-30 Andrea Corallo - * Order function types in aphabetical order + Order function types in aphabetical order - * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Reorder in - aphabetical order and comment. + * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Reorder in + aphabetical order and comment. 2020-12-30 Andrea Corallo - * Add more function type specifiers + Add more function type specifiers - * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Add more - type specifiers. + * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Add more + type specifiers. 2020-12-30 Mattias Engdegård @@ -43795,11 +43795,11 @@ Fix missing negation handling in a bunch of predicates - * lisp/emacs-lisp/comp.el (comp-mvar-fixnum-p) - (comp-mvar-symbol-p, comp-mvar-cons-p): Consider neg slot. - * test/src/comp-tests.el (comp-test-not-cons): New test. - * test/src/comp-test-funcs.el (comp-test-not-cons-f): New - function. + * lisp/emacs-lisp/comp.el (comp-mvar-fixnum-p) + (comp-mvar-symbol-p, comp-mvar-cons-p): Consider neg slot. + * test/src/comp-tests.el (comp-test-not-cons): New test. + * test/src/comp-test-funcs.el (comp-test-not-cons-f): New + function. 2020-12-29 Andrea Corallo @@ -43809,13 +43809,13 @@ Constrain mvars under compare and branch with built-in predicates - * lisp/emacs-lisp/comp.el (comp-emit-assume): Update. - (comp-known-predicate-p): New function. - (comp-add-cond-cstrs): Extend to pattern match predicate calls. - * lisp/emacs-lisp/comp-cstr.el (comp-cstr-null-p) - (comp-pred-to-cstr): New function. - * test/src/comp-tests.el (comp-tests-type-spec-tests): Add a - number of tests and fix comments. + * lisp/emacs-lisp/comp.el (comp-emit-assume): Update. + (comp-known-predicate-p): New function. + (comp-add-cond-cstrs): Extend to pattern match predicate calls. + * lisp/emacs-lisp/comp-cstr.el (comp-cstr-null-p) + (comp-pred-to-cstr): New function. + * test/src/comp-tests.el (comp-tests-type-spec-tests): Add a + number of tests and fix comments. 2020-12-29 Mattias Engdegård @@ -43858,10 +43858,10 @@ 2020-12-29 Andrea Corallo - * Define `cl-satisfies-deftype' mapping predicate -> type + Define `cl-satisfies-deftype' mapping predicate -> type - * lisp/emacs-lisp/cl-macs.el (cl-satisfies-deftype): Define symbol - property as reverse of `cl-deftype-satisfies'. + * lisp/emacs-lisp/cl-macs.el (cl-satisfies-deftype): Define symbol + property as reverse of `cl-deftype-satisfies'. 2020-12-29 Andrea Corallo @@ -44043,60 +44043,60 @@ Store function type and expose it with `subr-type' - * src/lisp.h (struct Lisp_Subr): Add 'type' field. - (SUBR_TYPE): New inline accessor. - * src/pdumper.c (dump_subr): Update for 'type' field. - * src/data.c (Fsubr_type): New primitive. - (syms_of_data): Update. - * src/comp.c (ABI_VERSION): Bump new ABI version. - (make_subr): Set type. - (Fcomp__register_lambda, Fcomp__register_subr) - (Fcomp__late_register_subr): Receive and pass subr type to - 'make_subr'. - * src/alloc.c (mark_object): Mark subr type. - * lisp/emacs-lisp/comp.el (comp-func): Change slot type into mvar. - (comp-emit-for-top-level, comp-emit-lambda-for-top-level): Pass - type mvar to subr register functions. - (comp-compute-function-type): Fix-up subr type mvars. - * test/src/comp-tests.el (comp-tests-check-ret-type-spec): Use - `subr-type'. + * src/lisp.h (struct Lisp_Subr): Add 'type' field. + (SUBR_TYPE): New inline accessor. + * src/pdumper.c (dump_subr): Update for 'type' field. + * src/data.c (Fsubr_type): New primitive. + (syms_of_data): Update. + * src/comp.c (ABI_VERSION): Bump new ABI version. + (make_subr): Set type. + (Fcomp__register_lambda, Fcomp__register_subr) + (Fcomp__late_register_subr): Receive and pass subr type to + 'make_subr'. + * src/alloc.c (mark_object): Mark subr type. + * lisp/emacs-lisp/comp.el (comp-func): Change slot type into mvar. + (comp-emit-for-top-level, comp-emit-lambda-for-top-level): Pass + type mvar to subr register functions. + (comp-compute-function-type): Fix-up subr type mvars. + * test/src/comp-tests.el (comp-tests-check-ret-type-spec): Use + `subr-type'. 2020-12-28 Andrea Corallo Reorder subr register function arguments to make some room - * src/comp.c (Fcomp__register_lambda, Fcomp__register_subr) - (Fcomp__late_register_subr): Use a rest arg to pass 'doc_idx' and - 'intspec' parameters. - * lisp/emacs-lisp/comp.el (comp-emit-for-top-level) - (comp-emit-lambda-for-top-level): Update. + * src/comp.c (Fcomp__register_lambda, Fcomp__register_subr) + (Fcomp__late_register_subr): Use a rest arg to pass 'doc_idx' and + 'intspec' parameters. + * lisp/emacs-lisp/comp.el (comp-emit-for-top-level) + (comp-emit-lambda-for-top-level): Update. 2020-12-28 Andrea Corallo Propagate function calls also when hiddend under funcall - * lisp/emacs-lisp/comp.el (comp-fwprop-call): Propagate functions - also when called under `funcall'. - * test/src/comp-tests.el (comp-tests-type-spec-tests): Add a test. + * lisp/emacs-lisp/comp.el (comp-fwprop-call): Propagate functions + also when called under `funcall'. + * test/src/comp-tests.el (comp-tests-type-spec-tests): Add a test. 2020-12-28 Andrea Corallo Compute function type for native compiled functions - * lisp/emacs-lisp/comp.el (comp-func): `type' rename from - `ret-type-specifier'. - (comp-args-to-lambda-list): New function. - (comp-compute-function-type): New function from - `comp-ret-type-spec'. - (comp-final): Update. - * test/src/comp-tests.el (comp-tests-check-ret-type-spec): Update. + * lisp/emacs-lisp/comp.el (comp-func): `type' rename from + `ret-type-specifier'. + (comp-args-to-lambda-list): New function. + (comp-compute-function-type): New function from + `comp-ret-type-spec'. + (comp-final): Update. + * test/src/comp-tests.el (comp-tests-check-ret-type-spec): Update. 2020-12-28 Andrea Corallo - * Improve some slot type into comp.el + Improve some slot type into comp.el - * lisp/emacs-lisp/comp.el (comp-args-base, comp-args) - (comp-nargs, comp-func): Fix the type of some slots. + * lisp/emacs-lisp/comp.el (comp-args-base, comp-args) + (comp-nargs, comp-func): Fix the type of some slots. 2020-12-28 Stefan Kangas @@ -44277,22 +44277,22 @@ Add 1+ 1- integer range propagation support - * lisp/emacs-lisp/comp-cstr.el (comp-cstr-one): New special var. - * lisp/emacs-lisp/comp.el (comp-fwprop-call): Propagate integer - ranges on +1 -1. - * test/src/comp-tests.el (comp-tests-type-spec-tests): Add two tests. + * lisp/emacs-lisp/comp-cstr.el (comp-cstr-one): New special var. + * lisp/emacs-lisp/comp.el (comp-fwprop-call): Propagate integer + ranges on +1 -1. + * test/src/comp-tests.el (comp-tests-type-spec-tests): Add two tests. 2020-12-27 Andrea Corallo Add sum/subtraction integer range propagation support - * lisp/emacs-lisp/comp-cstr.el (comp-range-+, comp-range--): New - functions. - (comp-cstr-set-range-for-arithm): New macro. - (comp-cstr-add-2, comp-cstr-sub-2, comp-cstr-add, comp-cstr-sub): - New function. - * lisp/emacs-lisp/comp.el (comp-fwprop-call): Wire-up + - integer - range propagation. + * lisp/emacs-lisp/comp-cstr.el (comp-range-+, comp-range--): New + functions. + (comp-cstr-set-range-for-arithm): New macro. + (comp-cstr-add-2, comp-cstr-sub-2, comp-cstr-add, comp-cstr-sub): + New function. + * lisp/emacs-lisp/comp.el (comp-fwprop-call): Wire-up + - integer + range propagation. 2020-12-27 Andrea Corallo @@ -44300,18 +44300,18 @@ 2020-12-27 Andrea Corallo - * Add comp-cstr-greatest-in-range comp-cstr-smallest-in-range + Add comp-cstr-greatest-in-range comp-cstr-smallest-in-range - * lisp/emacs-lisp/comp-cstr.el (comp-cstr-smallest-in-range) - (comp-cstr-greatest-in-range): New function. - (comp-cstr->, comp-cstr->=, comp-cstr-<, comp-cstr-<=): Make use of. + * lisp/emacs-lisp/comp-cstr.el (comp-cstr-smallest-in-range) + (comp-cstr-greatest-in-range): New function. + (comp-cstr->, comp-cstr->=, comp-cstr-<, comp-cstr-<=): Make use of. 2020-12-27 Andrea Corallo - * Don't require trailing backslashes in `comp-eln-load-path' (bug#45462) + Don't require trailing backslashes in `comp-eln-load-path' (bug#45462) - * src/comp.c (Fcomp_el_to_eln_filename): Don't require - trailing backslashes in comp-eln-load-path. + * src/comp.c (Fcomp_el_to_eln_filename): Don't require + trailing backslashes in comp-eln-load-path. 2020-12-27 Andrea Corallo @@ -44389,18 +44389,18 @@ 2020-12-26 Andrea Corallo - * Fix `byte-compile-file' for native compilation (bug#45442) + Fix `byte-compile-file' for native compilation (bug#45442) - * lisp/emacs-lisp/bytecomp.el (byte-compile-file): Fix logic for - native compilation. + * lisp/emacs-lisp/bytecomp.el (byte-compile-file): Fix logic for + native compilation. 2020-12-26 Andrea Corallo Fix missing float handling into `comp-cstr-set-cmp-range' - * lisp/emacs-lisp/comp-cstr.el (comp-cstr-set-cmp-range): Add - float handling. - * test/src/comp-tests.el (comp-tests-type-spec-tests): Update results. + * lisp/emacs-lisp/comp-cstr.el (comp-cstr-set-cmp-range): Add + float handling. + * test/src/comp-tests.el (comp-tests-type-spec-tests): Update results. 2020-12-26 Stefan Monnier @@ -44440,10 +44440,10 @@ 2020-12-26 Andrea Corallo - * Remove unnecessary lhs rename in `comp-ssa-rename-insn' + Remove unnecessary lhs rename in `comp-ssa-rename-insn' - * lisp/emacs-lisp/comp.el (comp-ssa-rename-insn): No point to - rename lhs as it's being replaced. + * lisp/emacs-lisp/comp.el (comp-ssa-rename-insn): No point to + rename lhs as it's being replaced. 2020-12-26 Andrea Corallo @@ -44461,20 +44461,20 @@ Enable integer range narrowing under compare and branch - * lisp/emacs-lisp/comp-cstr.el (comp-cstr-set-cmp-range) - (comp-cstr->, comp-cstr->=, comp-cstr-<, comp-cstr-<=): New - functions. - * lisp/emacs-lisp/comp.el (comp-equality-fun-p) - (comp-range-cmp-fun-p): New functions. - (comp-collect-rhs): Use `comp-assign-op-p' in place of - `comp-set-op-p'. - (comp-negate-range-cmp-fun, comp-reverse-cmp-fun): New functions. - (comp-emit-assume): Rework to be able to emit also comparision - assumption. - (comp-add-cond-cstrs-simple): Update for new `comp-emit-assume'. - (comp-add-cond-cstrs-simple): Update to emit range assumption. - (comp-fwprop-insn): Execute range assumptions. - * test/src/comp-tests.el (comp-tests-type-spec-tests): Add tests. + * lisp/emacs-lisp/comp-cstr.el (comp-cstr-set-cmp-range) + (comp-cstr->, comp-cstr->=, comp-cstr-<, comp-cstr-<=): New + functions. + * lisp/emacs-lisp/comp.el (comp-equality-fun-p) + (comp-range-cmp-fun-p): New functions. + (comp-collect-rhs): Use `comp-assign-op-p' in place of + `comp-set-op-p'. + (comp-negate-range-cmp-fun, comp-reverse-cmp-fun): New functions. + (comp-emit-assume): Rework to be able to emit also comparision + assumption. + (comp-add-cond-cstrs-simple): Update for new `comp-emit-assume'. + (comp-add-cond-cstrs-simple): Update to emit range assumption. + (comp-fwprop-insn): Execute range assumptions. + * test/src/comp-tests.el (comp-tests-type-spec-tests): Add tests. 2020-12-26 emacs-f (tiny change) @@ -44734,14 +44734,14 @@ 2020-12-25 Andrea Corallo - * Don't emit byte op-code annotations in LIMPLE to optimize for compile-time + Don't emit byte op-code annotations in LIMPLE to optimize for compile-time Saves 10~15% in bootstrap time. - * lisp/emacs-lisp/comp.el (comp-op-case): Don't emit op-code - annotaitons. - (comp-limplify-lap-inst, comp-add-cond-cstrs-simple) - (comp-add-cond-cstrs, comp-tco-func): Update accordingly. + * lisp/emacs-lisp/comp.el (comp-op-case): Don't emit op-code + annotaitons. + (comp-limplify-lap-inst, comp-add-cond-cstrs-simple) + (comp-add-cond-cstrs, comp-tco-func): Update accordingly. 2020-12-25 Eli Zaretskii @@ -44829,53 +44829,53 @@ 2020-12-24 Andrea Corallo - * Memoize `comp-subtype-p' + Memoize `comp-subtype-p' - * lisp/emacs-lisp/comp-cstr.el (comp-subtype-p): Memoize. - (comp-cstr-ctxt): Add `subtype-p-mem' slot. + * lisp/emacs-lisp/comp-cstr.el (comp-subtype-p): Memoize. + (comp-cstr-ctxt): Add `subtype-p-mem' slot. 2020-12-24 Andrea Corallo - * Constrain only mvars that are actually used + Constrain only mvars that are actually used - * lisp/emacs-lisp/comp.el (comp-mvar-used-p, comp-collect-mvars) - (comp-collect-rhs): New functions. - (comp-add-cond-cstrs-simple, comp-add-cond-cstrs): Update logic. - (comp-add-cstrs): Call `comp-collect-rhs' before doing anything - else. + * lisp/emacs-lisp/comp.el (comp-mvar-used-p, comp-collect-mvars) + (comp-collect-rhs): New functions. + (comp-add-cond-cstrs-simple, comp-add-cond-cstrs): Update logic. + (comp-add-cstrs): Call `comp-collect-rhs' before doing anything + else. 2020-12-24 Andrea Corallo - * Use `comp-assign-op-p' into dead code elimination pass + Use `comp-assign-op-p' into dead code elimination pass - * lisp/emacs-lisp/comp.el (comp-dead-assignments-func): Use - `comp-assign-op-p' in place of `comp-set-op-p'. + * lisp/emacs-lisp/comp.el (comp-dead-assignments-func): Use + `comp-assign-op-p' in place of `comp-set-op-p'. 2020-12-24 Andrea Corallo - * Fix logic for constraining block with multiple predecessors + Fix logic for constraining block with multiple predecessors - * lisp/emacs-lisp/comp.el (comp-limple-lock-keywords) - (comp-add-cond-cstrs-target-block): Logic update. + * lisp/emacs-lisp/comp.el (comp-limple-lock-keywords) + (comp-add-cond-cstrs-target-block): Logic update. 2020-12-24 Andrea Corallo Symplify (not t) => nil and (not nil) => t - * lisp/emacs-lisp/comp-cstr.el (comp-cstr-negation): Symplify (not - t) => nil and (not nil) => t. - * test/lisp/emacs-lisp/comp-cstr-tests.el - (comp-cstr-typespec-tests-alist): Add two tests. + * lisp/emacs-lisp/comp-cstr.el (comp-cstr-negation): Symplify (not + t) => nil and (not nil) => t. + * test/lisp/emacs-lisp/comp-cstr-tests.el + (comp-cstr-typespec-tests-alist): Add two tests. 2020-12-24 Andrea Corallo Extend cstrs pass to match `unless' like code - * lisp/emacs-lisp/comp.el (comp-emit-assume): Add assertion. - (comp-add-new-block-between): Fix two typos. - (comp-add-cond-cstrs-target-block): Fix typo. - (comp-add-cond-cstrs-simple): Logic update. - * test/src/comp-tests.el (comp-tests-type-spec-tests): Add a test. + * lisp/emacs-lisp/comp.el (comp-emit-assume): Add assertion. + (comp-add-new-block-between): Fix two typos. + (comp-add-cond-cstrs-target-block): Fix typo. + (comp-add-cond-cstrs-simple): Logic update. + * test/src/comp-tests.el (comp-tests-type-spec-tests): Add a test. 2020-12-24 Andrea Corallo @@ -44885,11 +44885,11 @@ Extend cstrs pass to match `when' like code - * lisp/emacs-lisp/comp.el (comp-emit-assume): Better parameter names. - (comp-add-cond-cstrs-simple): New function. - (comp-add-cond-cstrs): Rename assume-target -> block-target. - (comp-add-cstrs): Call `comp-add-cond-cstrs-simple'. - * test/src/comp-tests.el (comp-tests-type-spec-tests): Add test. + * lisp/emacs-lisp/comp.el (comp-emit-assume): Better parameter names. + (comp-add-cond-cstrs-simple): New function. + (comp-add-cond-cstrs): Rename assume-target -> block-target. + (comp-add-cstrs): Call `comp-add-cond-cstrs-simple'. + * test/src/comp-tests.el (comp-tests-type-spec-tests): Add test. 2020-12-24 Philipp Stephani @@ -44917,10 +44917,10 @@ Invert basic block argument order in LIMPLE cond-jump - * lisp/emacs-lisp/comp.el (comp-emit-cond-jump) - (comp-emit-switch, comp-emit-narg-prologue, comp-add-cond-cstrs): - Invert basic block argument order in LIMPLE cond-jump. - * src/comp.c (emit_limple_insn): Likewise. + * lisp/emacs-lisp/comp.el (comp-emit-cond-jump) + (comp-emit-switch, comp-emit-narg-prologue, comp-add-cond-cstrs): + Invert basic block argument order in LIMPLE cond-jump. + * src/comp.c (emit_limple_insn): Likewise. 2020-12-24 Alan Mackenzie @@ -45036,23 +45036,23 @@ Negate only values while constraining variables (bug#45376) - * lisp/emacs-lisp/comp-cstr.el (comp-cstr-value-negation): New - function. - * lisp/emacs-lisp/comp.el (comp-fwprop-insn): Use - `comp-cstr-value-negation'. - * test/src/comp-test-funcs.el (comp-test-45376-1-f): Rename. - (comp-test-45376-2-f): New funcion. - * test/src/comp-tests.el (bug-45376-1): Rename test. - (bug-45376-2): Add test. + * lisp/emacs-lisp/comp-cstr.el (comp-cstr-value-negation): New + function. + * lisp/emacs-lisp/comp.el (comp-fwprop-insn): Use + `comp-cstr-value-negation'. + * test/src/comp-test-funcs.el (comp-test-45376-1-f): Rename. + (comp-test-45376-2-f): New funcion. + * test/src/comp-tests.el (bug-45376-1): Rename test. + (bug-45376-2): Add test. 2020-12-23 Andrea Corallo - * Fix non range cstr union operation + Fix non range cstr union operation - * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-homogeneous): Add - range parameter and handle the non range case. - (comp-cstr-union-1-no-mem, comp-cstr-intersection-no-mem): Update - `comp-cstr-union-homogeneous' call sites. + * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-homogeneous): Add + range parameter and handle the non range case. + (comp-cstr-union-1-no-mem, comp-cstr-intersection-no-mem): Update + `comp-cstr-union-homogeneous' call sites. 2020-12-23 Philipp Stephani @@ -45074,10 +45074,10 @@ 2020-12-23 Andrea Corallo - * Follow cstr basic blocks to perform latch recognition + Follow cstr basic blocks to perform latch recognition - * lisp/emacs-lisp/comp.el (comp-fwprop-insn): Fix latch - recognition. + * lisp/emacs-lisp/comp.el (comp-fwprop-insn): Fix latch + recognition. 2020-12-23 Philipp Stephani @@ -45109,9 +45109,9 @@ Make input constraints into memoization hash immutable (bug#45376) - * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1) - (comp-cstr-intersection): Copy input before soting it into the - memoization hash table. + * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1) + (comp-cstr-intersection): Copy input before soting it into the + memoization hash table. 2020-12-23 Andrea Corallo @@ -45196,9 +45196,9 @@ Liāu, Kiong-Gē 廖宮毅 - * src/comp.c (eln_load_path_final_clean_up): Fix argument order. - * nt/mingw-cfg.site (ac_cv_func_strsignal): Force - `ac_cv_func_strsignal' to no. + * src/comp.c (eln_load_path_final_clean_up): Fix argument order. + * nt/mingw-cfg.site (ac_cv_func_strsignal): Force + `ac_cv_func_strsignal' to no. 2020-12-22 Alan Mackenzie @@ -45340,151 +45340,151 @@ 2020-12-21 Andrea Corallo - * Fix a test in auth-source-tests.el + Fix a test in auth-source-tests.el - * test/lisp/auth-source-tests.el - (auth-source-test-secrets-create-secret): Redefine `read-string' - respecting the original number of arguments. + * test/lisp/auth-source-tests.el + (auth-source-test-secrets-create-secret): Redefine `read-string' + respecting the original number of arguments. 2020-12-21 Andrea Corallo - * Fix a bunch of known type specifiers + Fix a bunch of known type specifiers - * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Fixes for: - =, string-search, substring. + * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Fixes for: + =, string-search, substring. 2020-12-21 Andrea Corallo Fix `comp-add-call-cstr' and add a test - * lisp/emacs-lisp/comp.el (comp-add-call-cstr): Fix it. - * test/src/comp-tests.el (assume-in-loop-1): New test. - * test/src/comp-test-funcs.el (comp-test-assume-in-loop-1-f): New - function. + * lisp/emacs-lisp/comp.el (comp-add-call-cstr): Fix it. + * test/src/comp-tests.el (assume-in-loop-1): New test. + * test/src/comp-test-funcs.el (comp-test-assume-in-loop-1-f): New + function. 2020-12-21 Andrea Corallo Fix value type inference for doubly negate constraints - * lisp/emacs-lisp/comp.el (comp-fwprop-insn): Do not propagate in - case of double negation. - * test/src/comp-test-funcs.el (comp-test-assume-double-neg-f): - New function. - * test/src/comp-tests.el (assume-double-neg): New test. + * lisp/emacs-lisp/comp.el (comp-fwprop-insn): Do not propagate in + case of double negation. + * test/src/comp-test-funcs.el (comp-test-assume-double-neg-f): + New function. + * test/src/comp-tests.el (assume-double-neg): New test. 2020-12-21 Andrea Corallo Fix native compiler tests when they are bytecompiled - * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-test-ts) - (comp-cstr-typespec-test, comp-cstr-typespec-tests-alist): Eval - also at compile time. - * test/src/comp-tests.el (comp-tests-type-spec-tests) - (comp-tests-define-type-spec-test): Likewise. + * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-test-ts) + (comp-cstr-typespec-test, comp-cstr-typespec-tests-alist): Eval + also at compile time. + * test/src/comp-tests.el (comp-tests-type-spec-tests) + (comp-tests-define-type-spec-test): Likewise. 2020-12-21 Andrea Corallo Simplify correctly (or (integer 1 1) (not (integer 1 1))) as t - * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1-no-mem): Logic - update. - * test/lisp/emacs-lisp/comp-cstr-tests.el - (comp-cstr-typespec-tests-alist): Add a test. + * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1-no-mem): Logic + update. + * test/lisp/emacs-lisp/comp-cstr-tests.el + (comp-cstr-typespec-tests-alist): Add a test. 2020-12-21 Andrea Corallo - * Guarantee fwprop convergence and termination + Guarantee fwprop convergence and termination - * lisp/emacs-lisp/comp.el (comp-emit-call-cstr): Have new-mvar as - LHS *and* RHS when constraining in and to ensure monotonicity and - fwprop convergence. - (comp-fwprop): Raise a warning for debug reasons in case fwprop - does not converge within 100 iterations. + * lisp/emacs-lisp/comp.el (comp-emit-call-cstr): Have new-mvar as + LHS *and* RHS when constraining in and to ensure monotonicity and + fwprop convergence. + (comp-fwprop): Raise a warning for debug reasons in case fwprop + does not converge within 100 iterations. 2020-12-21 Andrea Corallo - * Allow for overlapping src and dst in cstr set operations + Allow for overlapping src and dst in cstr set operations - * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1-no-mem) - (comp-cstr-union-1, comp-cstr-intersection-no-mem) - (comp-cstr-intersection): Logic update. + * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1-no-mem) + (comp-cstr-union-1, comp-cstr-intersection-no-mem) + (comp-cstr-intersection): Logic update. 2020-12-21 Andrea Corallo Symplify type specifier (not t) as nil - * lisp/emacs-lisp/comp-cstr.el (comp-cstr-intersection-no-mem): - Add logic. - * test/lisp/emacs-lisp/comp-cstr-tests.el - (comp-cstr-typespec-tests-alist): Add two tests. + * lisp/emacs-lisp/comp-cstr.el (comp-cstr-intersection-no-mem): + Add logic. + * test/lisp/emacs-lisp/comp-cstr-tests.el + (comp-cstr-typespec-tests-alist): Add two tests. 2020-12-21 Andrea Corallo Enhance type inference constraining function arguments - * lisp/emacs-lisp/comp.el: Add some commentary. - (comp-cond-cstrs-target-mvar): Rename and update docstring. - (comp-add-cond-cstrs): Update to use - `comp-cond-cstrs-target-mvar'. - (comp-emit-call-cstr, comp-lambda-list-gen, comp-add-call-cstr): - New functions. - (comp-add-cstrs): Call `comp-add-call-cstr'. - * test/src/comp-tests.el (comp-tests-type-spec-tests): Update two - type specifier tests. + * lisp/emacs-lisp/comp.el: Add some commentary. + (comp-cond-cstrs-target-mvar): Rename and update docstring. + (comp-add-cond-cstrs): Update to use + `comp-cond-cstrs-target-mvar'. + (comp-emit-call-cstr, comp-lambda-list-gen, comp-add-call-cstr): + New functions. + (comp-add-cstrs): Call `comp-add-call-cstr'. + * test/src/comp-tests.el (comp-tests-type-spec-tests): Update two + type specifier tests. 2020-12-21 Andrea Corallo - * Allow for modifying insn-cell inside `comp-loop-insn-in-block' + Allow for modifying insn-cell inside `comp-loop-insn-in-block' - * lisp/emacs-lisp/comp.el (comp-loop-insn-in-block): Update. + * lisp/emacs-lisp/comp.el (comp-loop-insn-in-block): Update. 2020-12-21 Andrea Corallo - * Rename comp-cond-cstr into comp-add-cstrs + Rename comp-cond-cstr into comp-add-cstrs - * lisp/emacs-lisp/comp.el (comp-add-cond-cstrs-target-mvar) - (comp-add-cond-cstrs, comp-add-cstrs): Rename comp-cond-cstr - -> comp-add-cstrs. + * lisp/emacs-lisp/comp.el (comp-add-cond-cstrs-target-mvar) + (comp-add-cond-cstrs, comp-add-cstrs): Rename comp-cond-cstr + -> comp-add-cstrs. 2020-12-21 Andrea Corallo - * Two minors in comp.el + Two minors in comp.el - * lisp/emacs-lisp/comp.el (comp-known-func-cstr-h) - (comp-ret-type-spec): Style. + * lisp/emacs-lisp/comp.el (comp-known-func-cstr-h) + (comp-ret-type-spec): Style. 2020-12-21 Andrea Corallo - * Add a type specifier test to comp-cstr-tests.el + Add a type specifier test to comp-cstr-tests.el - * test/lisp/emacs-lisp/comp-cstr-tests.el - (comp-cstr-typespec-tests-alist): Add a test. + * test/lisp/emacs-lisp/comp-cstr-tests.el + (comp-cstr-typespec-tests-alist): Add a test. 2020-12-21 Andrea Corallo - * Enumerate and split type specifier tests in comp-tests.el to ease debug + Enumerate and split type specifier tests in comp-tests.el to ease debug - * test/src/comp-tests.el (comp-tests-type-spec-tests): Enumerate. - (comp-tests-define-type-spec-test): New function. - (comp-tests-define-type-spec-tests): New macro to expand tests. + * test/src/comp-tests.el (comp-tests-type-spec-tests): Enumerate. + (comp-tests-define-type-spec-test): New function. + (comp-tests-define-type-spec-tests): New macro to expand tests. 2020-12-21 Andrea Corallo - * Improve constraint simplification logic in comp-cstr.el - - * lisp/emacs-lisp/comp-cstr.el (with-comp-cstr-accessors): - Simplify. - (comp-cstr-empty-p): New Funchion. - (comp-split-pos-neg): Minor. - (comp-normalize-typeset): Logic update. - (comp-union-typesets): Minor. - (comp-intersect-two-typesets): New functio. - (comp-intersect-typesets): Logic update. - (comp-range-union, comp-range-intersection): Minor. - (comp-cstr-union-homogeneous, comp-cstr-union-1-no-mem) - (comp-cstr-intersection-homogeneous) - (comp-cstr-intersection-no-mem, comp-cstr-negation) - (comp-type-spec-to-cstr, comp-cstr-to-type-spec): Logic update. + Improve constraint simplification logic in comp-cstr.el + + * lisp/emacs-lisp/comp-cstr.el (with-comp-cstr-accessors): + Simplify. + (comp-cstr-empty-p): New Funchion. + (comp-split-pos-neg): Minor. + (comp-normalize-typeset): Logic update. + (comp-union-typesets): Minor. + (comp-intersect-two-typesets): New functio. + (comp-intersect-typesets): Logic update. + (comp-range-union, comp-range-intersection): Minor. + (comp-cstr-union-homogeneous, comp-cstr-union-1-no-mem) + (comp-cstr-intersection-homogeneous) + (comp-cstr-intersection-no-mem, comp-cstr-negation) + (comp-type-spec-to-cstr, comp-cstr-to-type-spec): Logic update. * lisp/emacs-lisp/comp-cstr.el (with-comp-cstr-accessors): Simplify. @@ -45506,23 +45506,23 @@ 2020-12-21 Andrea Corallo - * Fix a number of type specifier simplification tests + Fix a number of type specifier simplification tests - * test/lisp/emacs-lisp/comp-cstr-tests.el - (comp-cstr-typespec-tests-alist): Fix a number of tests. + * test/lisp/emacs-lisp/comp-cstr-tests.el + (comp-cstr-typespec-tests-alist): Fix a number of tests. 2020-12-21 Andrea Corallo - * Improve comp-fwprop pass + Improve comp-fwprop pass Wire-up comp-cstr.el routines in fwprop and constraint mvars also on the else side of branches. - * lisp/emacs-lisp/comp.el (comp-emit-assume) - (comp-cond-cstr-target-mvar, comp-cond-cstr-func) - (comp-fwprop-insn): Logic update. - (comp-mvar-value-vld-p, comp-mvar-propagate, comp-fwprop-call): - Handle neg slot. + * lisp/emacs-lisp/comp.el (comp-emit-assume) + (comp-cond-cstr-target-mvar, comp-cond-cstr-func) + (comp-fwprop-insn): Logic update. + (comp-mvar-value-vld-p, comp-mvar-propagate, comp-fwprop-call): + Handle neg slot. 2020-12-21 Lars Ingebrigtsen @@ -45551,13 +45551,13 @@ 2020-12-21 Andrea Corallo - * Add mvar pretty print support when dumping LIMPLE + Add mvar pretty print support when dumping LIMPLE - * lisp/emacs-lisp/comp.el (comp-prettyformat-mvar) - (comp-prettyformat-insn): New function. - (comp-log-func): Update to use `comp-prettyformat-insn'. - (comp-finalize-phis): Change LIMPLE phi format to ease - `comp-prettyformat-insn' destructuring. + * lisp/emacs-lisp/comp.el (comp-prettyformat-mvar) + (comp-prettyformat-insn): New function. + (comp-log-func): Update to use `comp-prettyformat-insn'. + (comp-finalize-phis): Change LIMPLE phi format to ease + `comp-prettyformat-insn' destructuring. 2020-12-21 Michael Albinus @@ -45586,11 +45586,11 @@ Fix Windows build link-time zlib error (bug#45303) - * src/lisp.h (md5_gz_stream): Declare. - * src/comp.c (accumulate_and_process_md5) - (final_process_md5, md5_gz_stream): Remove. - * src/decompress.c (accumulate_and_process_md5) - (final_process_md5, md5_gz_stream): Move from comp.c. + * src/lisp.h (md5_gz_stream): Declare. + * src/comp.c (accumulate_and_process_md5) + (final_process_md5, md5_gz_stream): Remove. + * src/decompress.c (accumulate_and_process_md5) + (final_process_md5, md5_gz_stream): Move from comp.c. 2020-12-21 Andrea Corallo @@ -45668,10 +45668,10 @@ Have native compiler always preserve multibyte strings (bug#45342) - * lisp/emacs-lisp/comp.el (comp-final): Escape multibyte string - when offloading compilation to child process. - * test/src/comp-test-funcs.el (comp-test-45342-f): New function - * test/src/comp-tests.el (bug-45342): New test + * lisp/emacs-lisp/comp.el (comp-final): Escape multibyte string + when offloading compilation to child process. + * test/src/comp-test-funcs.el (comp-test-45342-f): New function + * test/src/comp-tests.el (bug-45342): New test 2020-12-20 Juri Linkov @@ -45682,9 +45682,9 @@ 2020-12-20 Andrea Corallo - * Fix missing 'gcc_jit_type_get_const' macro definition (bug#45303). + Fix missing 'gcc_jit_type_get_const' macro definition (bug#45303). - * src/comp.c (gcc_jit_type_get_pointer): Define macro. + * src/comp.c (gcc_jit_type_get_pointer): Define macro. 2020-12-20 Michael Albinus @@ -45817,11 +45817,11 @@ Add 'internal_condition_case_5' (bug#45303). - * src/lisp.h (internal_condition_case_4) - (internal_condition_case_5): Declare. - * src/eval.c (internal_condition_case_5): New function. - * src/comp.c (eln_load_path_final_clean_up): Use - 'internal_condition_case_5'. + * src/lisp.h (internal_condition_case_4) + (internal_condition_case_5): Declare. + * src/eval.c (internal_condition_case_5): New function. + * src/comp.c (eln_load_path_final_clean_up): Use + 'internal_condition_case_5'. 2020-12-19 Juri Linkov @@ -45840,10 +45840,10 @@ 2020-12-19 Andrea Corallo - * Add 'gcc_jit_type_get_const' to Windows dynamic load machinery (bug#45303). + Add 'gcc_jit_type_get_const' to Windows dynamic load machinery (bug#45303). - * src/comp.c: Add 'gcc_jit_type_get_const' to windows dynamic - load machinery. + * src/comp.c: Add 'gcc_jit_type_get_const' to windows dynamic + load machinery. 2020-12-19 Stefan Kangas @@ -46031,28 +46031,28 @@ 2020-12-19 Andrea Corallo - * Clean-up 'internal_condition_case_4' orphan declaration (bug#45303). + Clean-up 'internal_condition_case_4' orphan declaration (bug#45303). - * src/lisp.h (internal_condition_case_4): Declaration remove. + * src/lisp.h (internal_condition_case_4): Declaration remove. 2020-12-19 Andrea Corallo - * Move diagnostic pragmas out of namespace-scope (bug#45303). + Move diagnostic pragmas out of namespace-scope (bug#45303). Pragmas in GCC don't work reliably within function: - * src/comp.c (emit_static_object) - (Fcomp_native_driver_options_effective_p) - (Fcomp_libgccjit_version): Move pragmas out of name-scope. + * src/comp.c (emit_static_object) + (Fcomp_native_driver_options_effective_p) + (Fcomp_libgccjit_version): Move pragmas out of name-scope. 2020-12-19 Andrea Corallo Fix Windows libgccjit library name (bug#45303). - * lisp/term/w32-win.el (dynamic-library-alist): Fix Windows - libgccjit library name. - * src/emacs.c (syms_of_emacs): Likewise. + * lisp/term/w32-win.el (dynamic-library-alist): Fix Windows + libgccjit library name. + * src/emacs.c (syms_of_emacs): Likewise. 2020-12-19 Roland Winkler @@ -46169,7 +46169,7 @@ 2020-12-17 Andrea Corallo - * Makefile.in (w32locallisppath): Add PATH_REL_LOADSEARCH (bug#45303). + Makefile.in (w32locallisppath): Add PATH_REL_LOADSEARCH (bug#45303). * nt/epaths.nt (PATH_REL_LOADSEARCH): Define macro (bug#45303). @@ -46960,11 +46960,11 @@ 2020-12-13 Andrea Corallo - * Fix `memory-report' for '--without-x' builds + Fix `memory-report' for '--without-x' builds - * lisp/emacs-lisp/memory-report.el - (memory-report--image-cache): Don't call `image-cache-size' if - unbound. + * lisp/emacs-lisp/memory-report.el + (memory-report--image-cache): Don't call `image-cache-size' if + unbound. 2020-12-13 Dmitry Gutov @@ -47002,53 +47002,53 @@ 2020-12-13 Andrea Corallo - * Allow for adding constraints targetting blocks with multiple predecessors + Allow for adding constraints targetting blocks with multiple predecessors This commit remove the limitaiton we had not being able to add constraints derived from conditional branches to basic blocks with multiple predecessors. When this condition is verified we add a new dedicated basic block to hold the constraints. - * lisp/emacs-lisp/comp.el (comp-block, comp-edge): Better slot - type specifiers. - (comp-block-cstr): New struct specializing `comp-block'. - (make-comp-edge): New function. - (comp-func): Better test function + doc for `blocks' slot. - (comp-limple-lock-keywords): Update possible basic block names. - (comp-emit-assume): Recive directly the block instead of its name. - (comp-add-new-block-beetween): New function. - (comp-cond-cstr-target-block): Logic update and use - `comp-add-new-block-beetween'. - (comp-cond-cstr-func): Make use of the latter. - (comp-compute-edges): Make use of `make-comp-edge'. + * lisp/emacs-lisp/comp.el (comp-block, comp-edge): Better slot + type specifiers. + (comp-block-cstr): New struct specializing `comp-block'. + (make-comp-edge): New function. + (comp-func): Better test function + doc for `blocks' slot. + (comp-limple-lock-keywords): Update possible basic block names. + (comp-emit-assume): Recive directly the block instead of its name. + (comp-add-new-block-beetween): New function. + (comp-cond-cstr-target-block): Logic update and use + `comp-add-new-block-beetween'. + (comp-cond-cstr-func): Make use of the latter. + (comp-compute-edges): Make use of `make-comp-edge'. 2020-12-13 Andrea Corallo - * Rename comp-cond-rw -> comp-cond-cstr + Rename comp-cond-rw -> comp-cond-cstr - * lisp/emacs-lisp/comp.el (comp-passes) - (comp-cond-cstr-target-slot, comp-cond-cstr-func) - (comp-cond-cstr): Rename pass from cond-rw to cond-cstr. + * lisp/emacs-lisp/comp.el (comp-passes) + (comp-cond-cstr-target-slot, comp-cond-cstr-func) + (comp-cond-cstr): Rename pass from cond-rw to cond-cstr. 2020-12-13 Andrea Corallo - * Memoize `comp-cstr-intersection' + Memoize `comp-cstr-intersection' - * lisp/emacs-lisp/comp-cstr.el (comp-cstr-ctxt): Add new slot - `intersection-mem'. - (comp-cstr-intersection-homogeneous): Fix non local exit target. - (comp-cstr-intersection-no-mem): Rename from - `comp-cstr-intersection'. - (comp-cstr-intersection): New function. + * lisp/emacs-lisp/comp-cstr.el (comp-cstr-ctxt): Add new slot + `intersection-mem'. + (comp-cstr-intersection-homogeneous): Fix non local exit target. + (comp-cstr-intersection-no-mem): Rename from + `comp-cstr-intersection'. + (comp-cstr-intersection): New function. 2020-12-13 Andrea Corallo - * Add initial negated non-negegated intersection support + Add initial negated non-negegated intersection support - * lisp/emacs-lisp/comp-cstr.el (comp-range-intersection): Cosmetic. - (comp-cstr-intersection-homogeneous): Rename from - `comp-cstr-intersection'. - (comp-cstr-intersection): New function. + * lisp/emacs-lisp/comp-cstr.el (comp-range-intersection): Cosmetic. + (comp-cstr-intersection-homogeneous): Rename from + `comp-cstr-intersection'. + (comp-cstr-intersection): New function. 2020-12-13 Alan Third @@ -47187,38 +47187,38 @@ Normalize cstrs for cache hint effectiveness and test stability - * lisp/emacs-lisp/comp-cstr.el (comp-normalize-valset) - (comp-union-valsets, comp-intersection-valsets) - (comp-normalize-typeset): New functions. - (comp-union-typesets, comp-intersect-typesets) - (comp-cstr-union-homogeneous-no-range, comp-cstr-union-1-no-mem): - Update to return normalized results. - * test/lisp/emacs-lisp/comp-cstr-tests.el - (comp-cstr-typespec-tests-alist): Normalize expected type specifiers. + * lisp/emacs-lisp/comp-cstr.el (comp-normalize-valset) + (comp-union-valsets, comp-intersection-valsets) + (comp-normalize-typeset): New functions. + (comp-union-typesets, comp-intersect-typesets) + (comp-cstr-union-homogeneous-no-range, comp-cstr-union-1-no-mem): + Update to return normalized results. + * test/lisp/emacs-lisp/comp-cstr-tests.el + (comp-cstr-typespec-tests-alist): Normalize expected type specifiers. 2020-12-12 Andrea Corallo - * Add `comp-split-pos-neg' function + Add `comp-split-pos-neg' function - * lisp/emacs-lisp/comp-cstr.el (comp-split-pos-neg): New function. - (comp-cstr-union-1-no-mem): Update to call `comp-split-pos-neg'. + * lisp/emacs-lisp/comp-cstr.el (comp-split-pos-neg): New function. + (comp-cstr-union-1-no-mem): Update to call `comp-split-pos-neg'. 2020-12-12 Andrea Corallo - * Enumerate type specifier tests to ease debugging + Enumerate type specifier tests to ease debugging - * test/lisp/emacs-lisp/comp-cstr-tests.el - (comp-cstr-typespec-tests-alist): Enumerate tests. + * test/lisp/emacs-lisp/comp-cstr-tests.el + (comp-cstr-typespec-tests-alist): Enumerate tests. Acked-by: Andrea Corallo 2020-12-12 Andrea Corallo - * Code rework add `comp-cstrs-homogeneous' + Code rework add `comp-cstrs-homogeneous' - * lisp/emacs-lisp/comp-cstr.el (comp-cstrs-homogeneous): New - function. - (comp-cstr-union-1-no-mem): Make use of. + * lisp/emacs-lisp/comp-cstr.el (comp-cstrs-homogeneous): New + function. + (comp-cstr-union-1-no-mem): Make use of. 2020-12-12 Andrea Corallo @@ -48336,12 +48336,12 @@ 2020-12-07 Andrea Corallo - * Spawn a sub-process for running GCC also in batch mode (bug#45056) + Spawn a sub-process for running GCC also in batch mode (bug#45056) - * lisp/emacs-lisp/comp.el (comp-async-compilation): New variable. - (comp-final): Always run the C side of the compilation as a - sub-process unless during bootstrap or async compilation. - (comp-run-async-workers): Set `comp-async-compilation'. + * lisp/emacs-lisp/comp.el (comp-async-compilation): New variable. + (comp-final): Always run the C side of the compilation as a + sub-process unless during bootstrap or async compilation. + (comp-run-async-workers): Set `comp-async-compilation'. 2020-12-07 Lars Ingebrigtsen @@ -48549,21 +48549,21 @@ 2020-12-06 Andrea Corallo - * Unify common fallback exit point in `comp-cstr-union-1-no-mem'. + Unify common fallback exit point in `comp-cstr-union-1-no-mem'. - * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1-no-mem): Define - a local function `give-up' as a common fall-back exit point. + * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1-no-mem): Define + a local function `give-up' as a common fall-back exit point. 2020-12-06 Andrea Corallo Couple of `comp-cstr-union-1-no-mem' improvements for mixed neg pos union - * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1-no-mem): - Generalize disjoint pos types vs neg values conditions. - (comp-cstr-union-1-no-mem): Do not propagate ranges when we are - already returning integer as generic type. - * test/lisp/emacs-lisp/comp-cstr-tests.el - (comp-cstr-typespec-tests-alist): Add corresponding tests. + * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1-no-mem): + Generalize disjoint pos types vs neg values conditions. + (comp-cstr-union-1-no-mem): Do not propagate ranges when we are + already returning integer as generic type. + * test/lisp/emacs-lisp/comp-cstr-tests.el + (comp-cstr-typespec-tests-alist): Add corresponding tests. 2020-12-06 Philipp Stephani @@ -48691,63 +48691,63 @@ 2020-12-05 Andrea Corallo - * Memoize `comp-cstr-union-1' + Memoize `comp-cstr-union-1' - * lisp/emacs-lisp/comp-cstr.el (comp-cstr): Do not synthesize the - copier. - (comp-cstr-ctxt): Add `union-1-mem-no-range' `union-1-mem-range' - slots. - (comp-cstr-copy): New function. - (comp-cstr-union-1-no-mem): Rename from `comp-cstr-union-1'. - (comp-cstr-union-1): New function. + * lisp/emacs-lisp/comp-cstr.el (comp-cstr): Do not synthesize the + copier. + (comp-cstr-ctxt): Add `union-1-mem-no-range' `union-1-mem-range' + slots. + (comp-cstr-copy): New function. + (comp-cstr-union-1-no-mem): Rename from `comp-cstr-union-1'. + (comp-cstr-union-1): New function. 2020-12-05 Andrea Corallo More improvements to `comp-cstr-union-1' for mixed positive/negative cases - * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1): Better handle - mixed positive/negated cases. - * test/lisp/emacs-lisp/comp-cstr-tests.el - (comp-cstr-typespec-tests-alist): Add a number of tests. + * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1): Better handle + mixed positive/negated cases. + * test/lisp/emacs-lisp/comp-cstr-tests.el + (comp-cstr-typespec-tests-alist): Add a number of tests. 2020-12-05 Andrea Corallo - * Fix `comp-cstr-to-type-spec' + Fix `comp-cstr-to-type-spec' - * lisp/emacs-lisp/comp-cstr.el (comp-star-or-num-p): New predicate. - (comp-type-spec-to-cstr): Make use of. - (comp-cstr-to-type-spec): Output correctly type specifiers - as (not (or integer ... + * lisp/emacs-lisp/comp-cstr.el (comp-star-or-num-p): New predicate. + (comp-type-spec-to-cstr): Make use of. + (comp-cstr-to-type-spec): Output correctly type specifiers + as (not (or integer ... 2020-12-05 Andrea Corallo Fix union of homogeneously negated input constraints - * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1): Fix logic. - * test/lisp/emacs-lisp/comp-cstr-tests.el - (comp-cstr-typespec-tests-alist): Add a couple of tests. + * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1): Fix logic. + * test/lisp/emacs-lisp/comp-cstr-tests.el + (comp-cstr-typespec-tests-alist): Add a couple of tests. 2020-12-05 Andrea Corallo - * Add `with-comp-cstr-accessors' macro. + Add `with-comp-cstr-accessors' macro. - * lisp/emacs-lisp/comp-cstr.el (with-comp-cstr-accessors): New macro. - (comp-cstr-union-1): Make use of `with-comp-cstr-accessors'. + * lisp/emacs-lisp/comp-cstr.el (with-comp-cstr-accessors): New macro. + (comp-cstr-union-1): Make use of `with-comp-cstr-accessors'. 2020-12-05 Andrea Corallo Initial support for union of negated constraints - * lisp/emacs-lisp/comp-cstr.el (comp-range-negation): New - function. - (comp-cstr-union-homogeneous-no-range): Rename from - `comp-cstr-union-no-range'. - (comp-cstr-union-homogeneous): Rename from `comp-cstr-union'. - (comp-cstr-union-1): New function. - (comp-cstr-union-no-range, comp-cstr-union): Rewrite in function - of `comp-cstr-union-1'. - * test/lisp/emacs-lisp/comp-cstr-tests.el - (comp-cstr-typespec-tests-alist): Add a bunch of tests. + * lisp/emacs-lisp/comp-cstr.el (comp-range-negation): New + function. + (comp-cstr-union-homogeneous-no-range): Rename from + `comp-cstr-union-no-range'. + (comp-cstr-union-homogeneous): Rename from `comp-cstr-union'. + (comp-cstr-union-1): New function. + (comp-cstr-union-no-range, comp-cstr-union): Rewrite in function + of `comp-cstr-union-1'. + * test/lisp/emacs-lisp/comp-cstr-tests.el + (comp-cstr-typespec-tests-alist): Add a bunch of tests. 2020-12-05 Andrea Corallo @@ -48757,13 +48757,13 @@ Initial constraint negation support - * lisp/emacs-lisp/comp-cstr.el (comp-cstr): Add `neg' slot. - (comp-range-negation, comp-cstr-negation) - (comp-cstr-negation-make): New functions. - (comp-type-spec-to-cstr): Enable `not` in type specifiers. - (comp-cstr-to-type-spec): Update logic to handle negation. - * test/lisp/emacs-lisp/comp-cstr-tests.el - (comp-cstr-typespec-tests-alist): Add a test. + * lisp/emacs-lisp/comp-cstr.el (comp-cstr): Add `neg' slot. + (comp-range-negation, comp-cstr-negation) + (comp-cstr-negation-make): New functions. + (comp-type-spec-to-cstr): Enable `not` in type specifiers. + (comp-cstr-to-type-spec): Update logic to handle negation. + * test/lisp/emacs-lisp/comp-cstr-tests.el + (comp-cstr-typespec-tests-alist): Add a test. 2020-12-05 Stefan Monnier @@ -48880,32 +48880,32 @@ 2020-12-04 Andrea Corallo - * Do not compile `comp-cstr.el` in vanilla builds + Do not compile `comp-cstr.el` in vanilla builds - * lisp/Makefile.in (compile-targets): Filter out 'comp-cstr.elc' - in vanilla builds. + * lisp/Makefile.in (compile-targets): Filter out 'comp-cstr.elc' + in vanilla builds. 2020-12-04 Andrea Corallo Vanilla build warning clean-up - * lisp/emacs-lisp/disass.el (native-comp-unit-file) - (subr-native-comp-unit): Declare function. - * lisp/progmodes/elisp-mode.el (native-compile): Likewise. - * lisp/emacs-lisp/package.el (comp-el-to-eln-filename): Likewise. - * lisp/startup.el (normal-top-level): Silence warning. - * src/data.c (syms_of_data): 'Ssubr_native_lambda_list' is always - defined. - * src/pdumper.c (dump_cold_native_subr): Move under ifdefs. - (dump_drain_cold_data): Add ifdefs. + * lisp/emacs-lisp/disass.el (native-comp-unit-file) + (subr-native-comp-unit): Declare function. + * lisp/progmodes/elisp-mode.el (native-compile): Likewise. + * lisp/emacs-lisp/package.el (comp-el-to-eln-filename): Likewise. + * lisp/startup.el (normal-top-level): Silence warning. + * src/data.c (syms_of_data): 'Ssubr_native_lambda_list' is always + defined. + * src/pdumper.c (dump_cold_native_subr): Move under ifdefs. + (dump_drain_cold_data): Add ifdefs. 2020-12-04 Andrea Corallo - * Fix `load-history' causing a number of spurious compiler warnings + Fix `load-history' causing a number of spurious compiler warnings - * src/comp.c (Fcomp__register_subr): Fix missing entry into - `load-history' indicating that the loaded function was already an - autoload. + * src/comp.c (Fcomp__register_subr): Fix missing entry into + `load-history' indicating that the loaded function was already an + autoload. 2020-12-04 Spencer Baugh @@ -49106,20 +49106,20 @@ 2020-12-04 Andrea Corallo - * Reduce (half) the number of loads emitted for calling into C code + Reduce (half) the number of loads emitted for calling into C code As after each function call GCC clobbers the pointer to the function relocation table. This commit modify the code generation to create a local copy of it for each function. This reduces the average number of loads for each function call into C from two to one. - * src/comp.c (comp_t): Add 'func_relocs_ptr_type' and - 'func_relocs_local' fields. - (emit_call): Use the local func_relocs pointer when possible. - (emit_ctxt_code): Fill 'comp.func_relocs_ptr_type'. - (compile_function): Declare 'func_relocs_ptr_local'. - (compile_function): Assign 'func_relocs_ptr_local' from the global - value in each function prologue. + * src/comp.c (comp_t): Add 'func_relocs_ptr_type' and + 'func_relocs_local' fields. + (emit_call): Use the local func_relocs pointer when possible. + (emit_ctxt_code): Fill 'comp.func_relocs_ptr_type'. + (compile_function): Declare 'func_relocs_ptr_local'. + (compile_function): Assign 'func_relocs_ptr_local' from the global + value in each function prologue. 2020-12-03 Eric Abrahamsen @@ -49602,12 +49602,12 @@ Fix `comp-mvar-symbol-p' and `comp-mvar-cons-p' (bug#44968) - * lisp/emacs-lisp/comp.el (comp-mvar-symbol-p): As all slots into - a `comp-cstr' are in or fix this logic. - (comp-mvar-cons-p): Likewise. - * test/src/comp-tests.el (bug-44968): New testcase. - * test/src/comp-test-funcs.el (comp-test-44968-f): New test - function. + * lisp/emacs-lisp/comp.el (comp-mvar-symbol-p): As all slots into + a `comp-cstr' are in or fix this logic. + (comp-mvar-cons-p): Likewise. + * test/src/comp-tests.el (bug-44968): New testcase. + * test/src/comp-test-funcs.el (comp-test-44968-f): New test + function. 2020-11-30 Stefan Kangas @@ -49795,11 +49795,11 @@ 2020-11-27 Andrea Corallo - * Synthesize as const primitive function pointers and its container struct. + Synthesize as const primitive function pointers and its container struct. - * src/comp.c (declare_imported_func): Make const function pointer - to primitive funcions. - (emit_ctxt_code): Make struct 'comp.func_relocs' const. + * src/comp.c (declare_imported_func): Make const function pointer + to primitive funcions. + (emit_ctxt_code): Make struct 'comp.func_relocs' const. 2020-11-27 Philipp Stephani @@ -50011,11 +50011,11 @@ Move some tests from comp-tests.el to comp-cstr-tests.el - * test/lisp/emacs-lisp/comp-cstr-tests.el - (comp-cstr-typespec-tests-alist): Add tests covering what was in: - `range-simple-union', `union-types', `destructure-type-spec'. - * test/src/comp-tests.el (range-simple-intersection, union-types) - (destructure-type-spec): Remove tests. + * test/lisp/emacs-lisp/comp-cstr-tests.el + (comp-cstr-typespec-tests-alist): Add tests covering what was in: + `range-simple-union', `union-types', `destructure-type-spec'. + * test/src/comp-tests.el (range-simple-intersection, union-types) + (destructure-type-spec): Remove tests. 2020-11-26 Andrea Corallo @@ -50031,36 +50031,36 @@ Lastly this should help with bootstrap time as comp.el compilation unit is slimmed down. - * lisp/emacs-lisp/comp-cstr.el: New file. - (comp--typeof-types, comp--all-builtin-types): Move from comp.el. - (comp-cstr, comp-cstr-f): Same + rename. - (comp-cstr-ctxt): New struct. - (comp-supertypes, comp-common-supertype-2) - (comp-common-supertype, comp-subtype-p, comp-union-typesets) - (comp-range-1+, comp-range-1-, comp-range-<, comp-range-union) - (comp-range-intersection): Move from comp.el. - (comp-cstr-union-no-range, comp-cstr-union): Move from comp.el and - rename. - (comp-cstr-union-make): New function. - (comp-type-spec-to-cstr, comp-cstr-to-type-spec): Move from - comp.el, rename it and rework it. - - * lisp/emacs-lisp/comp.el (comp-known-func-cstr-h): Rework. - (comp-ctxt): Remove two fields and include `comp-cstr-ctxt'. - (comp-mvar, comp-fwprop-call): Update for `comp-cstr' being - renamed. - (comp-fwprop-insn): Use `comp-cstr-union-no-range' or - `comp-cstr-union'. - (comp-ret-type-spec): Use `comp-cstr-union' and rework. - - * test/lisp/emacs-lisp/comp-cstr-tests.el: New file. - (comp-cstr-test-ts, comp-cstr-typespec-test): New functions. - (comp-cstr-typespec-tests-alist): New defconst to generate tests - on. - (comp-cstr-generate-tests): New macro. - - * test/src/comp-tests.el (comp-tests-type-spec-tests): Update. - (ret-type-spec): Initialize constraint context. + * lisp/emacs-lisp/comp-cstr.el: New file. + (comp--typeof-types, comp--all-builtin-types): Move from comp.el. + (comp-cstr, comp-cstr-f): Same + rename. + (comp-cstr-ctxt): New struct. + (comp-supertypes, comp-common-supertype-2) + (comp-common-supertype, comp-subtype-p, comp-union-typesets) + (comp-range-1+, comp-range-1-, comp-range-<, comp-range-union) + (comp-range-intersection): Move from comp.el. + (comp-cstr-union-no-range, comp-cstr-union): Move from comp.el and + rename. + (comp-cstr-union-make): New function. + (comp-type-spec-to-cstr, comp-cstr-to-type-spec): Move from + comp.el, rename it and rework it. + + * lisp/emacs-lisp/comp.el (comp-known-func-cstr-h): Rework. + (comp-ctxt): Remove two fields and include `comp-cstr-ctxt'. + (comp-mvar, comp-fwprop-call): Update for `comp-cstr' being + renamed. + (comp-fwprop-insn): Use `comp-cstr-union-no-range' or + `comp-cstr-union'. + (comp-ret-type-spec): Use `comp-cstr-union' and rework. + + * test/lisp/emacs-lisp/comp-cstr-tests.el: New file. + (comp-cstr-test-ts, comp-cstr-typespec-test): New functions. + (comp-cstr-typespec-tests-alist): New defconst to generate tests + on. + (comp-cstr-generate-tests): New macro. + + * test/src/comp-tests.el (comp-tests-type-spec-tests): Update. + (ret-type-spec): Initialize constraint context. 2020-11-26 Dario Gjorgjevski @@ -50531,7 +50531,7 @@ 2020-11-23 Andrea Corallo - * Add SELECTOR parameter to `native-compile-async' (bug#44813) + Add SELECTOR parameter to `native-compile-async' (bug#44813) * lisp/emacs-lisp/comp.el (native-compile-async-skip-p): New function ripping out logic from `native--compile-async' and accounting for @@ -50543,7 +50543,7 @@ 2020-11-23 Andrea Corallo - * Rename two native compiler customize + Rename two native compiler customize * lisp/emacs-lisp/comp.el (comp-deferred-compilation-deny-list): Rename from `comp-deferred-compilation-black-list'. @@ -51060,10 +51060,10 @@ Add 'EMACSNATIVELOADPATH' env variable support (bug#44726) - * lisp/startup.el (normal-top-level): Read 'EMACSNATIVELOADPATH' - and add entries too `comp-eln-load-path'. - * lisp/mail/emacsbug.el (report-emacs-bug): Dump - also 'EMACSNATIVELOADPATH'. + * lisp/startup.el (normal-top-level): Read 'EMACSNATIVELOADPATH' + and add entries too `comp-eln-load-path'. + * lisp/mail/emacsbug.el (report-emacs-bug): Dump + also 'EMACSNATIVELOADPATH'. 2020-11-20 Lars Ingebrigtsen @@ -51339,10 +51339,10 @@ 2020-11-18 Andrea Corallo - * Fix eln file hasing for symlink paths (bug#44701) + Fix eln file hasing for symlink paths (bug#44701) - * src/comp.c (Fcomp_el_to_eln_filename): Call `file-truename' - in place of `expand-file-name' when available. + * src/comp.c (Fcomp_el_to_eln_filename): Call `file-truename' + in place of `expand-file-name' when available. 2020-11-18 Jonas Bernoulli @@ -51704,12 +51704,12 @@ Fix nativecomp cond-rw pass - * lisp/emacs-lisp/comp.el (comp-mvar-symbol-p): Improve it. - (comp-cond-rw-func): Fix logic for multiple predecessor on target - block. - * test/src/comp-tests.el (comp-test-cond-rw-1): New test. - * test/src/comp-test-funcs.el (comp-test-cond-rw-1-1-f) - (comp-test-cond-rw-1-2-f): New functions. + * lisp/emacs-lisp/comp.el (comp-mvar-symbol-p): Improve it. + (comp-cond-rw-func): Fix logic for multiple predecessor on target + block. + * test/src/comp-tests.el (comp-test-cond-rw-1): New test. + * test/src/comp-test-funcs.el (comp-test-cond-rw-1-1-f) + (comp-test-cond-rw-1-2-f): New functions. 2020-11-16 Stefan Kangas @@ -51757,18 +51757,18 @@ 2020-11-15 Andrea Corallo - * Improve `comp-fwprop-call' + Improve `comp-fwprop-call' - * lisp/emacs-lisp/comp.el (comp-function-call-maybe-fold): - Document return value. - (comp-fwprop-call): Simplify and improve. + * lisp/emacs-lisp/comp.el (comp-function-call-maybe-fold): + Document return value. + (comp-fwprop-call): Simplify and improve. 2020-11-15 Andrea Corallo - * Add more type specifiers + Add more type specifiers - * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Add more - pure functions. + * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Add more + pure functions. 2020-11-15 Eli Zaretskii @@ -51841,62 +51841,62 @@ Add `comp-constraint-to-type-spec' and better handle boolean type spec - * lisp/emacs-lisp/comp.el (comp-constraint-to-type-spec): New - function splitting out code from comp-ret-type-spec + better - handle boolean type specifier. - (comp-ret-type-spec): Rework to leverage - `comp-constraint-to-type-spec'. - * test/src/comp-tests.el (comp-tests-type-spec-tests): Add a - testcase. + * lisp/emacs-lisp/comp.el (comp-constraint-to-type-spec): New + function splitting out code from comp-ret-type-spec + better + handle boolean type specifier. + (comp-ret-type-spec): Rework to leverage + `comp-constraint-to-type-spec'. + * test/src/comp-tests.el (comp-tests-type-spec-tests): Add a + testcase. 2020-11-14 Andrea Corallo Handle correctly quoting in *Native-compile-Log* buffer - * lisp/emacs-lisp/comp.el (comp-log): Add `quoted' parameter and - pass it to `comp-log-to-buffer'. - (comp-log-to-buffer): Add `quoted' parameter and leverage `prin1' - or `princ' accordingly. + * lisp/emacs-lisp/comp.el (comp-log): Add `quoted' parameter and + pass it to `comp-log-to-buffer'. + (comp-log-to-buffer): Add `quoted' parameter and leverage `prin1' + or `princ' accordingly. 2020-11-14 Andrea Corallo - * Split logic into comp-fwprop-call and improve it + Split logic into comp-fwprop-call and improve it - * lisp/emacs-lisp/comp.el (comp-func-ret-valset) - (comp-fwprop-call): New functions. - (comp-fwprop-insn): Remove code duplicaiton and call - `comp-fwprop-call'. + * lisp/emacs-lisp/comp.el (comp-func-ret-valset) + (comp-fwprop-call): New functions. + (comp-fwprop-insn): Remove code duplicaiton and call + `comp-fwprop-call'. 2020-11-14 Andrea Corallo - * Fix debug symbol emission + Fix debug symbol emission - * src/comp.c (Fcomp__compile_ctxt_to_file): Now that we do not - rely anymore on globlal variables move logic in from - 'Fcomp__init_ctxt' so comp.debug is already set correctly. + * src/comp.c (Fcomp__compile_ctxt_to_file): Now that we do not + rely anymore on globlal variables move logic in from + 'Fcomp__init_ctxt' so comp.debug is already set correctly. 2020-11-14 Andrea Corallo - * Add a number of type specifiers for pure function + Add a number of type specifiers for pure function - * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Add 60 - pure function type specifiers. + * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Add 60 + pure function type specifiers. 2020-11-14 Andrea Corallo Characterize functions in terms of type specifiers - * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): New const - in place of `comp-known-ret-types' and `comp-known-ret-ranges'. - (comp-constraint): New struct to separate the constraint side of - an mvar. - (comp-constraint-f): Analogous for functions. - (comp-mvar): Rework and include `comp-constraint'. - (comp-type-spec-to-constraint): New function. - (comp-known-constraints-h): New const. - (comp-func-ret-typeset, comp-func-ret-range): Rework. - (comp-fwprop-insn): Fix. - * test/src/comp-tests.el (destructure-type-spec): New testcase. + * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): New const + in place of `comp-known-ret-types' and `comp-known-ret-ranges'. + (comp-constraint): New struct to separate the constraint side of + an mvar. + (comp-constraint-f): Analogous for functions. + (comp-mvar): Rework and include `comp-constraint'. + (comp-type-spec-to-constraint): New function. + (comp-known-constraints-h): New const. + (comp-func-ret-typeset, comp-func-ret-range): Rework. + (comp-fwprop-insn): Fix. + * test/src/comp-tests.el (destructure-type-spec): New testcase. 2020-11-14 Juri Linkov @@ -52173,9 +52173,9 @@ Add copy insn testcase - * test/src/comp-tests.el (copy-insn): New testcase. - * test/src/comp-test-funcs.el (comp-test-copy-insn-f): New - function. + * test/src/comp-tests.el (copy-insn): New testcase. + * test/src/comp-test-funcs.el (comp-test-copy-insn-f): New + function. 2020-11-12 Andrea Corallo @@ -52183,33 +52183,33 @@ 2020-11-12 Andrea Corallo - * Memoize `comp-common-supertype' + Memoize `comp-common-supertype' - * lisp/emacs-lisp/comp.el (comp-ctxt): Add `common-supertype-mem' - slot. - (comp-common-supertype): Memoize. + * lisp/emacs-lisp/comp.el (comp-ctxt): Add `common-supertype-mem' + slot. + (comp-common-supertype): Memoize. 2020-11-12 Andrea Corallo - * Add few more type specifier tests + Add few more type specifier tests - * test/src/comp-tests.el (comp-tests-type-spec-tests): Add three - tests and uncomment one. + * test/src/comp-tests.el (comp-tests-type-spec-tests): Add three + tests and uncomment one. 2020-11-12 Andrea Corallo - * Rework `comp-ret-type-spec' in terms of `comp-phi' + Rework `comp-ret-type-spec' in terms of `comp-phi' - * lisp/emacs-lisp/comp.el (comp-ret-type-spec): Use `comp-func' - not to duplicate logic plus add null type specifier support and - some comments. + * lisp/emacs-lisp/comp.el (comp-ret-type-spec): Use `comp-func' + not to duplicate logic plus add null type specifier support and + some comments. 2020-11-12 Andrea Corallo - * Move phi function code into dedicated function and improve it + Move phi function code into dedicated function and improve it - * lisp/emacs-lisp/comp.el (comp-phi): New function moving logic - from `comp-fwprop-insn'. + * lisp/emacs-lisp/comp.el (comp-phi): New function moving logic + from `comp-fwprop-insn'. 2020-11-12 Stefan Kangas @@ -52344,58 +52344,58 @@ 2020-11-12 Andrea Corallo - * Nativecomp testsuite rework for derived return type specifiers + Nativecomp testsuite rework for derived return type specifiers As we have derived return type specifiers as some test for them. Also rewrite some propagation related test using return type specifiers too as it's way more convenient. - * test/src/comp-tests.el (fw-prop-1): Nit rename. - (comp-tests-check-ret-type-spec): New function. - (comp-tests-type-spec-tests): New variable. - (comp-tests-cond-rw-0-var) Remove variable. - (cond-rw-0, cond-rw-1, cond-rw-2, cond-rw-3, cond-rw-4, cond-rw-5) - Remove tests as now covered by `comp-tests-check-ret-type-spec'. + * test/src/comp-tests.el (fw-prop-1): Nit rename. + (comp-tests-check-ret-type-spec): New function. + (comp-tests-type-spec-tests): New variable. + (comp-tests-cond-rw-0-var) Remove variable. + (cond-rw-0, cond-rw-1, cond-rw-2, cond-rw-3, cond-rw-4, cond-rw-5) + Remove tests as now covered by `comp-tests-check-ret-type-spec'. 2020-11-12 Andrea Corallo - * Add nativecomp derived return type specifier computation support + Add nativecomp derived return type specifier computation support - * lisp/emacs-lisp/comp.el (comp-post-pass-hooks): Nit. - (comp-func): Add `ret-type-specifier' slot. - (comp-ret-type-spec): New function. - (comp-final): Call `comp-ret-type-spec'. + * lisp/emacs-lisp/comp.el (comp-post-pass-hooks): Nit. + (comp-func): Add `ret-type-specifier' slot. + (comp-ret-type-spec): New function. + (comp-final): Call `comp-ret-type-spec'. 2020-11-12 Andrea Corallo - * Unline some functions to optimize bootstrap time + Unline some functions to optimize bootstrap time - * lisp/emacs-lisp/comp.el (comp-mvar-value-vld-p) - (comp-mvar-value, comp-mvar-fixnum-p, comp-set-op-p) - (comp-assign-op-p, comp-call-op-p, comp-type-hint-p) - (comp-func-ret-typeset, comp-function-pure-p) - (comp-alloc-class-to-container, comp-lex-byte-func-p) - (comp-lap-eob-p, comp-lap-fall-through-p, comp-emit) - (comp-emit-set-call, comp-mvar-propagate) - (comp-function-foldable-p, comp-function-call-maybe-fold) - (comp-trampoline-filename): Uninline functions. + * lisp/emacs-lisp/comp.el (comp-mvar-value-vld-p) + (comp-mvar-value, comp-mvar-fixnum-p, comp-set-op-p) + (comp-assign-op-p, comp-call-op-p, comp-type-hint-p) + (comp-func-ret-typeset, comp-function-pure-p) + (comp-alloc-class-to-container, comp-lex-byte-func-p) + (comp-lap-eob-p, comp-lap-fall-through-p, comp-emit) + (comp-emit-set-call, comp-mvar-propagate) + (comp-function-foldable-p, comp-function-call-maybe-fold) + (comp-trampoline-filename): Uninline functions. 2020-11-12 Andrea Corallo - * Add to elisp-mode `emacs-lisp-native-compile-and-load' + Add to elisp-mode `emacs-lisp-native-compile-and-load' - * lisp/progmodes/elisp-mode.el - (emacs-lisp--before-compile-buffer): New function. - (emacs-lisp-byte-compile-and-load): Use the previous. - (emacs-lisp-native-compile-and-load): New function. + * lisp/progmodes/elisp-mode.el + (emacs-lisp--before-compile-buffer): New function. + (emacs-lisp-byte-compile-and-load): Use the previous. + (emacs-lisp-native-compile-and-load): New function. 2020-11-12 Andrea Corallo - * Fix limple-mode for new type and range limple semantic + Fix limple-mode for new type and range limple semantic - * lisp/emacs-lisp/comp.el (comp-limple-branches, comp-limple-ops): - New variables. - (comp-limple-lock-keywords): Update value. + * lisp/emacs-lisp/comp.el (comp-limple-branches, comp-limple-ops): + New variables. + (comp-limple-lock-keywords): Update value. 2020-11-12 Andrea Corallo @@ -52404,9 +52404,9 @@ Having this while re-debugging the boostrap would have saved few hours of debug so let's add it. - * test/src/comp-tests.el (and-3): Add test. - * test/src/comp-test-funcs.el (comp-test-and-3-var): New var. - (comp-test-and-3-f): New function. + * test/src/comp-tests.el (and-3): Add test. + * test/src/comp-test-funcs.el (comp-test-and-3-var): New var. + (comp-test-and-3-f): New function. 2020-11-12 Andrea Corallo @@ -52418,50 +52418,50 @@ Each mvar can be now characterized by a set of types, a set of values and an integral range. - * lisp/emacs-lisp/comp.el (comp-known-ret-types): Store into - typeset and remove fixnum. - (comp-known-ret-ranges, comp-type-predicates): New variables. - (comp-ctxt): Remove supertype-memoize slot and add - union-typesets-mem. - (comp-mvar): Remove const-vld, constant, type slots. Add typeset, - valset, range slots. - (comp-mvar-value-vld-p, comp-mvar-value, comp-mvar-fixnum-p) - (comp-mvar-symbol-p, comp-mvar-cons-p) - (comp-mvar-type-hint-match-p, comp-func-ret-typeset) - (comp-func-ret-range): New functions. - (make-comp-mvar, make-comp-ssa-mvar): Update logic. - (comp--typeof-types): New variable. - (comp-supertypes, comp-common-supertype): Logic update. - (comp-subtype-p, comp-union-typesets, comp-range-1+) - (comp-range-1-, comp-range-<, comp-range-union) - (comp-range-intersection): New functions. - (comp-fwprop-prologue, comp-mvar-propagate) - (comp-function-foldable-p, comp-function-call-maybe-fold) - (comp-fwprop-insn, comp-call-optim-func, comp-finalize-relocs): - Logic update. - - * src/comp.c (emit_mvar_rval, emit_call_with_type_hint) - (emit_call2_with_type_hint): Logic update. - - * lisp/emacs-lisp/cl-preloaded.el (cl--typeof-types): Undo the add - of fixnum and bignum as unnecessary. - - * test/src/comp-tests.el - (comp-tests-mentioned-p-1, comp-tests-cond-rw-checker-val) - (comp-tests-cond-rw-checker-type, cond-rw-1, cond-rw-2) - (cond-rw-3, cond-rw-4, cond-rw-5): Update for new type interface. - (range-simple-union, range-simple-intersection): New integer range - tests. - (union-types): New union type test. + * lisp/emacs-lisp/comp.el (comp-known-ret-types): Store into + typeset and remove fixnum. + (comp-known-ret-ranges, comp-type-predicates): New variables. + (comp-ctxt): Remove supertype-memoize slot and add + union-typesets-mem. + (comp-mvar): Remove const-vld, constant, type slots. Add typeset, + valset, range slots. + (comp-mvar-value-vld-p, comp-mvar-value, comp-mvar-fixnum-p) + (comp-mvar-symbol-p, comp-mvar-cons-p) + (comp-mvar-type-hint-match-p, comp-func-ret-typeset) + (comp-func-ret-range): New functions. + (make-comp-mvar, make-comp-ssa-mvar): Update logic. + (comp--typeof-types): New variable. + (comp-supertypes, comp-common-supertype): Logic update. + (comp-subtype-p, comp-union-typesets, comp-range-1+) + (comp-range-1-, comp-range-<, comp-range-union) + (comp-range-intersection): New functions. + (comp-fwprop-prologue, comp-mvar-propagate) + (comp-function-foldable-p, comp-function-call-maybe-fold) + (comp-fwprop-insn, comp-call-optim-func, comp-finalize-relocs): + Logic update. + + * src/comp.c (emit_mvar_rval, emit_call_with_type_hint) + (emit_call2_with_type_hint): Logic update. + + * lisp/emacs-lisp/cl-preloaded.el (cl--typeof-types): Undo the add + of fixnum and bignum as unnecessary. + + * test/src/comp-tests.el + (comp-tests-mentioned-p-1, comp-tests-cond-rw-checker-val) + (comp-tests-cond-rw-checker-type, cond-rw-1, cond-rw-2) + (cond-rw-3, cond-rw-4, cond-rw-5): Update for new type interface. + (range-simple-union, range-simple-intersection): New integer range + tests. + (union-types): New union type test. 2020-11-12 Andrea Corallo - * Rename two nativecomp functions + Rename two nativecomp functions - * lisp/emacs-lisp/comp.el (comp-function-foldable-p): Rename from - comp-function-optimizable-p. - (comp-function-call-maybe-fold): Same from - comp-function-call-maybe-fold. + * lisp/emacs-lisp/comp.el (comp-function-foldable-p): Rename from + comp-function-optimizable-p. + (comp-function-call-maybe-fold): Same from + comp-function-call-maybe-fold. 2020-11-11 Eli Zaretskii @@ -52983,11 +52983,11 @@ 2020-11-07 Andrea Corallo - * Allow for manually bumbing new native compiler ABI versions + Allow for manually bumbing new native compiler ABI versions - * src/comp.c (ABI_VERSION): Define macro. - (hash_native_abi): Include ABI_VERSION in the hashing. - (syms_of_comp): Tweak docstring. + * src/comp.c (ABI_VERSION): Define macro. + (hash_native_abi): Include ABI_VERSION in the hashing. + (syms_of_comp): Tweak docstring. 2020-11-07 Andrea Corallo @@ -53012,35 +53012,35 @@ 2020-11-07 Andrea Corallo - * Fix non native compiled build + Fix non native compiled build - * lisp/emacs-lisp/advice.el (ad-add-advice): Do not try to - install trampolines in vanilla builds. + * lisp/emacs-lisp/advice.el (ad-add-advice): Do not try to + install trampolines in vanilla builds. 2020-11-07 Andrea Corallo Allow for native compilation qualities to be specified per input file - * lisp/emacs-lisp/bytecomp.el (byte-native-qualities): Define - variable. - (byte-compile-from-buffer): Spill compilation qualities. - * lisp/emacs-lisp/comp.el (comp-speed, comp-debug): Make - them file local variables. - (comp-ctxt): Add `speed' and `debug' slots. - (comp-spill-speed, comp-spill-lap-function): Make use of these. - (comp-spill-lap-function): Spill qualities from - `byte-native-qualities'. - (comp-limplify-top-level): Do not use `comp-speed' but ctxt value - unstead. - (comp-final): Do not propagate qualities as they are already - in the `comp-ctxt'. - (comp--native-compile): Close on `byte-native-qualities'. - * src/comp.c (comp_t): Add 'speed' and 'debug' fields. - (emit_comment, emit_mvar_rval, emit_static_object) - (emit_ctxt_code, Fcomp__init_ctxt): Use these instead of the - global variables. - (Fcomp__compile_ctxt_to_file): Set comp.speed and comp.debug and - use them. + * lisp/emacs-lisp/bytecomp.el (byte-native-qualities): Define + variable. + (byte-compile-from-buffer): Spill compilation qualities. + * lisp/emacs-lisp/comp.el (comp-speed, comp-debug): Make + them file local variables. + (comp-ctxt): Add `speed' and `debug' slots. + (comp-spill-speed, comp-spill-lap-function): Make use of these. + (comp-spill-lap-function): Spill qualities from + `byte-native-qualities'. + (comp-limplify-top-level): Do not use `comp-speed' but ctxt value + unstead. + (comp-final): Do not propagate qualities as they are already + in the `comp-ctxt'. + (comp--native-compile): Close on `byte-native-qualities'. + * src/comp.c (comp_t): Add 'speed' and 'debug' fields. + (emit_comment, emit_mvar_rval, emit_static_object) + (emit_ctxt_code, Fcomp__init_ctxt): Use these instead of the + global variables. + (Fcomp__compile_ctxt_to_file): Set comp.speed and comp.debug and + use them. 2020-11-07 Eli Zaretskii @@ -53053,16 +53053,14 @@ Handle type hierarchy in native compiler forward propagation - 2020-11-07 Andrea Corallo - - * lisp/emacs-lisp/cl-preloaded.el (cl--typeof-types): Add fixnum - and bignum. - * lisp/emacs-lisp/comp.el (comp-ctxt): Add `supertype-memoize' - slot. - (comp-supertypes, comp-common-supertype-2) - (comp-common-supertype): New functions. - (comp-fwprop-insn): Make use of `comp-common-supertype' to - identify the common supertype to be propagated. + * lisp/emacs-lisp/cl-preloaded.el (cl--typeof-types): Add fixnum + and bignum. + * lisp/emacs-lisp/comp.el (comp-ctxt): Add `supertype-memoize' + slot. + (comp-supertypes, comp-common-supertype-2) + (comp-common-supertype): New functions. + (comp-fwprop-insn): Make use of `comp-common-supertype' to + identify the common supertype to be propagated. 2020-11-07 Kazuhiro Ito (tiny change) @@ -53304,10 +53302,10 @@ 2020-11-05 Andrea Corallo - * A native compiler forward propagation fix + A native compiler forward propagation fix - * lisp/emacs-lisp/comp.el (comp-fwprop-insn): Fix `comp-mvar' - `const-vld' slot left unset while propagating in phis. + * lisp/emacs-lisp/comp.el (comp-fwprop-insn): Fix `comp-mvar' + `const-vld' slot left unset while propagating in phis. 2020-11-05 Basil L. Contovounesios @@ -54019,11 +54017,11 @@ 2020-11-01 Andrea Corallo - * Fix 'comp-call-optim pass' for anonymous lambdas + Fix 'comp-call-optim pass' for anonymous lambdas - * lisp/emacs-lisp/comp.el (comp-call-optim-func): Remove anonymous - lambdas gate. - (comp-call-optim-form-call): Add the correct missing condition. + * lisp/emacs-lisp/comp.el (comp-call-optim-func): Remove anonymous + lambdas gate. + (comp-call-optim-form-call): Add the correct missing condition. 2020-11-01 Andrea Corallo @@ -54031,17 +54029,17 @@ 2020-11-01 Andrea Corallo - * Add some 'cond-rw' pass related tests + Add some 'cond-rw' pass related tests - * test/src/comp-tests.el (comp-tests-cond-rw-checked-function): - Declare var. - (comp-tests-cond-rw-checker-val): New function. - (comp-tests-cond-rw-checker-type): Declare var. - (comp-tests-cond-rw-checker-type): New function. - (comp-tests-cond-rw-0-var): Declare var. - (comp-tests-cond-rw-0, comp-tests-cond-rw-1, comp-tests-cond-rw-2) - (comp-tests-cond-rw-3, comp-tests-cond-rw-4) - (comp-tests-cond-rw-5): New testcases. + * test/src/comp-tests.el (comp-tests-cond-rw-checked-function): + Declare var. + (comp-tests-cond-rw-checker-val): New function. + (comp-tests-cond-rw-checker-type): Declare var. + (comp-tests-cond-rw-checker-type): New function. + (comp-tests-cond-rw-0-var): Declare var. + (comp-tests-cond-rw-0, comp-tests-cond-rw-1, comp-tests-cond-rw-2) + (comp-tests-cond-rw-3, comp-tests-cond-rw-4) + (comp-tests-cond-rw-5): New testcases. 2020-11-01 Andrea Corallo @@ -54051,13 +54049,13 @@ and placing a new LIMPLE operator 'assume' in use by fwprop to propagate conditional branch test informations on target basic blocks. - * lisp/emacs-lisp/comp.el (comp-passes): Add `comp-cond-rw'. - (comp-limple-assignments): Add `assume' operator. - (comp-emit-assume, comp-cond-rw-target-slot, comp-cond-rw-func) - (comp-cond-rw): Add new functions. - (comp-fwprop-insn): Update to pattern match `assume' insns. - * src/comp.c (emit_limple_insn): Add for `assume'. - (syms_of_comp): Define 'Qassume' symbol. + * lisp/emacs-lisp/comp.el (comp-passes): Add `comp-cond-rw'. + (comp-limple-assignments): Add `assume' operator. + (comp-emit-assume, comp-cond-rw-target-slot, comp-cond-rw-func) + (comp-cond-rw): Add new functions. + (comp-fwprop-insn): Update to pattern match `assume' insns. + * src/comp.c (emit_limple_insn): Add for `assume'. + (syms_of_comp): Define 'Qassume' symbol. 2020-11-01 Lars Ingebrigtsen @@ -54071,13 +54069,13 @@ 2020-11-01 Andrea Corallo - * Rework some native compiler test infrastructure + Rework some native compiler test infrastructure - * test/src/comp-tests.el (comp-tests-map-checker): New function - returning a list holding checker results. - (comp-tests-tco-checker, comp-tests-fw-prop-checker-1) - (comp-tests-pure-checker-1, comp-tests-pure-checker-2): Make use - of `comp-tests-map-checker'. + * test/src/comp-tests.el (comp-tests-map-checker): New function + returning a list holding checker results. + (comp-tests-tco-checker, comp-tests-fw-prop-checker-1) + (comp-tests-pure-checker-1, comp-tests-pure-checker-2): Make use + of `comp-tests-map-checker'. 2020-11-01 Mauro Aranda @@ -55197,10 +55195,10 @@ Make native compiler tollerant to redefined primitives (bug#44221). - * lisp/emacs-lisp/comp.el (comp-emit-set-call-subr): Rework based - on the fact that the subr can now be redefined. - * test/src/comp-tests.el (primitive-redefine-compile-44221): - New testcase. + * lisp/emacs-lisp/comp.el (comp-emit-set-call-subr): Rework based + on the fact that the subr can now be redefined. + * test/src/comp-tests.el (primitive-redefine-compile-44221): + New testcase. 2020-10-26 Eli Zaretskii @@ -55251,17 +55249,17 @@ Fix defsubst effectiveness (bug#44209) - * lisp/emacs-lisp/byte-run.el (defsubst): Fix macro definition. - * test/src/comp-tests.el (comp-test-defsubst): New testcase. - * test/src/comp-test-funcs.el (comp-test-defsubst-f): New - function. + * lisp/emacs-lisp/byte-run.el (defsubst): Fix macro definition. + * test/src/comp-tests.el (comp-test-defsubst): New testcase. + * test/src/comp-test-funcs.el (comp-test-defsubst-f): New + function. 2020-10-25 Andrea Corallo - * Fix a function for native compilation in cc-bytecomp.el + Fix a function for native compilation in cc-bytecomp.el - * lisp/progmodes/cc-bytecomp.el - (cc-bytecomp-compiling-or-loading): Update for native compilation. + * lisp/progmodes/cc-bytecomp.el + (cc-bytecomp-compiling-or-loading): Update for native compilation. 2020-10-25 Stefan Kangas @@ -55303,10 +55301,10 @@ 2020-10-25 Andrea Corallo - * Fix ELC+ELN vs ELC prefix while building non AoT native compiled files + Fix ELC+ELN vs ELC prefix while building non AoT native compiled files - * lisp/Makefile.in (am__v_ELC_0): Set it correctly when - NATIVE_DISABLED is 1. + * lisp/Makefile.in (am__v_ELC_0): Set it correctly when + NATIVE_DISABLED is 1. 2020-10-25 Mattias Engdegård @@ -55318,13 +55316,13 @@ 2020-10-25 Andrea Corallo - * Report warnings and errors from native asynchronous compilation (bug#44168) + Report warnings and errors from native asynchronous compilation (bug#44168) - * lisp/emacs-lisp/comp.el (comp-last-scanned-async-output): New - buffer local variable. - (comp-accept-and-process-async-output): New function. - (comp-run-async-workers): Use - `comp-accept-and-process-async-output'. + * lisp/emacs-lisp/comp.el (comp-last-scanned-async-output): New + buffer local variable. + (comp-accept-and-process-async-output): New function. + (comp-run-async-workers): Use + `comp-accept-and-process-async-output'. 2020-10-25 Lars Ingebrigtsen @@ -55347,12 +55345,12 @@ 2020-10-25 Andrea Corallo - * Fix `comp-dry-run' effectiveness + Fix `comp-dry-run' effectiveness - * lisp/emacs-lisp/comp.el (comp-compile-ctxt-to-file): Remove - `comp-dry-run' guard. - (comp-final): And move it here so is effective for interactive - sessions and non. + * lisp/emacs-lisp/comp.el (comp-compile-ctxt-to-file): Remove + `comp-dry-run' guard. + (comp-final): And move it here so is effective for interactive + sessions and non. 2020-10-25 Philipp Stephani @@ -56272,22 +56270,22 @@ Sanitize eln filename when native compiling single functions - * lisp/emacs-lisp/comp.el (comp-spill-lap-function): Fix - temporary eln name generation. + * lisp/emacs-lisp/comp.el (comp-spill-lap-function): Fix + temporary eln name generation. - * test/src/comp-tests.el (free-fun-silly-name): New testcase. + * test/src/comp-tests.el (free-fun-silly-name): New testcase. 2020-10-20 Andrea Corallo - * Have `native-compile' do not expose `with-late-load' parameter + Have `native-compile' do not expose `with-late-load' parameter This is really for internal use only by deferred compilation. - * lisp/emacs-lisp/comp.el (comp-trampoline-compile) - (comp-run-async-workers): Make use of `comp--native-compile'. - (comp--native-compile): New function. - (native-compile, batch-native-compile): Make use of - `comp--native-compile'. + * lisp/emacs-lisp/comp.el (comp-trampoline-compile) + (comp-run-async-workers): Make use of `comp--native-compile'. + (comp--native-compile): New function. + (native-compile, batch-native-compile): Make use of + `comp--native-compile'. 2020-10-20 Stefan Kangas @@ -57460,11 +57458,11 @@ 2020-10-15 Andrea Corallo - * Do not check eln timestamp as superseded by source hashing (bug#43532) + Do not check eln timestamp as superseded by source hashing (bug#43532) - * src/lread.c (maybe_swap_for_eln): Remove eln file timestamp - check given is now unnecessary. - (openp): Update for new 'maybe_swap_for_eln' signature. + * src/lread.c (maybe_swap_for_eln): Remove eln file timestamp + check given is now unnecessary. + (openp): Update for new 'maybe_swap_for_eln' signature. 2020-10-15 Mattias Engdegård @@ -57565,64 +57563,64 @@ Use form native compilation in `comp-trampoline-compile' - * lisp/emacs-lisp/comp.el (comp-trampoline-sym): Remove function. - (comp-trampoline-filename): As we are introducing an ABI change in - the eln trampoline format change the trampoline filename to - disambiguate. - (comp-trampoline-search): Rename from `comp-search-trampoline' - and return directly the trampoline. - (comp-trampoline-compile): Rework to use native form compilation - in place of un-evaluating a function and return directly the - trampoline. - (comp-subr-trampoline-install): Update for - `comp-trampoline-search' and `comp-trampoline-compile' new - interfaces. - * src/comp.c (Fcomp__install_trampoline): Store the trampoline - itself as value in `comp-installed-trampolines-h'. - (syms_of_comp): Doc update `comp-installed-trampolines-h'. + * lisp/emacs-lisp/comp.el (comp-trampoline-sym): Remove function. + (comp-trampoline-filename): As we are introducing an ABI change in + the eln trampoline format change the trampoline filename to + disambiguate. + (comp-trampoline-search): Rename from `comp-search-trampoline' + and return directly the trampoline. + (comp-trampoline-compile): Rework to use native form compilation + in place of un-evaluating a function and return directly the + trampoline. + (comp-subr-trampoline-install): Update for + `comp-trampoline-search' and `comp-trampoline-compile' new + interfaces. + * src/comp.c (Fcomp__install_trampoline): Store the trampoline + itself as value in `comp-installed-trampolines-h'. + (syms_of_comp): Doc update `comp-installed-trampolines-h'. 2020-10-14 Andrea Corallo - * Add a test to verify form native compilation. + Add a test to verify form native compilation. - * test/src/comp-tests.el (comp-deftest): Fix typo. - (compile-forms): New test. + * test/src/comp-tests.el (comp-deftest): Fix typo. + (compile-forms): New test. 2020-10-14 Andrea Corallo Rework `native-compile' interface so it can return compiled functions - * lisp/emacs-lisp/comp.el (native-compile): Return the compiled - function when the input is a symbol or a form. - * test/src/comp-tests.el (free-fun, tco, fw-prop): Update tests - for new `native-compile' interface. + * lisp/emacs-lisp/comp.el (native-compile): Return the compiled + function when the input is a symbol or a form. + * test/src/comp-tests.el (free-fun, tco, fw-prop): Update tests + for new `native-compile' interface. 2020-10-14 Andrea Corallo Have `native-elisp-load' return the last registerd function - * lisp/emacs-lisp/comp.el (comp-emit-for-top-level): Synthesize - 'top_level_run' so it returns the last value returned by - `comp--register-subr'. - * src/comp.c (load_comp_unit): Return what 'top_level_run' - returns. - (Fnative_elisp_load): Return what 'load_comp_unit' returns. - * src/comp.h (load_comp_unit): Update signature. + * lisp/emacs-lisp/comp.el (comp-emit-for-top-level): Synthesize + 'top_level_run' so it returns the last value returned by + `comp--register-subr'. + * src/comp.c (load_comp_unit): Return what 'top_level_run' + returns. + (Fnative_elisp_load): Return what 'load_comp_unit' returns. + * src/comp.h (load_comp_unit): Update signature. 2020-10-14 Andrea Corallo - * Allow for lambda forms as native compilation input + Allow for lambda forms as native compilation input - * lisp/emacs-lisp/comp.el (comp-spill-lap-function): Add new - specialized method for compiling a lambda form. + * lisp/emacs-lisp/comp.el (comp-spill-lap-function): Add new + specialized method for compiling a lambda form. 2020-10-14 Andrea Corallo - * Move context output computation in `comp-spill-lap-function' + Move context output computation in `comp-spill-lap-function' - * lisp/emacs-lisp/comp.el (comp-spill-lap-function): Move - output filename computation here. - (native-compile): From here. + * lisp/emacs-lisp/comp.el (comp-spill-lap-function): Move + output filename computation here. + (native-compile): From here. 2020-10-14 Juri Linkov @@ -57878,14 +57876,14 @@ Fix some compilation warnings in non nativecomp build (bug#43892) - * lisp/emacs-lisp/advice.el (comp-subr-trampoline-install): - Declare function. - * lisp/emacs-lisp/find-func.el (comp-eln-to-el-h): Declare - variable. - * lisp/emacs-lisp/nadvice.el (comp-subr-trampoline-install): - Declare function. - * lisp/files.el (comp-eln-to-el-h): Declare variable. - * lisp/help.el (subr-native-lambda-list): Declare function. + * lisp/emacs-lisp/advice.el (comp-subr-trampoline-install): + Declare function. + * lisp/emacs-lisp/find-func.el (comp-eln-to-el-h): Declare + variable. + * lisp/emacs-lisp/nadvice.el (comp-subr-trampoline-install): + Declare function. + * lisp/files.el (comp-eln-to-el-h): Declare variable. + * lisp/help.el (subr-native-lambda-list): Declare function. 2020-10-12 Andrea Corallo @@ -57897,14 +57895,14 @@ Fix some compilation warnings in non nativecomp build (bug#43892) - * lisp/emacs-lisp/advice.el (comp-subr-trampoline-install): - Declare function. - * lisp/emacs-lisp/find-func.el (comp-eln-to-el-h): Declare - variable. - * lisp/emacs-lisp/nadvice.el (comp-subr-trampoline-install): - Declare function. - * lisp/files.el (comp-eln-to-el-h): Declare variable. - * lisp/help.el (subr-native-lambda-list): Declare function. + * lisp/emacs-lisp/advice.el (comp-subr-trampoline-install): + Declare function. + * lisp/emacs-lisp/find-func.el (comp-eln-to-el-h): Declare + variable. + * lisp/emacs-lisp/nadvice.el (comp-subr-trampoline-install): + Declare function. + * lisp/files.el (comp-eln-to-el-h): Declare variable. + * lisp/help.el (subr-native-lambda-list): Declare function. 2020-10-12 Stefan Kangas @@ -58195,34 +58193,34 @@ 2020-10-10 Andrea Corallo - * As edges are indexed store them in an hash table + As edges are indexed store them in an hash table - * lisp/emacs-lisp/comp.el (comp-edge): Update doc for 'number' - slot. - (comp-func): Rename 'edges' slot into 'edges-h'. - (comp-log-edges): Update logic for edges in an hash table. - (comp-clean-ssa, comp-compute-edges): Likewise. + * lisp/emacs-lisp/comp.el (comp-edge): Update doc for 'number' + slot. + (comp-func): Rename 'edges' slot into 'edges-h'. + (comp-log-edges): Update logic for edges in an hash table. + (comp-clean-ssa, comp-compute-edges): Likewise. 2020-10-10 Andrea Corallo - * Add into phi l-value args basic block names + Add into phi l-value args basic block names - * lisp/emacs-lisp/comp.el (comp-ssa-rename-insn): Clean-up a - leftover space. - (comp-finalize-phis): Cons the blasic block name providing the - mvar together with the mvar itself while forming the phi. - (comp-fwprop-insn): Destructure correctly the phi. + * lisp/emacs-lisp/comp.el (comp-ssa-rename-insn): Clean-up a + leftover space. + (comp-finalize-phis): Cons the blasic block name providing the + mvar together with the mvar itself while forming the phi. + (comp-fwprop-insn): Destructure correctly the phi. 2020-10-10 Andrea Corallo Provide feature nativecomp and make use of it - * lisp/emacs-lisp/comp.el (comp-ensure-native-compiler): Use - `featurep' to identify if the native compiler is available. - * lisp/emacs-lisp/nadvice.el (advice--add-function): Likewise. - * lisp/emacs-lisp/package.el (package--delete-directory): Likewise. - * lisp/loadup.el: Likewise. - * src/comp.c (syms_of_comp): Provide feature nativecomp. + * lisp/emacs-lisp/comp.el (comp-ensure-native-compiler): Use + `featurep' to identify if the native compiler is available. + * lisp/emacs-lisp/nadvice.el (advice--add-function): Likewise. + * lisp/emacs-lisp/package.el (package--delete-directory): Likewise. + * lisp/loadup.el: Likewise. + * src/comp.c (syms_of_comp): Provide feature nativecomp. 2020-10-10 Andrea Corallo @@ -58259,26 +58257,26 @@ 2020-10-10 Andrea Corallo - * Fix LIMPLE latch block name coloring in "*Native-compile-Log*" + Fix LIMPLE latch block name coloring in "*Native-compile-Log*" - * lisp/emacs-lisp/comp.el (comp-limple-lock-keywords): Fix - latch block name coloring. + * lisp/emacs-lisp/comp.el (comp-limple-lock-keywords): Fix + latch block name coloring. 2020-10-10 Brian Leung Various typo fixes in native compiler related files - * lisp/emacs-lisp/comp.el (native-compiler-error-dyn-func) - (comp-func, comp-func-l) - (comp-func-d, comp-ensure-native-compiler, comp-type-hint-p) - (comp-func-unique-in-cu-p, comp-alloc-class-to-container) - (comp-limple-mode, comp-loop-insn-in-block) - (comp-lex-byte-func-p, comp-c-func-name, comp-decrypt-arg-list) - (comp-spill-lap-function, comp-intern-func-in-ctxt) - (comp-spill-lap-function, comp-spill-lap, comp-emit-handler) - (comp-prepare-args-for-top-level): Various typo fixes. - * src/comp.c (Fcomp_el_to_eln_filename): Fix typo in error - message. + * lisp/emacs-lisp/comp.el (native-compiler-error-dyn-func) + (comp-func, comp-func-l) + (comp-func-d, comp-ensure-native-compiler, comp-type-hint-p) + (comp-func-unique-in-cu-p, comp-alloc-class-to-container) + (comp-limple-mode, comp-loop-insn-in-block) + (comp-lex-byte-func-p, comp-c-func-name, comp-decrypt-arg-list) + (comp-spill-lap-function, comp-intern-func-in-ctxt) + (comp-spill-lap-function, comp-spill-lap, comp-emit-handler) + (comp-prepare-args-for-top-level): Various typo fixes. + * src/comp.c (Fcomp_el_to_eln_filename): Fix typo in error + message. 2020-10-10 Mattias Engdegård @@ -58293,20 +58291,20 @@ 2020-10-10 Andrea Corallo - * Fix failure when compiling a trampoline with no eln-cache dir (bug#43875) + Fix failure when compiling a trampoline with no eln-cache dir (bug#43875) - * lisp/emacs-lisp/comp.el (comp-trampoline-compile): Try to create - the eln-cache dir if this is not existing, if fails to do that - move on to the next one. + * lisp/emacs-lisp/comp.el (comp-trampoline-compile): Try to create + the eln-cache dir if this is not existing, if fails to do that + move on to the next one. 2020-10-10 Andrew Whatson * Fix typo name plus make error homogeneous in `comp-trampoline-compile' - * lisp/emacs-lisp/comp.el (comp-trampoline-compile): Fix typo - renaming `comp-tampoline-compile' -> `comp-trampoline-compile'. - Change error to be consistent. - (comp-subr-trampoline-install): Use `comp-trampoline-compile'. + * lisp/emacs-lisp/comp.el (comp-trampoline-compile): Fix typo + renaming `comp-tampoline-compile' -> `comp-trampoline-compile'. + Change error to be consistent. + (comp-subr-trampoline-install): Use `comp-trampoline-compile'. 2020-10-10 Eli Zaretskii @@ -58551,21 +58549,21 @@ 2020-10-07 Andrea Corallo - * Fix failure when eln-cache is removed (introduced by 4a1bb46260) + Fix failure when eln-cache is removed (introduced by 4a1bb46260) - * src/comp.c (make_directory_wrapper, make_directory_wrapper_1): - New functions. - (Fcomp_el_to_eln_filename): If base_dir is not - specified and we are searching across `comp-load-path' try to - create a directory if does not exists. + * src/comp.c (make_directory_wrapper, make_directory_wrapper_1): + New functions. + (Fcomp_el_to_eln_filename): If base_dir is not + specified and we are searching across `comp-load-path' try to + create a directory if does not exists. 2020-10-07 Andrea Corallo - * Fix some nits in comp.el + Fix some nits in comp.el - * lisp/emacs-lisp/comp.el (comp-spill-lap-function): Use - `cl-defmethod' where correct in place of `cl-defgeneric'. - (comp-tampoline-compile): Add missing #. + * lisp/emacs-lisp/comp.el (comp-spill-lap-function): Use + `cl-defmethod' where correct in place of `cl-defgeneric'. + (comp-tampoline-compile): Add missing #. 2020-10-07 Eli Zaretskii @@ -58602,18 +58600,18 @@ 2020-10-07 Andrea Corallo - * Do use echo area for async compilation started/finished messages + Do use echo area for async compilation started/finished messages - * lisp/emacs-lisp/comp.el (comp-run-async-workers) - (native-compile-async): Do not write into the echo area. + * lisp/emacs-lisp/comp.el (comp-run-async-workers) + (native-compile-async): Do not write into the echo area. 2020-10-07 Andrea Corallo - * Better libgccjit related error messaging during configure + Better libgccjit related error messaging during configure - * configure.ac: Distinguish the case when libgccjit is missing, - its headers are missing, or libgccjit is broken. Message the user - based on that. + * configure.ac: Distinguish the case when libgccjit is missing, + its headers are missing, or libgccjit is broken. Message the user + based on that. 2020-10-07 Lars Ingebrigtsen @@ -58736,11 +58734,11 @@ 2020-10-06 Andrea Corallo - * Native compiling do not target a directory with no write permission + Native compiling do not target a directory with no write permission - * src/comp.c (Fcomp_el_to_eln_filename): Check for write - permission while choosing the output directory in - `comp-eln-load-path'. + * src/comp.c (Fcomp_el_to_eln_filename): Check for write + permission while choosing the output directory in + `comp-eln-load-path'. 2020-10-06 Stefan Monnier @@ -58822,30 +58820,30 @@ 2020-10-05 Andrea Corallo - * Fix a test in test/lisp/subr-tests.el + Fix a test in test/lisp/subr-tests.el - * test/lisp/subr-tests.el (subr-tests-bug22027): Redefine - `read-string' with a lambda with the same number of arguments. + * test/lisp/subr-tests.el (subr-tests-bug22027): Redefine + `read-string' with a lambda with the same number of arguments. 2020-10-05 Andrea Corallo Add a test for primitive redefinition - * test/src/comp-tests.el (primitive-redefine): New test. - * test/src/comp-test-funcs.el (comp-test-primitive-redefine-f): - New function. + * test/src/comp-tests.el (primitive-redefine): New test. + * test/src/comp-test-funcs.el (comp-test-primitive-redefine-f): + New function. 2020-10-05 Andrea Corallo Make primitive redefinition effective through trampoline synthesis - * lisp/loadup.el (dump-mode): Set `comp-enable-subr-trampolines' - when finished bootstrap. - * src/data.c (Ffset): Call `comp-enable-subr-trampolines' when - redefining a subr. - * src/comp.c (syms_of_comp): Define `comp-subr-trampoline-install' - symbol. - (syms_of_comp): Define `comp-enable-subr-trampolines' variable. + * lisp/loadup.el (dump-mode): Set `comp-enable-subr-trampolines' + when finished bootstrap. + * src/data.c (Ffset): Call `comp-enable-subr-trampolines' when + redefining a subr. + * src/comp.c (syms_of_comp): Define `comp-subr-trampoline-install' + symbol. + (syms_of_comp): Define `comp-enable-subr-trampolines' variable. 2020-10-05 Andrea Corallo @@ -58993,13 +58991,13 @@ Make filename hashing compatible with self contained builds (bug#43532) - * Makefile.in (lispdirrel): Add replace template. - (epaths-force): Form correctly 'PATH_REL_LOADSEARCH' into epath.h - * configure.ac (lispdirrel): Define variable (relative path of the - lisp files from the installation directory). - * src/comp.c (Fcomp_el_to_eln_filename): Update algorithm not to - rely on 'PATH_DUMPLOADSEARCH' but on 'PATH_REL_LOADSEARCH'. - * src/epaths.in (PATH_REL_LOADSEARCH): Add macro template. + * Makefile.in (lispdirrel): Add replace template. + (epaths-force): Form correctly 'PATH_REL_LOADSEARCH' into epath.h + * configure.ac (lispdirrel): Define variable (relative path of the + lisp files from the installation directory). + * src/comp.c (Fcomp_el_to_eln_filename): Update algorithm not to + rely on 'PATH_DUMPLOADSEARCH' but on 'PATH_REL_LOADSEARCH'. + * src/epaths.in (PATH_REL_LOADSEARCH): Add macro template. 2020-10-04 Andrea Corallo @@ -59007,18 +59005,18 @@ 2020-10-04 Andrea Corallo - * Fix function description message for native compiled lisp functions + Fix function description message for native compiled lisp functions - * lisp/help-fns.el (help-fns-function-description-header): Fix - message. + * lisp/help-fns.el (help-fns-function-description-header): Fix + message. 2020-10-04 Andrea Corallo - * Fix two tests in help-fns-tests.el for native code + Fix two tests in help-fns-tests.el for native code - * test/lisp/help-fns-tests.el (help-fns-test-lisp-defun) - (help-fns-test-lisp-defsubst): Fix description string - for native compiled functions. + * test/lisp/help-fns-tests.el (help-fns-test-lisp-defun) + (help-fns-test-lisp-defsubst): Fix description string + for native compiled functions. 2020-10-04 Michael Albinus @@ -59112,44 +59110,44 @@ Use `advice-flet' in place of `cl-letf' to avoid primitive redefinition - * test/lisp/time-stamp-tests.el (with-time-stamp-system-name): Use - `advice-flet' to advice primitive avoiding redefinition. + * test/lisp/time-stamp-tests.el (with-time-stamp-system-name): Use + `advice-flet' to advice primitive avoiding redefinition. - * test/lisp/tempo-tests.el (tempo-p-element-test) - (tempo-P-element-test, tempo-r-element-test) - (tempo-s-element-test, tempo-r>-element-test): Likewise. + * test/lisp/tempo-tests.el (tempo-p-element-test) + (tempo-P-element-test, tempo-r-element-test) + (tempo-s-element-test, tempo-r>-element-test): Likewise. - * test/lisp/subr-tests.el (subr-tests-bug22027): Likewise. + * test/lisp/subr-tests.el (subr-tests-bug22027): Likewise. - * test/lisp/shadowfile-tests.el (shadow-test00-clusters) - (shadow-test01-sites, shadow-test06-literal-groups) - (shadow-test07-regexp-groups): Likewise. + * test/lisp/shadowfile-tests.el (shadow-test00-clusters) + (shadow-test01-sites, shadow-test06-literal-groups) + (shadow-test07-regexp-groups): Likewise. - * test/lisp/replace-tests.el (replace-tests-with-undo): Likewise. + * test/lisp/replace-tests.el (replace-tests-with-undo): Likewise. - * test/lisp/play/dissociate-tests.el - (dissociate-tests-dissociated-press): Likewise. + * test/lisp/play/dissociate-tests.el + (dissociate-tests-dissociated-press): Likewise. - * test/lisp/net/tramp-tests.el (tramp-test10-write-region) - (tramp-test21-file-links): Likewise. + * test/lisp/net/tramp-tests.el (tramp-test10-write-region) + (tramp-test21-file-links): Likewise. - * test/lisp/kmacro-tests.el (kmacro-tests-call-macro-hint-and-repeat) - (kmacro-tests-repeat-on-last-key) - (kmacro-tests-repeat-view-and-run) - (kmacro-tests-bind-to-key-with-key-sequence-in-use): Likewise. + * test/lisp/kmacro-tests.el (kmacro-tests-call-macro-hint-and-repeat) + (kmacro-tests-repeat-on-last-key) + (kmacro-tests-repeat-view-and-run) + (kmacro-tests-bind-to-key-with-key-sequence-in-use): Likewise. - * test/lisp/files-tests.el (files-tests-read-file-in-~): Likewise. + * test/lisp/files-tests.el (files-tests-read-file-in-~): Likewise. - * test/lisp/emacs-lisp/rmc-tests.el (test-read-multiple-choice): - Likewise. + * test/lisp/emacs-lisp/rmc-tests.el (test-read-multiple-choice): + Likewise. - * test/lisp/bookmark-tests.el (bookmark-test-bmenu-locate): - Likewise. + * test/lisp/bookmark-tests.el (bookmark-test-bmenu-locate): + Likewise. - * test/lisp/abbrev-tests.el - (inverse-add-abbrev-skips-trailing-nonword) - (inverse-add-abbrev-skips-trailing-nonword/positive-arg) - (inverse-add-abbrev-skips-trailing-nonword/negative-arg): Likewise. + * test/lisp/abbrev-tests.el + (inverse-add-abbrev-skips-trailing-nonword) + (inverse-add-abbrev-skips-trailing-nonword/positive-arg) + (inverse-add-abbrev-skips-trailing-nonword/negative-arg): Likewise. 2020-10-02 Andrea Corallo @@ -59159,7 +59157,7 @@ we define `advice-flet' to use instead as an easy `cl-letf' replacement. - * lisp/emacs-lisp/nadvice.el (advice-flet): New macro. + * lisp/emacs-lisp/nadvice.el (advice-flet): New macro. 2020-10-02 Alan Mackenzie @@ -59212,18 +59210,18 @@ 2020-10-02 Andrea Corallo - * When advising search in `comp-eln-load-path' the first writable dir + 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 (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. 2020-10-02 Andrea Corallo - * Fix 'incoherent dumped eln file' error when DUMP-METHOD=pbootstrap + Fix 'incoherent dumped eln file' error when DUMP-METHOD=pbootstrap - * src/Makefile.in ($(bootstrap_pdmp)): Add missing --bin-dest - --eln-dest flags. + * src/Makefile.in ($(bootstrap_pdmp)): Add missing --bin-dest + --eln-dest flags. 2020-10-02 Andrea Corallo @@ -59278,11 +59276,11 @@ Tag all native compiler tests and skip them in vanilla builds - * test/Makefile.in (SELECTOR_DEFAULT, SELECTOR_EXPENSIVE) - (SELECTOR_ALL): Define selectors for vanilla or nativecomp builds. - * test/src/comp-tests.el: Do not native compile test files on - vanilla. - (comp-deftest): New macro to define tests tagging as :nativecomp. + * test/Makefile.in (SELECTOR_DEFAULT, SELECTOR_EXPENSIVE) + (SELECTOR_ALL): Define selectors for vanilla or nativecomp builds. + * test/src/comp-tests.el: Do not native compile test files on + vanilla. + (comp-deftest): New macro to define tests tagging as :nativecomp. 2020-10-02 Lars Ingebrigtsen @@ -59410,13 +59408,11 @@ 2020-10-01 Michael R. Mauger - 2020-03-29 Michael R. Mauger - - * lisp/progmodes/sql.el (sql-add-product): Re-correct argument - spec. Previous change was due to my mistake; I have - resolved back to the prior behavior (Bug#39960). - * test/lisp/progmodes/sql-tests.el (sql-test-add-product): Added - test to insure I don't make the same mistake again. + * lisp/progmodes/sql.el (sql-add-product): Re-correct argument + spec. Previous change was due to my mistake; I have + resolved back to the prior behavior (Bug#39960). + * test/lisp/progmodes/sql-tests.el (sql-test-add-product): Added + test to insure I don't make the same mistake again. 2020-10-01 Boruch Baum @@ -59699,12 +59695,12 @@ 2020-09-30 Andrea Corallo - * Improve some docstring in src/comp.c + Improve some docstring in src/comp.c - * src/comp.c (Fcomp_el_to_eln_filename) - (Fcomp__compile_ctxt_to_file): Improve docstring. - (Fcomp__compile_ctxt_to_file): Rename 'file_name' -> 'filename'. - (Fnative_comp_available_p): Improve docstring. + * src/comp.c (Fcomp_el_to_eln_filename) + (Fcomp__compile_ctxt_to_file): Improve docstring. + (Fcomp__compile_ctxt_to_file): Rename 'file_name' -> 'filename'. + (Fnative_comp_available_p): Improve docstring. 2020-09-30 Eli Zaretskii @@ -59895,14 +59891,14 @@ 2020-09-29 Andrea Corallo - * Some clean-up in comp.el + Some clean-up in comp.el - * lisp/emacs-lisp/comp.el (comp-emit-cond-jump, comp-emit-switch) - (comp-limplify-block, comp-compute-edges) - (comp-ssa-rename, comp-fwprop*, comp-effective-async-max-jobs) - (comp-run-async-workers): Respect max 80 columns. - (batch-byte-native-compile-for-bootstrap): Improve doc + remove - some now unnecessary error handling. + * lisp/emacs-lisp/comp.el (comp-emit-cond-jump, comp-emit-switch) + (comp-limplify-block, comp-compute-edges) + (comp-ssa-rename, comp-fwprop*, comp-effective-async-max-jobs) + (comp-run-async-workers): Respect max 80 columns. + (batch-byte-native-compile-for-bootstrap): Improve doc + remove + some now unnecessary error handling. 2020-09-29 Lars Ingebrigtsen @@ -59948,9 +59944,9 @@ Rename in docstrings "non nil" into "non-nil" - * lisp/emacs-lisp/comp.el: Rename non nil -> non-nil in doc. + * lisp/emacs-lisp/comp.el: Rename non nil -> non-nil in doc. - * src/comp.c: Likewise. + * src/comp.c: Likewise. 2020-09-28 Andrea Corallo @@ -59960,21 +59956,21 @@ Clean-up some now unnecessary diff against master - * lisp/emacs-lisp/autoload.el (update-directory-autoloads): - .eln files have been moved so remove the '.eln' match. + * lisp/emacs-lisp/autoload.el (update-directory-autoloads): + .eln files have been moved so remove the '.eln' match. - * lisp/emacs-lisp/bytecomp.el (byte-compile-refresh-preloaded): - Likewise. + * lisp/emacs-lisp/bytecomp.el (byte-compile-refresh-preloaded): + Likewise. - * lisp/emacs-lisp/find-func.el (find-library-suffixes): Clean-up - as '.eln' is no more in `load-suffixes'. + * lisp/emacs-lisp/find-func.el (find-library-suffixes): Clean-up + as '.eln' is no more in `load-suffixes'. - * lisp/help-fns.el (find-lisp-object-file-name): Clean-up as - `symbol-file' will return the '.elc' file. + * lisp/help-fns.el (find-lisp-object-file-name): Clean-up as + `symbol-file' will return the '.elc' file. - * src/lread.c (Fget_load_suffixes): Remove logic as '.eln' is not - anymore in load-suffixes. - (openp): Two spaces. + * src/lread.c (Fget_load_suffixes): Remove logic as '.eln' is not + anymore in load-suffixes. + (openp): Two spaces. 2020-09-28 Michael Albinus @@ -60762,10 +60758,10 @@ Rename comp--subr-safe-advice -> comp-subr-safe-advice - * lisp/emacs-lisp/comp.el (comp-subr-safe-advice): Rename - comp--subr-safe-advice -> comp-subr-safe-advice. - * lisp/emacs-lisp/nadvice.el (advice--add-function): Likewise. - * lisp/emacs-lisp/advice.el (ad-add-advice): Likewise. + * lisp/emacs-lisp/comp.el (comp-subr-safe-advice): Rename + comp--subr-safe-advice -> comp-subr-safe-advice. + * lisp/emacs-lisp/nadvice.el (advice--add-function): Likewise. + * lisp/emacs-lisp/advice.el (ad-add-advice): Likewise. 2020-09-24 Andrea Corallo @@ -60775,12 +60771,12 @@ Do not install a subr trampoline twice - * src/comp.c (syms_of_comp): Define and initialize - 'Vcomp_installed_trampolines_h'. - (Fcomp__install_trampoline): Fill 'Vcomp_installed_trampolines_h' - * lisp/emacs-lisp/comp.el (comp--subr-safe-advice): Make use of - `comp-installed-trampolines-h' to guard against installing a - trampoline twice. + * src/comp.c (syms_of_comp): Define and initialize + 'Vcomp_installed_trampolines_h'. + (Fcomp__install_trampoline): Fill 'Vcomp_installed_trampolines_h' + * lisp/emacs-lisp/comp.el (comp--subr-safe-advice): Make use of + `comp-installed-trampolines-h' to guard against installing a + trampoline twice. 2020-09-24 Andrea Corallo @@ -60790,30 +60786,30 @@ Add a test for primitive advicing effectiveness - * test/src/comp-test-funcs.el (comp-test-primitive-advice-f): New - function. - * test/src/comp-tests.el (comp-test-primitive-advice): New test. + * test/src/comp-test-funcs.el (comp-test-primitive-advice-f): New + function. + * test/src/comp-tests.el (comp-test-primitive-advice): New test. 2020-09-24 Andrea Corallo Call `comp--subr-safe-advice' from the advice machinery - * lisp/emacs-lisp/nadvice.el (advice--add-function): Call - `comp--subr-safe-advice' when necessary. + * lisp/emacs-lisp/nadvice.el (advice--add-function): Call + `comp--subr-safe-advice' when necessary. - * lisp/emacs-lisp/advice.el (ad-add-advice): Likewhise. + * lisp/emacs-lisp/advice.el (ad-add-advice): Likewhise. 2020-09-24 Andrea Corallo - * Add `comp--subr-safe-advice' entry point + Add `comp--subr-safe-advice' entry point Add a Lisp side entry-point to be called to make primitive adivicing effective. - * lisp/emacs-lisp/comp.el (comp-trampoline-sym) - (comp-trampoline-filename): New substs. - (comp-make-lambda-list-from-subr, comp-search-trampoline) - (comp-tampoline-compile): New functions + * lisp/emacs-lisp/comp.el (comp-trampoline-sym) + (comp-trampoline-filename): New substs. + (comp-make-lambda-list-from-subr, comp-search-trampoline) + (comp-tampoline-compile): New functions 2020-09-24 Eric Abrahamsen @@ -60839,20 +60835,20 @@ 2020-09-23 Andrea Corallo - * Add `comp--install-trampoline' machinery + Add `comp--install-trampoline' machinery - * src/comp.c (Fcomp__install_trampoline): New function to - install a subr trampoline into the function relocation table. - Once this is done any call from native compiled Lisp to the - related primitive will go through the `funcall' trampoline - making advicing effective. + * src/comp.c (Fcomp__install_trampoline): New function to + install a subr trampoline into the function relocation table. + Once this is done any call from native compiled Lisp to the + related primitive will go through the `funcall' trampoline + making advicing effective. 2020-09-23 Andrea Corallo Make CHECK_SUBR public - * src/data.c (CHECK_SUBR): Move from here to... - * src/lisp.h (CHECK_SUBR): ...to here. + * src/data.c (CHECK_SUBR): Move from here to... + * src/lisp.h (CHECK_SUBR): ...to here. 2020-09-23 Stefan Kangas @@ -61005,11 +61001,11 @@ 2020-09-22 Andrea Corallo - * Fix MacOS Emacs.app installation (bug#43532) + Fix MacOS Emacs.app installation (bug#43532) - * src/comp.c (Fcomp_el_to_eln_filename): Adapt the filename - hashing algorithm to allow for producing a MacOS self-contained - Emacs.app. + * src/comp.c (Fcomp_el_to_eln_filename): Adapt the filename + hashing algorithm to allow for producing a MacOS self-contained + Emacs.app. 2020-09-22 David Reitter @@ -61083,20 +61079,20 @@ 2020-09-21 Andrea Corallo - * Make use of use of `subr-primitive-p' in `find-function-library' + Make use of use of `subr-primitive-p' in `find-function-library' - * lisp/emacs-lisp/find-func.el (find-function-library): Use - `subr-primitive-p'. + * lisp/emacs-lisp/find-func.el (find-function-library): Use + `subr-primitive-p'. 2020-09-21 Andrea Corallo - * Sandbox syncronous libgccjit invocation on interactive sessions + Sandbox syncronous libgccjit invocation on interactive sessions Avoid unnecessary memory fragmentation/leakeage - * lisp/emacs-lisp/comp.el (comp-final1): New function. - (comp-final): Invoke `comp-final1' in a child process if in an - interactive session or directly otherwhise. + * lisp/emacs-lisp/comp.el (comp-final1): New function. + (comp-final): Invoke `comp-final1' in a child process if in an + interactive session or directly otherwhise. 2020-09-21 Andrea Corallo @@ -61658,28 +61654,24 @@ * doc/lispref/syntax.texi (Syntax Properties): Amend the description of the variable. -2020-09-19 Drew Adams - - Document and extend menu-bar-make-toggle some - - 2020-09-19 Lars Ingebrigtsen +2020-09-19 Lars Ingebrigtsen - * lisp/menu-bar.el (menu-bar-showhide-fringe-menu): Adjust caller. - (menu-bar-search-options-menu): Ditto. - (menu-bar-options-menu): Ditto. - (menu-bar-options-menu): Ditto. + * lisp/menu-bar.el (menu-bar-showhide-fringe-menu): Adjust caller. + (menu-bar-search-options-menu): Ditto. + (menu-bar-options-menu): Ditto. + (menu-bar-options-menu): Ditto. - * lisp/progmodes/gdb-mi.el (menu): Ditto. + * lisp/progmodes/gdb-mi.el (menu): Ditto. - * lisp/emacs-lisp/find-func.el (find-function-regexp): Add - menu-bar-make-toggle-command. + * lisp/emacs-lisp/find-func.el (find-function-regexp): Add + menu-bar-make-toggle-command. - * lisp/menu-bar.el (menu-bar-make-toggle): Compatibility wrapper. + * lisp/menu-bar.el (menu-bar-make-toggle): Compatibility wrapper. - 2020-09-19 Drew Adams +2020-09-19 Drew Adams - * lisp/menu-bar.el (menu-bar-make-toggle-command): Add doc string - and allow setting all keywords (bug#17954). + * lisp/menu-bar.el (menu-bar-make-toggle-command): Add doc string + and allow setting all keywords (bug#17954). 2020-09-19 Lennart Borgman @@ -62203,14 +62195,14 @@ 2020-09-15 Andrea Corallo - * Better error handling after calling 'gcc_jit_context_compile_to_file' + Better error handling after calling 'gcc_jit_context_compile_to_file' Tipically errors are catched in 'compile_function' but in case libgccjit throw an error only afterwards while compiling the whole compilation unit we have to report it correctly. - * src/comp.c (Fcomp__compile_ctxt_to_file): Catch libgccjit - errors after calling 'gcc_jit_context_compile_to_file'. + * src/comp.c (Fcomp__compile_ctxt_to_file): Catch libgccjit + errors after calling 'gcc_jit_context_compile_to_file'. 2020-09-14 Andrea Corallo @@ -62218,18 +62210,18 @@ 2020-09-14 Andrea Corallo - * Fix free function compilation load process. + Fix free function compilation load process. - * lisp/emacs-lisp/comp.el (comp-clean-up-stale-eln): Do not crash - if the eln filename is not canonical (tmp file or manual load). + * lisp/emacs-lisp/comp.el (comp-clean-up-stale-eln): Do not crash + if the eln filename is not canonical (tmp file or manual load). 2020-09-14 Andrea Corallo - * Add gv-setters for compiler hints + Add gv-setters for compiler hints - * lisp/emacs-lisp/comp.el (comp-hint-fixnum, comp-hint-cons): Add - gv-setters so type hinted expressions can be used as places. - Read we can now have like: '(cl-incf (cl-the fixnum x))'. + * lisp/emacs-lisp/comp.el (comp-hint-fixnum, comp-hint-cons): Add + gv-setters so type hinted expressions can be used as places. + Read we can now have like: '(cl-incf (cl-the fixnum x))'. 2020-09-14 Andrea Corallo @@ -62237,12 +62229,12 @@ 2020-09-14 Andrea Corallo - * Remove type check emission from type hints low level primitives + Remove type check emission from type hints low level primitives These have to be emitted by higher level primitves as `cl-the'. - * lisp/emacs-lisp/comp.el (comp-hint-fixnum, comp-hint-cons): Do - not emit type checks. + * lisp/emacs-lisp/comp.el (comp-hint-fixnum, comp-hint-cons): Do + not emit type checks. 2020-09-14 Andrea Corallo @@ -62253,11 +62245,11 @@ 2020-09-14 Andrea Corallo - * Add 'cl-optimize' as function declaration + Add 'cl-optimize' as function declaration - * lisp/emacs-lisp/cl-macs.el: Register cl-optimize into - `defun-declarations-alist' and `macro-declarations-alist'. - (cl--optimize): New function to serve 'cl-optimize' declaration. + * lisp/emacs-lisp/cl-macs.el: Register cl-optimize into + `defun-declarations-alist' and `macro-declarations-alist'. + (cl--optimize): New function to serve 'cl-optimize' declaration. 2020-09-14 Andrea Corallo @@ -62432,11 +62424,11 @@ 2020-09-13 Andrea Corallo - * Fix defsbust declare effectiveness introduced by 80d7f710 (Bug#43280). + Fix defsbust declare effectiveness introduced by 80d7f710 (Bug#43280). - * lisp/emacs-lisp/byte-run.el (defsubst): Do not add a speed - declaration as this breaks a pre existing ones if present but - rather calls directly `byte-run--set-speed'. + * lisp/emacs-lisp/byte-run.el (defsubst): Do not add a speed + declaration as this breaks a pre existing ones if present but + rather calls directly `byte-run--set-speed'. 2020-09-13 Lars Ingebrigtsen @@ -62922,17 +62914,17 @@ 2020-09-11 Andrea Corallo - * Make use of new 'gcc_jit_global_set_initializer' entry point + Make use of new 'gcc_jit_global_set_initializer' entry point Use this brand new entry point to avoid the current workaround and its load-time memcpys. - * src/comp.c (gcc_jit_global_set_initializer): Add to the dynamic - load machinery. - (static_obj_t): Remove const qualifier from the data field. - (emit_static_object): Make use of 'gcc_jit_global_set_initializer' - when available. - (load_static_obj): Use the blob for loading if that was emitted. + * src/comp.c (gcc_jit_global_set_initializer): Add to the dynamic + load machinery. + (static_obj_t): Remove const qualifier from the data field. + (emit_static_object): Make use of 'gcc_jit_global_set_initializer' + when available. + (load_static_obj): Use the blob for loading if that was emitted. 2020-09-11 Lars Ingebrigtsen @@ -62985,11 +62977,11 @@ 2020-09-11 Andrea Corallo - * Update gitlab CI yml file + Update gitlab CI yml file - * .gitlab-ci.yml (test-native-bootstrap-speed0) - (test-native-bootstrap-speed1, test-native-bootstrap-speed2): - Update for new make invokation. + * .gitlab-ci.yml (test-native-bootstrap-speed0) + (test-native-bootstrap-speed1, test-native-bootstrap-speed2): + Update for new make invokation. 2020-09-11 Andrea Corallo @@ -62998,11 +62990,11 @@ To Ahead of Time compile the whole Emacs distro define NATIVE_FULL_AOT when invoking make ex: 'make NATIVE_FULL_AOT=1'. - * lisp/Makefile.in (NATIVE_SKIP_NONDUMP): New variable. - (compile-main): Use it + rename NATIVE_DISABLE -> NATIVE_DISABLED. - * lisp/emacs-lisp/comp.el - (batch-byte-native-compile-for-bootstrap): Rename NATIVE_DISABLE - -> NATIVE_DISABLED. + * lisp/Makefile.in (NATIVE_SKIP_NONDUMP): New variable. + (compile-main): Use it + rename NATIVE_DISABLE -> NATIVE_DISABLED. + * lisp/emacs-lisp/comp.el + (batch-byte-native-compile-for-bootstrap): Rename NATIVE_DISABLE + -> NATIVE_DISABLED. 2020-09-11 Eli Zaretskii @@ -63208,10 +63200,10 @@ 2020-09-10 Andrea Corallo - * Guard against trying to rename files into eln sys directory + Guard against trying to rename files into eln sys directory - * src/comp.c (file_in_eln_sys_dir): New function. - (Fnative_elisp_load): Make use of. + * src/comp.c (file_in_eln_sys_dir): New function. + (Fnative_elisp_load): Make use of. 2020-09-10 Andrea Corallo @@ -63219,10 +63211,10 @@ 2020-09-10 Andrea Corallo - * Fix rename file error when reloading the same file from an sys eln dir. + Fix rename file error when reloading the same file from an sys eln dir. - * src/comp.c (Fnative_elisp_load): Don't rename files we don't - have the permission for. + * src/comp.c (Fnative_elisp_load): Don't rename files we don't + have the permission for. 2020-09-10 Andrea Corallo @@ -63551,17 +63543,17 @@ 2020-09-08 Andrea Corallo - * Name temp eln files as .eln.tmp so we can't clean-up them mistakenly. + Name temp eln files as .eln.tmp so we can't clean-up them mistakenly. - * src/comp.c (Fcomp__compile_ctxt_to_file): Postfix temporary eln - files as .eln.tmp. + * src/comp.c (Fcomp__compile_ctxt_to_file): Postfix temporary eln + files as .eln.tmp. 2020-09-07 Andrea Corallo - * Do not crash compilation if user eln-cache wasn't already created. + Do not crash compilation if user eln-cache wasn't already created. - * lisp/emacs-lisp/comp.el (comp-clean-up-stale-eln): Guard - against calling `directory-files' on non existent directories. + * lisp/emacs-lisp/comp.el (comp-clean-up-stale-eln): Guard + against calling `directory-files' on non existent directories. 2020-09-07 Lars Ingebrigtsen @@ -63841,43 +63833,43 @@ loaded by multiple Emacs sessions the last one being closed should delete it. - * lisp/emacs-lisp/comp.el (comp-clean-up-stale-eln): New function. - (comp-delete-or-replace-file): Rename from - `comp--replace-output-file' and update so it can be used for - replacing or deleting shared libs safetly. - - * lisp/emacs-lisp/package.el (package--delete-directory): When - native compiled just call `comp-clean-up-stale-eln' for each - eln file we want to clean-up. - - * src/alloc.c (cleanup_vector): Call directly the dynlib_close. - - * src/comp.c (syms_of_comp): Update for comp_u->cfile removal. - Make 'all_loaded_comp_units_h' key-value weak as now the key will - be the filename. - (load_comp_unit): Register the compilation unit only when the load - is fully completed. - (register_native_comp_unit): Make the key of - all_loaded_comp_units_h the load filename. - (eln_load_path_final_clean_up): New function. - (dispose_comp_unit) - (finish_delayed_disposal_of_comp_units) - (dispose_all_remaining_comp_units) - (clean_package_user_dir_of_old_comp_units): Remove. - (Fcomp__compile_ctxt_to_file): Update for - `comp--replace-output-file' -> `comp-delete-or-replace-file' - rename. - - * src/comp.h (dispose_comp_unit) - (finish_delayed_disposal_of_comp_units) - (dispose_all_remaining_comp_units) - (clean_package_user_dir_of_old_comp_units): Remove. - (eln_load_path_final_clean_up): Add. - (struct Lisp_Native_Comp_Unit): Remove cfile field. - - * src/emacs.c (Fkill_emacs): Call 'eln_load_path_final_clean_up'. - - * src/pdumper.c (dump_do_dump_relocation): Do not set comp_u->cfile. + * lisp/emacs-lisp/comp.el (comp-clean-up-stale-eln): New function. + (comp-delete-or-replace-file): Rename from + `comp--replace-output-file' and update so it can be used for + replacing or deleting shared libs safetly. + + * lisp/emacs-lisp/package.el (package--delete-directory): When + native compiled just call `comp-clean-up-stale-eln' for each + eln file we want to clean-up. + + * src/alloc.c (cleanup_vector): Call directly the dynlib_close. + + * src/comp.c (syms_of_comp): Update for comp_u->cfile removal. + Make 'all_loaded_comp_units_h' key-value weak as now the key will + be the filename. + (load_comp_unit): Register the compilation unit only when the load + is fully completed. + (register_native_comp_unit): Make the key of + all_loaded_comp_units_h the load filename. + (eln_load_path_final_clean_up): New function. + (dispose_comp_unit) + (finish_delayed_disposal_of_comp_units) + (dispose_all_remaining_comp_units) + (clean_package_user_dir_of_old_comp_units): Remove. + (Fcomp__compile_ctxt_to_file): Update for + `comp--replace-output-file' -> `comp-delete-or-replace-file' + rename. + + * src/comp.h (dispose_comp_unit) + (finish_delayed_disposal_of_comp_units) + (dispose_all_remaining_comp_units) + (clean_package_user_dir_of_old_comp_units): Remove. + (eln_load_path_final_clean_up): Add. + (struct Lisp_Native_Comp_Unit): Remove cfile field. + + * src/emacs.c (Fkill_emacs): Call 'eln_load_path_final_clean_up'. + + * src/pdumper.c (dump_do_dump_relocation): Do not set comp_u->cfile. 2020-09-06 Basil L. Contovounesios @@ -64050,7 +64042,7 @@ 2020-09-06 Andrea Corallo - * Makefile.in (ELN_DESTDIR): Add ${version}/ to it. + Makefile.in (ELN_DESTDIR): Add ${version}/ to it. Merge remote-tracking branch 'savannah/master' into HEAD @@ -64334,20 +64326,20 @@ Add to the directory name used to disambiguate the eln compatibility the Emacs version to have it more user friendly. - * Makefile.in (clean, install-eln): Rename eln-cache into - native-lisp. - (ELN_DESTDIR): Move from - '$(DESTDIR)${libexecdir}/emacs/${version}/${configuration}/' to - '$(DESTDIR)${libdir}/emacs/'. + * Makefile.in (clean, install-eln): Rename eln-cache into + native-lisp. + (ELN_DESTDIR): Move from + '$(DESTDIR)${libexecdir}/emacs/${version}/${configuration}/' to + '$(DESTDIR)${libdir}/emacs/'. - * lisp/loadup.el: Update for comp-native-path-postfix -> - comp-native-version-dir rename. + * lisp/loadup.el: Update for comp-native-path-postfix -> + comp-native-version-dir rename. - * src/comp.c (syms_of_comp): Rename eln-cache -> native-lisp. - (syms_of_comp, Fcomp_el_to_eln_filename): Rename - comp-native-path-postfix -> comp-native-version-dir. - (hash_native_abi): Rework and add emacs-version to - comp-native-version-dir. + * src/comp.c (syms_of_comp): Rename eln-cache -> native-lisp. + (syms_of_comp, Fcomp_el_to_eln_filename): Rename + comp-native-path-postfix -> comp-native-version-dir. + (hash_native_abi): Rework and add emacs-version to + comp-native-version-dir. 2020-09-04 Lars Ingebrigtsen @@ -64744,13 +64736,13 @@ 2020-09-01 Andrea Corallo - * Fix `load-filename' for installed instance (bug#43089) + Fix `load-filename' for installed instance (bug#43089) - * src/lread.c (parent_directory): Remove function as now - unnecessary. - (compute_found_effective): New function. - (Fload): Make use of 'compute_found_effective' and fix - `load-filename' computation. + * src/lread.c (parent_directory): Remove function as now + unnecessary. + (compute_found_effective): New function. + (Fload): Make use of 'compute_found_effective' and fix + `load-filename' computation. 2020-09-01 Robert Pluim @@ -64801,12 +64793,12 @@ Rework native compiled lisp/d lambda list accessor - * lisp/help.el (help-function-arglist): Logic update for new - 'Fsubr_native_lambda_list'. - * src/data.c (Fsubr_native_dyn_p): Remove. - (Fsubr_native_lambda_list): Return t when the input is not a - compiled lisp/d subr. - (syms_of_data): Update for 'Fsubr_native_dyn_p' removal. + * lisp/help.el (help-function-arglist): Logic update for new + 'Fsubr_native_lambda_list'. + * src/data.c (Fsubr_native_dyn_p): Remove. + (Fsubr_native_lambda_list): Return t when the input is not a + compiled lisp/d subr. + (syms_of_data): Update for 'Fsubr_native_dyn_p' removal. 2020-08-31 Andrea Corallo @@ -64816,13 +64808,13 @@ Fix describe function arglist for native compiled lisp/d (bug#42572) - * lisp/help.el (help-function-arglist): Handle the case of native - compiled lisp/d. + * lisp/help.el (help-function-arglist): Handle the case of native + compiled lisp/d. - * src/data.c (syms_of_data): Register new subrs. - (Fsubr_native_dyn_p, Fsubr_native_lambda_list): New primitives. + * src/data.c (syms_of_data): Register new subrs. + (Fsubr_native_dyn_p, Fsubr_native_lambda_list): New primitives. - * test/src/comp-tests.el (comp-tests-dynamic-help-arglist): New test. + * test/src/comp-tests.el (comp-tests-dynamic-help-arglist): New test. 2020-08-31 Stefan Kangas @@ -65075,10 +65067,10 @@ 2020-08-30 Andrea Corallo - * Store raw documentation during native compilation (bug#42974) + Store raw documentation during native compilation (bug#42974) - * lisp/emacs-lisp/comp.el (comp-spill-lap-function) - (comp-intern-func-in-ctxt): Use raw documentation. + * lisp/emacs-lisp/comp.el (comp-spill-lap-function) + (comp-intern-func-in-ctxt): Use raw documentation. 2020-08-30 Stefan Kangas @@ -65156,11 +65148,11 @@ Have .elc files in `load-history' when loading native code (bug#43089) - * src/lread.c (Fload): Add the corresponding .elc file to - `load-history' when loading native code. + * src/lread.c (Fload): Add the corresponding .elc file to + `load-history' when loading native code. - * lisp/subr.el (eval-after-load): Use `load-file-name' instead of - `load-true-file-name'. + * lisp/subr.el (eval-after-load): Use `load-file-name' instead of + `load-true-file-name'. 2020-08-29 João Távora @@ -65176,11 +65168,11 @@ 2020-08-29 Andrea Corallo - * Back using `load-file-name' when reading '#$' (bug#42961) + Back using `load-file-name' when reading '#$' (bug#42961) - * src/lread.c (read1, read_list): Use again load-file-name when - reading '#$'. - (syms_of_lread): Update `load-file-name' doc. + * src/lread.c (read1, read_list): Use again load-file-name when + reading '#$'. + (syms_of_lread): Update `load-file-name' doc. 2020-08-29 Ulrich Müller @@ -65576,20 +65568,20 @@ 2020-08-26 Andrea Corallo - * Init gcc_jit_context_add_driver_option as optional + Init gcc_jit_context_add_driver_option as optional - * src/comp.c (init_gccjit_functions): Use LOAD_DLL_FN_OPT to init - 'gcc_jit_context_add_driver_option' as this is optional. + * src/comp.c (init_gccjit_functions): Use LOAD_DLL_FN_OPT to init + 'gcc_jit_context_add_driver_option' as this is optional. 2020-08-26 Andrea Corallo - * Rename comp-native-driver-options-available-p + Rename comp-native-driver-options-available-p - * src/comp.c (Fcomp_native_driver_options_effective_p) - Rename plus better doc. - (add_driver_options, syms_of_comp): Rename - `comp-native-driver-options-available-p' into - comp-native-driver-options-effective-p. + * src/comp.c (Fcomp_native_driver_options_effective_p) + Rename plus better doc. + (add_driver_options, syms_of_comp): Rename + `comp-native-driver-options-available-p' into + comp-native-driver-options-effective-p. 2020-08-26 Andrea Corallo @@ -65604,10 +65596,10 @@ 2020-08-26 Andrea Corallo - * Improve 'add_driver_options' + Improve 'add_driver_options' - * src/comp.c (add_driver_options): Use - load_gccjit_if_necessary and FOR_EACH_TAIL + GNU style. + * src/comp.c (add_driver_options): Use + load_gccjit_if_necessary and FOR_EACH_TAIL + GNU style. 2020-08-26 Andreas Fuchs @@ -66309,11 +66301,11 @@ 2020-08-23 Andrea Corallo - * A cc-mode fix to be compiled correctly once installed + A cc-mode fix to be compiled correctly once installed - * lisp/progmodes/cc-bytecomp.el (cc-bytecomp-load): If cc-mode - is not compiled during the initial build (read - NATIVE_FAST_BOOT) it will be when already in el.gz form. + * lisp/progmodes/cc-bytecomp.el (cc-bytecomp-load): If cc-mode + is not compiled during the initial build (read + NATIVE_FAST_BOOT) it will be when already in el.gz form. 2020-08-23 Andrea Corallo @@ -66324,25 +66316,25 @@ /absolute/path/filename.el + content -> eln-cache/filename-path_hash-content_hash.eln - * src/lread.c (maybe_swap_for_eln): Always call - Fcomp_el_to_eln_filename on an existing source file. + * src/lread.c (maybe_swap_for_eln): Always call + Fcomp_el_to_eln_filename on an existing source file. - * src/comp.c (md5.h, sysstdio.h, zlib.h): New include. - (comp_hash_string): Use md5 instead of sha512. - (MD5_BLOCKSIZE): New macro. - (accumulate_and_process_md5, final_process_md5, md5_gz_stream) - (comp_hash_source_file): New functions. - (Fcomp_el_to_eln_filename): Rework for hasing using also source - file content. + * src/comp.c (md5.h, sysstdio.h, zlib.h): New include. + (comp_hash_string): Use md5 instead of sha512. + (MD5_BLOCKSIZE): New macro. + (accumulate_and_process_md5, final_process_md5, md5_gz_stream) + (comp_hash_source_file): New functions. + (Fcomp_el_to_eln_filename): Rework for hasing using also source + file content. - * src/lread.c (maybe_swap_for_eln): Rename el_name -> src_name as - this can be also a have .el.gz extention. + * src/lread.c (maybe_swap_for_eln): Rename el_name -> src_name as + this can be also a have .el.gz extention. 2020-08-23 Andrea Corallo - * Import lib/af_alg.h from gnulib + Import lib/af_alg.h from gnulib - * lib/af_alg.h: New file. + * lib/af_alg.h: New file. 2020-08-23 Andrea Corallo @@ -66870,10 +66862,10 @@ deleted!). To prevent this scenario the last modification time of the source file is included in the hashing algorithm. - * src/comp.c (Fcomp_el_to_eln_filename): Update hashing algo to - include the source last modification date. - * src/lread.c (maybe_swap_for_eln): Do not check for eln newer - then elc as this is now unnecessary. + * src/comp.c (Fcomp_el_to_eln_filename): Update hashing algo to + include the source last modification date. + * src/lread.c (maybe_swap_for_eln): Do not check for eln newer + then elc as this is now unnecessary. 2020-08-19 Andrea Corallo @@ -67449,8 +67441,8 @@ * Fix async compilation `comp-eln-load-path' effectiveness (bug#42909) - * lisp/emacs-lisp/comp.el (comp-run-async-workers): Forward - `comp-eln-load-path' to async workers. + * lisp/emacs-lisp/comp.el (comp-run-async-workers): Forward + `comp-eln-load-path' to async workers. 2020-08-18 Lars Ingebrigtsen @@ -67525,17 +67517,17 @@ 2020-08-17 Andrea Corallo - * Improve eln filename hashing + Improve eln filename hashing Make eln filename hashing logic insensitive to the installation process. - * src/comp.c (epaths.h): New include to have PATH_DUMPLOADSEARCH, - PATH_LOADSEARCH definitions. - (loadsearch_re_list): New static var. - (Fcomp_el_to_eln_filename): Update logic to have the eln hashing - insensitive to the installation process. - (syms_of_comp): GC protect 'loadsearch_re_list'. + * src/comp.c (epaths.h): New include to have PATH_DUMPLOADSEARCH, + PATH_LOADSEARCH definitions. + (loadsearch_re_list): New static var. + (Fcomp_el_to_eln_filename): Update logic to have the eln hashing + insensitive to the installation process. + (syms_of_comp): GC protect 'loadsearch_re_list'. 2020-08-17 Andrea Corallo @@ -67543,21 +67535,21 @@ 2020-08-17 Andrea Corallo - * Introduce `load-no-native' + Introduce `load-no-native' Given load loads automatically a .eln in place of a .elc we need a way to force the .elc load in the case we really want it. - * src/lread.c (syms_of_lread): Define `load-no-native'. - (maybe_swap_for_eln): Make use of. + * src/lread.c (syms_of_lread): Define `load-no-native'. + (maybe_swap_for_eln): Make use of. 2020-08-17 Andrea Corallo - * Remove a false permission related error while native compiling + Remove a false permission related error while native compiling - * lisp/emacs-lisp/bytecomp.el (byte-compile-file): Do not crash if - native compiling we have no permission to create the .elc - file. We are not creating it. + * lisp/emacs-lisp/bytecomp.el (byte-compile-file): Do not crash if + native compiling we have no permission to create the .elc + file. We are not creating it. 2020-08-17 Andrea Corallo @@ -67565,86 +67557,86 @@ This is needed for installed instances compiled with NATIVE_FAST_BOOT - * src/comp.c (maybe_defer_native_compilation): Search for .el.gz - too as a source if the .el is not found. - (Fcomp_el_to_eln_filename): Remove the .gz in case to - generate the hash. + * src/comp.c (maybe_defer_native_compilation): Search for .el.gz + too as a source if the .el is not found. + (Fcomp_el_to_eln_filename): Remove the .gz in case to + generate the hash. - * lisp/emacs-lisp/comp.el (comp-valid-source-re): New defconst. - (comp-run-async-workers, native-compile-async): Make use of - `comp-valid-source-re'. + * lisp/emacs-lisp/comp.el (comp-valid-source-re): New defconst. + (comp-run-async-workers, native-compile-async): Make use of + `comp-valid-source-re'. 2020-08-17 Andrea Corallo Make install target functional for new eln-cache directory arrangement - * src/comp.h (fixup_eln_load_path): New extern. + * src/comp.h (fixup_eln_load_path): New extern. - * src/comp.c (fixup_eln_load_path): New function. + * src/comp.c (fixup_eln_load_path): New function. - * src/pdumper.c (dump_do_dump_relocation): Update to make use of - 'fixup_eln_load_path'. + * src/pdumper.c (dump_do_dump_relocation): Update to make use of + 'fixup_eln_load_path'. - * lisp/loadup.el: Update to store in the compilation unit the - correct eln-cache installed path. Rename --lisp-dest -> --eln-dest - and. + * lisp/loadup.el: Update to store in the compilation unit the + correct eln-cache installed path. Rename --lisp-dest -> --eln-dest + and. - * Makefile.in: Pass the eln destination directory to - src/Makefile. Rename LISP_DESTDIR -> ELN_DESTDIR. - (ELN_DESTDIR): Define. - (install-eln): New target. - (install): Add install-eln as prerequisite. + * Makefile.in: Pass the eln destination directory to + src/Makefile. Rename LISP_DESTDIR -> ELN_DESTDIR. + (ELN_DESTDIR): Define. + (install-eln): New target. + (install): Add install-eln as prerequisite. - * src/Makefile.in: Rename --lisp-dest -> --eln-dest and - LISP_DESTDIR -> ELN_DESTDIR. + * src/Makefile.in: Rename --lisp-dest -> --eln-dest and + LISP_DESTDIR -> ELN_DESTDIR. 2020-08-17 Andrea Corallo - * Deferred compilation must always compile despite source file timestamp + Deferred compilation must always compile despite source file timestamp - * lisp/emacs-lisp/comp.el (comp-run-async-workers): Always compile - if load is set. + * lisp/emacs-lisp/comp.el (comp-run-async-workers): Always compile + if load is set. 2020-08-17 Andrea Corallo - * Do not fail if more then one level of directories has to be created + Do not fail if more then one level of directories has to be created - * lisp/emacs-lisp/comp.el (native-compile-async): Call - make-directory if necessary. + * lisp/emacs-lisp/comp.el (native-compile-async): Call + make-directory if necessary. 2020-08-17 Andrea Corallo - * Prevent recursive load + Prevent recursive load Prevent autoload to kicks in while running `native-compile-async'. Autoload cannot be used safely by functions serving deferred compilation as a circular load can be triggered if the dependency is not native compiled already. - * lisp/emacs-lisp/comp.el (warnings): Add require. + * lisp/emacs-lisp/comp.el (warnings): Add require. 2020-08-17 Andrea Corallo Some Makefile updates and clean-up - * Makefile.in (clean): Remove 'eln-cache' folder. + * Makefile.in (clean): Remove 'eln-cache' folder. - * lisp/Makefile.in (.SUFFIXES): Remove .eln. - (native-compile-clean): Target remove. - (compile-always, bootstrap-clean): Remove 'native-compile-clean' - prerequisite. + * lisp/Makefile.in (.SUFFIXES): Remove .eln. + (native-compile-clean): Target remove. + (compile-always, bootstrap-clean): Remove 'native-compile-clean' + prerequisite. - * src/Makefile.in (%.eln): Remove rule. + * src/Makefile.in (%.eln): Remove rule. 2020-08-17 Andrea Corallo Make comp-deferred-compilation a simple global and set it on by default - * src/comp.c (comp_deferred_compilation): Doc update and set it to - true by default. + * src/comp.c (comp_deferred_compilation): Doc update and set it to + true by default. - * lisp/emacs-lisp/comp.el (comp-deferred-compilation): Remove - customize. + * lisp/emacs-lisp/comp.el (comp-deferred-compilation): Remove + customize. 2020-08-17 Andrea Corallo @@ -67655,45 +67647,45 @@ `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'. + * 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'. 2020-08-17 Paul Eggert @@ -67889,9 +67881,9 @@ 2020-08-15 Andrea Corallo - * Remove a warning for conventional build + Remove a warning for conventional build - * src/lread.c (parent_directory): Add ATTRIBUTE_UNUSED. + * src/lread.c (parent_directory): Add ATTRIBUTE_UNUSED. 2020-08-15 Paul Eggert @@ -68361,10 +68353,10 @@ 2020-08-14 Andrea Corallo - * Fix excessive echo area usage + Fix excessive echo area usage - * lisp/emacs-lisp/comp.el (comp-run-async-workers): Use - `with-temp-file' to fill temp-file. + * lisp/emacs-lisp/comp.el (comp-run-async-workers): Use + `with-temp-file' to fill temp-file. 2020-08-14 Andrea Corallo @@ -70814,10 +70806,10 @@ 2020-08-02 Andrea Corallo - * Fix defsubst missing inline Bug#42664 + Fix defsubst missing inline Bug#42664 - * lisp/emacs-lisp/byte-run.el (defsubst): Do not native compile - defsubsts to have them always effective. + * lisp/emacs-lisp/byte-run.el (defsubst): Do not native compile + defsubsts to have them always effective. 2020-08-02 Philipp Stephani @@ -71494,18 +71486,18 @@ 2020-07-26 Andrea Corallo - * Add NATIVE_COMP to `system-configuration-features' + Add NATIVE_COMP to `system-configuration-features' - * configure.ac (emacs_config_features): Add NATIVE_COMP + * configure.ac (emacs_config_features): Add NATIVE_COMP 2020-07-26 Andrea Corallo - * Add `comp-ensure-native-compiler' guarding entry points + Add `comp-ensure-native-compiler' guarding entry points - * lisp/emacs-lisp/comp.el (comp-ensure-native-compiler): New function. - (native-compile, batch-native-compile) - (batch-byte-native-compile-for-bootstrap, native-compile-async): - Make use of `comp-ensure-native-compiler'. + * lisp/emacs-lisp/comp.el (comp-ensure-native-compiler): New function. + (native-compile, batch-native-compile) + (batch-byte-native-compile-for-bootstrap, native-compile-async): + Make use of `comp-ensure-native-compiler'. 2020-07-25 Philipp Stephani @@ -72124,18 +72116,18 @@ Add a testcase for bug#42360 - * test/src/comp-tests.el (comp-test-42360): New testcase. + * test/src/comp-tests.el (comp-test-42360): New testcase. - * test/src/comp-test-funcs.el (comp-test-42360-f): New function. + * test/src/comp-test-funcs.el (comp-test-42360-f): New function. 2020-07-15 Andrea Corallo - * Fix bug#42360 + Fix bug#42360 - * src/comp.c (compile_function): Allocate function frame as array - if non local exits are present to retain correct Elisp semantic. - (emit_limple_call_ref): Directly use the frame array for ref calls - to have GCC spills into it before calling. + * src/comp.c (compile_function): Allocate function frame as array + if non local exits are present to retain correct Elisp semantic. + (emit_limple_call_ref): Directly use the frame array for ref calls + to have GCC spills into it before calling. 2020-07-15 Tassilo Horn @@ -72238,11 +72230,11 @@ 2020-07-15 Andrea Corallo - * Add a simple major mode for coloring LIMPLE in the log buffer + Add a simple major mode for coloring LIMPLE in the log buffer - * lisp/emacs-lisp/comp.el (comp-limple-lock-keywords): New const. - (comp-limple-mode): New major mode. - (comp-log-to-buffer): Enable `comp-limple-mode' in the log buffer. + * lisp/emacs-lisp/comp.el (comp-limple-lock-keywords): New const. + (comp-limple-mode): New major mode. + (comp-log-to-buffer): Enable `comp-limple-mode' in the log buffer. 2020-07-15 Juri Linkov @@ -72278,48 +72270,48 @@ 2020-07-13 Andrea Corallo - * Rename `comp-propagate' into `fw-prop' + Rename `comp-propagate' into `fw-prop' - * lisp/emacs-lisp/comp.el (comp-passes): Rename `comp-propagate' - -> `comp-fwprop'. - (comp-fwprop-prologue): Rename from `comp-propagate-prologue'. - (comp-fwprop-insn): Rename from `comp-fwprop-insn'. - (comp-propagate*): Rename from `comp-propagate*' and update. - (comp-fwprop): Rename from `comp-propagate' and update. + * lisp/emacs-lisp/comp.el (comp-passes): Rename `comp-propagate' + -> `comp-fwprop'. + (comp-fwprop-prologue): Rename from `comp-propagate-prologue'. + (comp-fwprop-insn): Rename from `comp-fwprop-insn'. + (comp-propagate*): Rename from `comp-propagate*' and update. + (comp-fwprop): Rename from `comp-propagate' and update. 2020-07-13 Andrea Corallo - * Clean-up now unnecessary backward propagation in comp.el + Clean-up now unnecessary backward propagation in comp.el - * lisp/emacs-lisp/comp.el (comp-passes): Invoke 'comp-propagate' - instead of 'comp-propagate-alloc'. - (comp-mvar): Remove unnecessary `array-idx' slot. - (comp-propagate-prologue): Remove. - (comp-propagate-prologue): Remove `backward' parameter and - backward propagation logic. - (comp-propagate1): Remove and move logic into `comp-propagate'. - (comp-propagate-alloc): Remove pass. + * lisp/emacs-lisp/comp.el (comp-passes): Invoke 'comp-propagate' + instead of 'comp-propagate-alloc'. + (comp-mvar): Remove unnecessary `array-idx' slot. + (comp-propagate-prologue): Remove. + (comp-propagate-prologue): Remove `backward' parameter and + backward propagation logic. + (comp-propagate1): Remove and move logic into `comp-propagate'. + (comp-propagate-alloc): Remove pass. 2020-07-13 Andrea Corallo - * Rework frame allocation strategy + Rework frame allocation strategy All frame slots are now simple automatic variables given the array allocation and fill is done in 'emit_limple_call_ref'. - * src/comp.c (comp_t): Remove 'f_frame' 'arrays' slots, add - 'frame'. - (emit_mvar_lval): Simplify to make use of 'comp.frame'. - (compile_function): Clean-up and add comp.frame initialization. + * src/comp.c (comp_t): Remove 'f_frame' 'arrays' slots, add + 'frame'. + (emit_mvar_lval): Simplify to make use of 'comp.frame'. + (compile_function): Clean-up and add comp.frame initialization. 2020-07-13 Andrea Corallo - * Rework the backend to allocate arument arrays for call by references + Rework the backend to allocate arument arrays for call by references - * src/comp.c (comp_t): Add 'zero' field. - (emit_limple_call_ref): Allocate an array to host the parametes - and generate the code moving values into. - (Fcomp__init_ctxt): Initialize comp.zero. + * src/comp.c (comp_t): Add 'zero' field. + (emit_limple_call_ref): Allocate an array to host the parametes + and generate the code moving values into. + (Fcomp__init_ctxt): Initialize comp.zero. 2020-07-13 Juri Linkov @@ -72660,18 +72652,18 @@ 2020-07-09 Andrea Corallo - * Disable ipa-pure in comp-tests-tco + Disable ipa-pure in comp-tests-tco - * test/src/comp-tests.el (comp-tests-tco): Disable ipa-pure to - check effectively for tail recursion elimination. + * test/src/comp-tests.el (comp-tests-tco): Disable ipa-pure to + check effectively for tail recursion elimination. 2020-07-09 Andrea Corallo - * Add `comp-disabled-passes' + Add `comp-disabled-passes' - * lisp/emacs-lisp/comp.el (comp-disabled-passes): New special - variable. - (native-compile): Make use of `comp-disabled-passes'. + * lisp/emacs-lisp/comp.el (comp-disabled-passes): New special + variable. + (native-compile): Make use of `comp-disabled-passes'. 2020-07-09 Andrea Corallo @@ -72681,23 +72673,23 @@ Add some tests for pure function optimization - * test/src/comp-tests.el (comp-tests-fw-prop): Fix docstring. - (comp-tests-pure-checker-1, comp-tests-pure-checker-2): New - functions. - (comp-tests-pure): New test testing for pure function - optimization. + * test/src/comp-tests.el (comp-tests-fw-prop): Fix docstring. + (comp-tests-pure-checker-1, comp-tests-pure-checker-2): New + functions. + (comp-tests-pure): New test testing for pure function + optimization. 2020-07-09 Andrea Corallo - * Optimize pure functions defined by the compilation environment + Optimize pure functions defined by the compilation environment - * lisp/emacs-lisp/comp.el (comp-apply-in-env): New macro. - (comp-function-call-maybe-remove): Update to make use of - `comp-apply-in-env'. + * lisp/emacs-lisp/comp.el (comp-apply-in-env): New macro. + (comp-function-call-maybe-remove): Update to make use of + `comp-apply-in-env'. 2020-07-09 Andrea Corallo - * Introduce a new pass ipa-pure + Introduce a new pass ipa-pure Add a simple pass to infer pure functions not explicitly declared as such. Use this information only during compilation (speed 3) to @@ -72705,10 +72697,10 @@ 2020-07-09 Andrea Corallo - * Add `comp-call-op-p' + Add `comp-call-op-p' - * lisp/emacs-lisp/comp.el (comp-call-op-p): New predicate. - (comp-limple-insn-call-p): Make use of. + * lisp/emacs-lisp/comp.el (comp-call-op-p): New predicate. + (comp-limple-insn-call-p): Make use of. 2020-07-09 Andrea Corallo @@ -72716,18 +72708,18 @@ 2020-07-09 Andrea Corallo - * Define `comp-symbol-func-to-fun' + Define `comp-symbol-func-to-fun' - * lisp/emacs-lisp/comp.el (comp-symbol-func-to-fun): New function. - (comp-func-in-unit): Make use of the `comp-symbol-func-to-fun'. + * lisp/emacs-lisp/comp.el (comp-symbol-func-to-fun): New function. + (comp-func-in-unit): Make use of the `comp-symbol-func-to-fun'. 2020-07-09 Andrea Corallo - * Add a test targeting forward propagation + Add a test targeting forward propagation - * test/src/comp-tests.el (comp-tests-fw-prop-checker-1): New - function. - (comp-tests-fw-prop): New test. + * test/src/comp-tests.el (comp-tests-fw-prop-checker-1): New + function. + (comp-tests-fw-prop): New test. 2020-07-09 João Távora @@ -72762,21 +72754,21 @@ 2020-07-08 Andrea Corallo - * Rework some test logic for generality + Rework some test logic for generality - * test/src/comp-tests.el (comp-tests-make-insn-checker): New - function splitting logic from `comp-tests-tco-checker' to have it - more general. - (comp-tests-tco-checker): Make use of - `comp-tests-make-insn-checker'. + * test/src/comp-tests.el (comp-tests-make-insn-checker): New + function splitting logic from `comp-tests-tco-checker' to have it + more general. + (comp-tests-tco-checker): Make use of + `comp-tests-make-insn-checker'. 2020-07-08 Andrea Corallo - * Clean-up some const folding logic and add `comp-function-pure-p' + Clean-up some const folding logic and add `comp-function-pure-p' - * lisp/emacs-lisp/comp.el (comp-function-pure-p): New predicate. - (comp-function-call-maybe-remove): Update to use the - `comp-function-pure-p'. + * lisp/emacs-lisp/comp.el (comp-function-pure-p): New predicate. + (comp-function-call-maybe-remove): Update to use the + `comp-function-pure-p'. 2020-07-08 Mattias Engdegård @@ -73112,7 +73104,7 @@ 2020-07-04 Andrea Corallo - * Relax constant folding rules + Relax constant folding rules * lisp/emacs-lisp/comp.el (comp-function-optimizable-p): No need to check for operands or result to be fixnums. @@ -73160,39 +73152,39 @@ 2020-07-02 Andrea Corallo - * Fix missing tail recursion elimination + Fix missing tail recursion elimination - * lisp/emacs-lisp/comp.el (comp-tco-func): Fix tail recursion - elimination given now functions in LIMPLE are expressed with - the C name. + * lisp/emacs-lisp/comp.el (comp-tco-func): Fix tail recursion + elimination given now functions in LIMPLE are expressed with + the C name. 2020-07-02 Andrea Corallo - * Add a test to verify tail recursion elimination + Add a test to verify tail recursion elimination - * test/src/comp-tests.el (comp-tests-tco): Compile a recursive - functions at speed 3 and verify the tail recursion elimination. - (comp-tests-tco-checker, comp-tests-mentioned-p) - (comp-tests-mentioned-p-1): New support functions. + * test/src/comp-tests.el (comp-tests-tco): Compile a recursive + functions at speed 3 and verify the tail recursion elimination. + (comp-tests-tco-checker, comp-tests-mentioned-p) + (comp-tests-mentioned-p-1): New support functions. 2020-07-02 Andrea Corallo Rework `comp-c-func-name' arguments - * lisp/emacs-lisp/comp.el (comp-c-func-name): Add FIRST argument - to ignore the compiler context and return the first name. + * lisp/emacs-lisp/comp.el (comp-c-func-name): Add FIRST argument + to ignore the compiler context and return the first name. - * lisp/emacs-lisp/disass.el (disassemble-internal): Update the - `comp-c-func-name' call. + * lisp/emacs-lisp/disass.el (disassemble-internal): Update the + `comp-c-func-name' call. 2020-07-02 Andrea Corallo - * Add to possibility to write per pass specific tests + Add to possibility to write per pass specific tests - * lisp/emacs-lisp/comp.el (comp-post-pass-hooks): New special - variable. - (native-compile): Run what is registered in - `comp-post-pass-hooks'. + * lisp/emacs-lisp/comp.el (comp-post-pass-hooks): New special + variable. + (native-compile): Run what is registered in + `comp-post-pass-hooks'. 2020-07-02 Andrea Corallo @@ -73233,11 +73225,11 @@ Add a test for lambda list containing uninterned symbols - * test/src/comp-test-funcs-dyn.el - (comp-tests-cl-uninterned-arg-parse-f): New function. + * test/src/comp-test-funcs-dyn.el + (comp-tests-cl-uninterned-arg-parse-f): New function. - * test/src/comp-tests.el (comp-tests-cl-uninterned-arg-parse-f): - New test. + * test/src/comp-tests.el (comp-tests-cl-uninterned-arg-parse-f): + New test. 2020-06-30 Andrea Corallo @@ -73246,13 +73238,13 @@ Lambda-lists must stay in the same relocation class of the object referenced by code to respect uninterned symbols. - * lisp/emacs-lisp/comp.el (comp-prepare-args-for-top-level): Break - the original function in a generic specializing for - dynamic/lexical functions. When allocating the lambda-list for - dynamic functions do that in the default relocation class. - (comp-emit-for-top-level): Make use of the new - `comp-prepare-args-for-top-level'. - (comp-emit-lambda-for-top-level): Likewise. + * lisp/emacs-lisp/comp.el (comp-prepare-args-for-top-level): Break + the original function in a generic specializing for + dynamic/lexical functions. When allocating the lambda-list for + dynamic functions do that in the default relocation class. + (comp-emit-for-top-level): Make use of the new + `comp-prepare-args-for-top-level'. + (comp-emit-lambda-for-top-level): Likewise. 2020-06-30 James N. V. Cash (tiny change) @@ -73316,17 +73308,17 @@ 2020-06-28 Andrea Corallo - * Do not skip native compilation for leim subfolder during boostrap + Do not skip native compilation for leim subfolder during boostrap - * lisp/emacs-lisp/comp.el (comp-bootstrap-black-list): Remove - "^leim/". + * lisp/emacs-lisp/comp.el (comp-bootstrap-black-list): Remove + "^leim/". 2020-06-28 Andrea Corallo - * Enable deferred compilation for dynamic scoped code + Enable deferred compilation for dynamic scoped code - * src/comp.c (maybe_defer_native_compilation): Trigger for dynamic - code and add a comment. + * src/comp.c (maybe_defer_native_compilation): Trigger for dynamic + code and add a comment. 2020-06-28 Eli Zaretskii @@ -73351,19 +73343,19 @@ Add a test to verify CL macro expansion in dynamic scope - * test/src/comp-tests.el (comp-tests-cl-macro-exp): New test. + * test/src/comp-tests.el (comp-tests-cl-macro-exp): New test. - * test/src/comp-test-funcs-dyn.el: Require `cl-lib'. - (comp-tests-cl-macro-exp-f): New function. + * test/src/comp-test-funcs-dyn.el: Require `cl-lib'. + (comp-tests-cl-macro-exp-f): New function. 2020-06-28 Andrea Corallo - * Setup correctly the printer while dumping objs in native CU (bug#42088) + Setup correctly the printer while dumping objs in native CU (bug#42088) - * src/comp.c (emit_static_object): Bind a bunch of special - variables to setup `prin1-to-string' as - `byte-compile-output-file-form' does. This to preserve - uninterned symbols. + * src/comp.c (emit_static_object): Bind a bunch of special + variables to setup `prin1-to-string' as + `byte-compile-output-file-form' does. This to preserve + uninterned symbols. 2020-06-28 Timo Myyrä @@ -73682,11 +73674,11 @@ Two `load-history' eln related fixes. - * src/lread.c (Fload): Fix `load-history' filling for elns non in - root lisp-dir. + * src/lread.c (Fload): Fix `load-history' filling for elns non in + root lisp-dir. - * lisp/startup.el (command-line): Fix `load-history' fixup - algorith for eln files. + * lisp/startup.el (command-line): Fix `load-history' fixup + algorith for eln files. 2020-06-22 Andrea Corallo @@ -73696,84 +73688,84 @@ 2020-06-22 Andrea Corallo - * Handle correctly pure delaration specifier. + Handle correctly pure delaration specifier. - * lisp/emacs-lisp/comp.el (comp-func): New slot 'pure'. - (comp-spill-decl-spec): New function. - (comp-spill-speed): Rework to use the later. - (comp-spill-lap-function, comp-intern-func-in-ctxt): Spill pure - decl value. - (comp-function-optimizable-p): Check in the compiler env too if - pure. + * lisp/emacs-lisp/comp.el (comp-func): New slot 'pure'. + (comp-spill-decl-spec): New function. + (comp-spill-speed): Rework to use the later. + (comp-spill-lap-function, comp-intern-func-in-ctxt): Spill pure + decl value. + (comp-function-optimizable-p): Check in the compiler env too if + pure. 2020-06-22 Andrea Corallo - * Add a func-arity test for dynamic functions + Add a func-arity test for dynamic functions - * test/src/comp-tests.el (comp-tests-dynamic-arity): New test. + * test/src/comp-tests.el (comp-tests-dynamic-arity): New test. 2020-06-22 Andrea Corallo Do not native compile two functions to allow cc-mode hack - * lisp/progmodes/cc-langs.el (c-populate-syntax-table): Declare - with speed -1. + * lisp/progmodes/cc-langs.el (c-populate-syntax-table): Declare + with speed -1. - * lisp/progmodes/cc-bytecomp.el - (cc-bytecomp-compiling-or-loading): Declare with speed -1. + * lisp/progmodes/cc-bytecomp.el + (cc-bytecomp-compiling-or-loading): Declare with speed -1. 2020-06-22 Andrea Corallo Add a test for speed -1 - * test/src/comp-tests.el (comp-test-speed--1): New test + * test/src/comp-tests.el (comp-test-speed--1): New test - * test/src/comp-test-funcs.el (comp-test-speed--1-f): New - function. + * test/src/comp-test-funcs.el (comp-test-speed--1-f): New + function. 2020-06-22 Andrea Corallo Allow per function speed declaration - * src/comp.c (COMP_SPEED): Rename. - (comp_t): Add 'func_speed' field. - (emit_mvar_lval, compile_function): Update for per function speed. - (Fcomp__compile_ctxt_to_file): COMP_SPEED renamed. - - * lisp/emacs-lisp/comp.el (comp-speed): Doc update. - (comp-func): New 'speed' slot. - (comp-spill-speed): New function. - (comp-spill-lap-function, comp-intern-func-in-ctxt): Fill 'speed' - slot. - (comp-spill-lap-function): Gate -1 speed functions for native - compilation and emit bytecode instead. - (comp-spill-lap): Close over `byte-to-native-plist-environment'. - (comp-latch-make-fill): Update for per function speed. - (comp-limplify-top-level): Fill speed. - (comp-propagate1, comp-call-optim-form-call, comp-call-optim) - (comp-dead-code, comp-tco, comp-remove-type-hints): Update for per - function speed. + * src/comp.c (COMP_SPEED): Rename. + (comp_t): Add 'func_speed' field. + (emit_mvar_lval, compile_function): Update for per function speed. + (Fcomp__compile_ctxt_to_file): COMP_SPEED renamed. + + * lisp/emacs-lisp/comp.el (comp-speed): Doc update. + (comp-func): New 'speed' slot. + (comp-spill-speed): New function. + (comp-spill-lap-function, comp-intern-func-in-ctxt): Fill 'speed' + slot. + (comp-spill-lap-function): Gate -1 speed functions for native + compilation and emit bytecode instead. + (comp-spill-lap): Close over `byte-to-native-plist-environment'. + (comp-latch-make-fill): Update for per function speed. + (comp-limplify-top-level): Fill speed. + (comp-propagate1, comp-call-optim-form-call, comp-call-optim) + (comp-dead-code, comp-tco, comp-remove-type-hints): Update for per + function speed. 2020-06-22 Andrea Corallo Execute top level forms in the right lex/dyn scope. - * lisp/emacs-lisp/bytecomp.el (byte-to-native-top-level): Add - 'lexical' slot. - (byte-compile-output-file-form): Update for new slot. - (byte-compile-file-form-defmumble): Capture scope. + * lisp/emacs-lisp/bytecomp.el (byte-to-native-top-level): Add + 'lexical' slot. + (byte-compile-output-file-form): Update for new slot. + (byte-compile-file-form-defmumble): Capture scope. - * lisp/emacs-lisp/comp.el (comp-emit-for-top-level): Specify - execution scope. + * lisp/emacs-lisp/comp.el (comp-emit-for-top-level): Specify + execution scope. 2020-06-22 Andrea Corallo Add some testing for dynamic scope - * test/src/comp-test-funcs-dyn.el: New file. + * test/src/comp-test-funcs-dyn.el: New file. - * test/src/comp-tests.el (comp-tests-dynamic-ffuncall): Add - new tests. + * test/src/comp-tests.el (comp-tests-dynamic-ffuncall): Add + new tests. 2020-06-21 Mattias Engdegård @@ -74008,32 +74000,32 @@ parsing/binding it's done using the existing code in use for bytecode (no ad-hoc code is synthetized for that). - * src/lisp.h (struct Lisp_Subr): Add lambda_list field. - (SUBR_NATIVE_COMPILED_DYNP): New inliner. + * src/lisp.h (struct Lisp_Subr): Add lambda_list field. + (SUBR_NATIVE_COMPILED_DYNP): New inliner. - * src/alloc.c (mark_object): Update for Add lambda_list field. + * src/alloc.c (mark_object): Update for Add lambda_list field. - * src/eval.c (eval_sub, Ffuncall, funcall_lambda): Handle native - compiled dynamic scope + * src/eval.c (eval_sub, Ffuncall, funcall_lambda): Handle native + compiled dynamic scope - * src/comp.c (declare_lex_function): Rename from declare_function - and rework. - (declare_function): New function. - (make_subr): Handle daynamic scope + * src/comp.c (declare_lex_function): Rename from declare_function + and rework. + (declare_function): New function. + (make_subr): Handle daynamic scope - * src/pdumper.c (dump_subr): Update for lambda_list field. + * src/pdumper.c (dump_subr): Update for lambda_list field. - * lisp/emacs-lisp/comp.el (comp-func): Remove args slot. - (comp-func-l, comp-func-d): New classes deriving from `comp-func'. - (comp-spill-lap-function): Rework. - (comp-prepare-args-for-top-level): New function. - (comp-emit-for-top-level, comp-emit-lambda-for-top-level): Make - use of `comp-prepare-args-for-top-level'. - (comp-limplify-top-level): Use `comp-func-l'. - (comp-limplify-function): Emit arg prologue only for dynamic - scoped functions. - (comp-call-optim-form-call): Use `comp-func-l'. - (comp-call-optim, comp-tco): Do not optimize dynamic scoped code. + * lisp/emacs-lisp/comp.el (comp-func): Remove args slot. + (comp-func-l, comp-func-d): New classes deriving from `comp-func'. + (comp-spill-lap-function): Rework. + (comp-prepare-args-for-top-level): New function. + (comp-emit-for-top-level, comp-emit-lambda-for-top-level): Make + use of `comp-prepare-args-for-top-level'. + (comp-limplify-top-level): Use `comp-func-l'. + (comp-limplify-function): Emit arg prologue only for dynamic + scoped functions. + (comp-call-optim-form-call): Use `comp-func-l'. + (comp-call-optim, comp-tco): Do not optimize dynamic scoped code. 2020-06-19 Andrii Kolomoiets @@ -74571,13 +74563,11 @@ 2020-06-14 Michael R. Mauger - 2020-03-29 Michael R. Mauger - - * lisp/progmodes/sql.el (sql-add-product): Re-correct argument - spec. Previous change was due to my mistake; I have - resolved back to the prior behavior (Bug#39960). - * test/lisp/progmodes/sql-tests.el (sql-test-add-product): Added - test to insure I don't make the same mistake again. + * lisp/progmodes/sql.el (sql-add-product): Re-correct argument + spec. Previous change was due to my mistake; I have + resolved back to the prior behavior (Bug#39960). + * test/lisp/progmodes/sql-tests.el (sql-test-add-product): Added + test to insure I don't make the same mistake again. 2020-06-13 Glenn Morris @@ -74588,51 +74578,51 @@ 2020-06-13 Andrea Corallo - * Implement 'maybe_gc_or_quit' to allow correct GC in compiled Lisp. + Implement 'maybe_gc_or_quit' to allow correct GC in compiled Lisp. Implement the backend side of 'maybe_gc_or_quit' so that every time a call to it is emitted we render it accordingly. This allow GC to kicks in during long loops in Lisp code. - * src/comp.c (comp_t): Add 'maybe_gc_or_quit' field. - (helper_link_table): Add 'maybe_gc', 'maybe_quit'. - (emit_maybe_gc_or_quit): New function. - (declare_runtime_imported_funcs): Import 'maybe_gc', 'maybe_quit' - functions. - (define_maybe_gc_or_quit): New function. - (Fcomp__init_ctxt): Register emitter. - (Fcomp__compile_ctxt_to_file): Call 'define_maybe_gc_or_quit'. - (syms_of_comp): Define Qcomp_maybe_gc_or_quit. + * src/comp.c (comp_t): Add 'maybe_gc_or_quit' field. + (helper_link_table): Add 'maybe_gc', 'maybe_quit'. + (emit_maybe_gc_or_quit): New function. + (declare_runtime_imported_funcs): Import 'maybe_gc', 'maybe_quit' + functions. + (define_maybe_gc_or_quit): New function. + (Fcomp__init_ctxt): Register emitter. + (Fcomp__compile_ctxt_to_file): Call 'define_maybe_gc_or_quit'. + (syms_of_comp): Define Qcomp_maybe_gc_or_quit. 2020-06-13 Andrea Corallo - * Introduce latches + Introduce latches Define a new kind of basic block 'latch' to close over loops. Its purpose is for now to emit calls to `comp-maybe-gc-or-quit' but in future will be usefull for the loop optimizer to exploit unboxes. - * lisp/emacs-lisp/comp.el (comp-block): New base class. - (comp-block-lap): New class for LAP derived basic blocks. - (comp-latch): New class. - (comp-bb-maybe-add, comp-make-curr-block, comp-emit-handler) - (comp-emit-switch, comp-emit-switch, comp-limplify-top-level) - (comp-addr-to-bb-name, comp-limplify-block) - (comp-limplify-function): Update logic for new bb objects - arrangment. - (comp-latch-make-fill): New function. - (comp-emit-uncond-jump, comp-emit-cond-jump): Update to emit - latches. - (comp-new-block-sym): Add a postfix paramenter. + * lisp/emacs-lisp/comp.el (comp-block): New base class. + (comp-block-lap): New class for LAP derived basic blocks. + (comp-latch): New class. + (comp-bb-maybe-add, comp-make-curr-block, comp-emit-handler) + (comp-emit-switch, comp-emit-switch, comp-limplify-top-level) + (comp-addr-to-bb-name, comp-limplify-block) + (comp-limplify-function): Update logic for new bb objects + arrangment. + (comp-latch-make-fill): New function. + (comp-emit-uncond-jump, comp-emit-cond-jump): Update to emit + latches. + (comp-new-block-sym): Add a postfix paramenter. 2020-06-13 Andrea Corallo Fix const qualifier warnings - * src/lisp.h (struct Lisp_Subr): Remove const qualifier from - 'native_c_name'. + * src/lisp.h (struct Lisp_Subr): Remove const qualifier from + 'native_c_name'. - * src/alloc.c (cleanup_vector): Cast to discard const qualifier. + * src/alloc.c (cleanup_vector): Cast to discard const qualifier. 2020-06-13 Philip K @@ -74704,10 +74694,10 @@ 2020-06-11 Andrea Corallo - * Fix memory leak when native compiled function is collected + Fix memory leak when native compiled function is collected - * src/alloc.c (cleanup_vector): Handle native compiled - functions. + * src/alloc.c (cleanup_vector): Handle native compiled + functions. 2020-06-11 Andrea Corallo @@ -74718,12 +74708,12 @@ overide its content otherwise a previously activated load will have the original content collected before it's used. - * src/comp.h (struct Lisp_Native_Comp_Unit): Add 'load_ongoing' - field. + * src/comp.h (struct Lisp_Native_Comp_Unit): Add 'load_ongoing' + field. - * src/comp.c (unset_cu_load_ongoing): New function. - (load_comp_unit): Update logic to detect and handle recursive - loads. + * src/comp.c (unset_cu_load_ongoing): New function. + (load_comp_unit): Update logic to detect and handle recursive + loads. 2020-06-11 Andrea Corallo @@ -74734,17 +74724,17 @@ Lisp_Subr. The old approach would have failed dumping two functions with the same symbol-name. - * src/lisp.h (struct Lisp_Subr): Add 'native_c_name' field. + * src/lisp.h (struct Lisp_Subr): Add 'native_c_name' field. - * src/pdumper.c (dump_subr): Update hash + dump 'native_c_name'. - (dump_cold_native_subr): dump 'native_c_name'. - (dump_do_dump_relocation): Update logic for reviving using - 'native_c_name'. + * src/pdumper.c (dump_subr): Update hash + dump 'native_c_name'. + (dump_cold_native_subr): dump 'native_c_name'. + (dump_do_dump_relocation): Update logic for reviving using + 'native_c_name'. - * src/comp.c (make_subr): Update for 'native_c_name' field. - (Fcomp__register_lambda, Fcomp__register_subr): Clean-up code for - 'Vcomp_sym_subr_c_name_h' removal. - (syms_of_comp): Remove 'Vcomp_sym_subr_c_name_h'. + * src/comp.c (make_subr): Update for 'native_c_name' field. + (Fcomp__register_lambda, Fcomp__register_subr): Clean-up code for + 'Vcomp_sym_subr_c_name_h' removal. + (syms_of_comp): Remove 'Vcomp_sym_subr_c_name_h'. 2020-06-10 Mattias Engdegård @@ -74804,10 +74794,10 @@ 2020-06-10 Andrea Corallo - * Remove unused 'helper_save_window_excursion' + Remove unused 'helper_save_window_excursion' - * src/comp.c (helper_unwind_protect): Remove definition and - declaration. + * src/comp.c (helper_unwind_protect): Remove definition and + declaration. 2020-06-10 Nicolás Bértolo @@ -74882,31 +74872,31 @@ Rename lambda_gc_guard -> lambda_gc_guard_h - * src/comp.h (struct Lisp_Native_Comp_Unit): Rename - lambda_gc_guard -> lambda_gc_guard_h + * src/comp.h (struct Lisp_Native_Comp_Unit): Rename + lambda_gc_guard -> lambda_gc_guard_h - * src/pdumper.c (dump_do_dump_relocation): Likewise. + * src/pdumper.c (dump_do_dump_relocation): Likewise. - * src/comp.c (check_comp_unit_relocs, Fcomp__register_lambda) - (Fnative_elisp_load): Likewise. + * src/comp.c (check_comp_unit_relocs, Fcomp__register_lambda) + (Fnative_elisp_load): Likewise. 2020-06-08 Andrea Corallo * Fix load logic for the reloading CU case (bug#41754) - * src/comp.c (load_comp_unit): When swapping the compilation unit - abandoning the new one for the original do not forget to set its - loaded_once field to true because is in use by - `comp--register-lambda'. - (Fcomp__register_lambda): Add sanity a check to spot - early if we are trying to load the same lambda twice. + * src/comp.c (load_comp_unit): When swapping the compilation unit + abandoning the new one for the original do not forget to set its + loaded_once field to true because is in use by + `comp--register-lambda'. + (Fcomp__register_lambda): Add sanity a check to spot + early if we are trying to load the same lambda twice. 2020-06-08 Andrea Corallo * Move final log after containers has been finalized - * lisp/emacs-lisp/comp.el (comp-final): Remove function log. - (comp-compile-ctxt-to-file): Add function log. + * lisp/emacs-lisp/comp.el (comp-final): Remove function log. + (comp-compile-ctxt-to-file): Add function log. 2020-06-08 Andrea Corallo @@ -74965,18 +74955,18 @@ 2020-06-07 Andrea Corallo - * Rename comp-function-optimizable -> comp-function-optimizable-p + Rename comp-function-optimizable -> comp-function-optimizable-p - * lisp/emacs-lisp/comp.el (comp-function-optimizable): Rename into - 'comp-function-optimizable-p'. - (comp-function-call-maybe-remove): Use the new name. + * lisp/emacs-lisp/comp.el (comp-function-optimizable): Rename into + 'comp-function-optimizable-p'. + (comp-function-call-maybe-remove): Use the new name. 2020-06-07 Andrea Corallo - * Fix comp-call-optim-form-call for null `callee' + Fix comp-call-optim-form-call for null `callee' - * lisp/emacs-lisp/comp.el (comp-call-optim-form-call): Guard - agains null `calle'. + * lisp/emacs-lisp/comp.el (comp-call-optim-form-call): Guard + agains null `calle'. 2020-06-07 Glenn Morris @@ -75008,13 +74998,13 @@ 2020-06-07 Andrea Corallo - * Improve propagate pass + Improve propagate pass As function folding can generate 'setimm' insns handle them in the `comp-propagate-insn'. - * lisp/emacs-lisp/comp.el (comp-propagate-insn): Handle 'setimm' - insn. + * lisp/emacs-lisp/comp.el (comp-propagate-insn): Handle 'setimm' + insn. 2020-06-07 Michael Albinus @@ -75064,12 +75054,12 @@ 2020-06-07 Andrea Corallo - * Optimize optimizable variables + Optimize optimizable variables - * lisp/emacs-lisp/comp.el (comp-symbol-values-optimizable): New - defconst. - (comp-function-call-maybe-remove): New logic to to remove - unnecessary `symbol-value' calls. + * lisp/emacs-lisp/comp.el (comp-symbol-values-optimizable): New + defconst. + (comp-function-call-maybe-remove): New logic to to remove + unnecessary `symbol-value' calls. 2020-06-07 Juri Linkov @@ -75086,33 +75076,33 @@ 2020-06-06 Andrea Corallo - * Mitigate possible speed 3 miss-optimization + Mitigate possible speed 3 miss-optimization Do not perform trampoline optimization at speed 3 on function if their name is not unique inside the compilation unit. Note that the function can still be redefined in any other way therefore this is a mitigation. - * lisp/emacs-lisp/comp.el (comp-func-unique-in-cu-p): New - predicate. - (comp-call-optim-form-call): Perform trampoline optimization - for named functions only if they are unique within the current - compilation unit. + * lisp/emacs-lisp/comp.el (comp-func-unique-in-cu-p): New + predicate. + (comp-call-optim-form-call): Perform trampoline optimization + for named functions only if they are unique within the current + compilation unit. 2020-06-06 Andrea Corallo - * Allow for optimizing anonymous lambdas in call-optim + Allow for optimizing anonymous lambdas in call-optim - * lisp/emacs-lisp/comp.el (comp-func-in-unit): New function. - (comp-call-optim-form-call): Update logic for optimizing - anonymous lambdas. + * lisp/emacs-lisp/comp.el (comp-func-in-unit): New function. + (comp-call-optim-form-call): Update logic for optimizing + anonymous lambdas. 2020-06-06 Andrea Corallo - * Clean-up unnecessary lisp_X context definition + Clean-up unnecessary lisp_X context definition - * src/comp.c (Fcomp__init_ctxt, comp_t): Remove lisp_X - definition as is used only locally. + * src/comp.c (Fcomp__init_ctxt, comp_t): Remove lisp_X + definition as is used only locally. 2020-06-06 Andrea Corallo @@ -75122,14 +75112,14 @@ 'direct-call' 'direct-callref'. This is preparatory to anonymous lambdas optimization. - * lisp/emacs-lisp/comp.el (comp-propagate-insn): Use c-name when - gathering the comp-func definition for direct calls. - (comp-call-optim-form-call): Add put c-name as first argument of - direct-call direct-callref when optimizing. + * lisp/emacs-lisp/comp.el (comp-propagate-insn): Use c-name when + gathering the comp-func definition for direct calls. + (comp-call-optim-form-call): Add put c-name as first argument of + direct-call direct-callref when optimizing. - * src/comp.c (emit_call): Update logic for having c-name as - first arg of direct calls. - (emit_call_ref): Rename 'subr_sym' into 'func'. + * src/comp.c (emit_call): Update logic for having c-name as + first arg of direct calls. + (emit_call_ref): Rename 'subr_sym' into 'func'. 2020-06-06 Nicolás Bértolo @@ -75189,13 +75179,13 @@ Some fixes for --without-nativecomp config - * src/pdumper.c (dump_subr): Do not add RELOC_NATIVE_SUBR for - VERY_LATE_RELOCS in --without-nativecomp. - (dump_do_dump_relocation): Add a sanity check that no - RELOC_NATIVE_SUBR exists in --without-nativecomp. + * src/pdumper.c (dump_subr): Do not add RELOC_NATIVE_SUBR for + VERY_LATE_RELOCS in --without-nativecomp. + (dump_do_dump_relocation): Add a sanity check that no + RELOC_NATIVE_SUBR exists in --without-nativecomp. - * src/lread.c (Fload): As Fnative_elisp_load is not defined - in --without-nativecomp so ifdef this block. + * src/lread.c (Fload): As Fnative_elisp_load is not defined + in --without-nativecomp so ifdef this block. 2020-06-06 Ellington Santos (tiny change) @@ -75303,9 +75293,9 @@ 2020-06-04 Andrea Corallo - * Fix build for --enable-check-lisp-object-type=yes (bug#41703) + Fix build for --enable-check-lisp-object-type=yes (bug#41703) - * src/comp.c (emit_coerce): Add missing declaration. + * src/comp.c (emit_coerce): Add missing declaration. 2020-06-04 Andrea Corallo @@ -75349,11 +75339,11 @@ 2020-06-03 Andrea Corallo - * Introduce `comp-loop-insn-in-block' + Introduce `comp-loop-insn-in-block' - * lisp/emacs-lisp/comp.el (comp-loop-insn-in-block): New macro. - (comp-call-optim-func, comp-dead-assignments-func) - (comp-remove-type-hints-func): Use `comp-loop-insn-in-block'. + * lisp/emacs-lisp/comp.el (comp-loop-insn-in-block): New macro. + (comp-call-optim-func, comp-dead-assignments-func) + (comp-remove-type-hints-func): Use `comp-loop-insn-in-block'. 2020-06-03 João Távora @@ -75528,8 +75518,8 @@ * Remove unnecessary DLL load of gcc_jit_block_add_assignment_op. - * src/comp.c (gcc_jit_block_add_assignment_op): Remove unnecessary - func import. + * src/comp.c (gcc_jit_block_add_assignment_op): Remove unnecessary + func import. 2020-06-01 Alan Mackenzie @@ -75558,29 +75548,29 @@ Store libgccjit version into generated code - * src/comp.c (emit_ctxt_code): Add libgccjit version into - stored optimize qualities. - (syms_of_comp): Define Qgccjit here. + * src/comp.c (emit_ctxt_code): Add libgccjit version into + stored optimize qualities. + (syms_of_comp): Define Qgccjit here. - * src/w32fns.c (syms_of_w32fns): Move out Qgccjit definition. + * src/w32fns.c (syms_of_w32fns): Move out Qgccjit definition. 2020-05-31 Andrea Corallo - * Optimize 'emit_static_object' for load-time + Optimize 'emit_static_object' for load-time - * src/comp.c (emit_static_object): Use a chunck size of 200 bytes - on bugged GCCs and a longer one (1024) in sane ones. Rename - str in buff to disambiguate and prefer xmalloc to a VLA given - the buffer is not that small. + * src/comp.c (emit_static_object): Use a chunck size of 200 bytes + on bugged GCCs and a longer one (1024) in sane ones. Rename + str in buff to disambiguate and prefer xmalloc to a VLA given + the buffer is not that small. 2020-05-31 Andrea Corallo - * Add `comp-libgccjit-version' subr + Add `comp-libgccjit-version' subr - * src/comp.c (gcc_jit_version_major, gcc_jit_version_minor) - (gcc_jit_version_patchlevel): Import. - (Fcomp_libgccjit_version): New Lisp function. - (syms_of_comp): Update for 'comp-libgccjit-version'. + * src/comp.c (gcc_jit_version_major, gcc_jit_version_minor) + (gcc_jit_version_patchlevel): Import. + (Fcomp_libgccjit_version): New Lisp function. + (syms_of_comp): Update for 'comp-libgccjit-version'. 2020-05-31 Philipp Stephani @@ -75605,20 +75595,20 @@ Nicolás Bértolo Andrea Corallo - * src/comp.c (gcc_jit_context_new_string_literal) - (gcc_jit_block_add_assignment_op): New imports. - (comp_t): New 'size_t_type' 'memcpy' fields. - (emit_static_object): Define static objects using string literals - and memcpy. - (define_memcpy): New function. - (Fcomp__init_ctxt): Define 'size_t_type' and 'memcpy'. + * src/comp.c (gcc_jit_context_new_string_literal) + (gcc_jit_block_add_assignment_op): New imports. + (comp_t): New 'size_t_type' 'memcpy' fields. + (emit_static_object): Define static objects using string literals + and memcpy. + (define_memcpy): New function. + (Fcomp__init_ctxt): Define 'size_t_type' and 'memcpy'. 2020-05-31 Andrea Corallo - * Emit better debug comments in emit_static_object + Emit better debug comments in emit_static_object - * src/comp.c (emit_static_object): Do not truncate debug - comments at the first NULL character. + * src/comp.c (emit_static_object): Do not truncate debug + comments at the first NULL character. 2020-05-31 Tom Tromey @@ -75726,14 +75716,14 @@ 2020-05-30 Andrea Corallo - * Avoid calling Ffile_exists_p too early + Avoid calling Ffile_exists_p too early Being quite early in startup initialization is better not to rely on Ffile_exists_p, this call Ffile_expand and not all the necessary initialization already happened. - * src/pdumper.c (dump_do_dump_relocation): Use fopen instead of - Ffile_exists_p. + * src/pdumper.c (dump_do_dump_relocation): Use fopen instead of + Ffile_exists_p. 2020-05-29 Eli Zaretskii @@ -76157,7 +76147,7 @@ 2020-05-25 Andrea Corallo - * Split type hint pass from dead code removal pass into dedicated one. + Split type hint pass from dead code removal pass into dedicated one. Given SSA prop overwrite mvar type slot we clean-up the compiler type hints as last. @@ -76493,30 +76483,30 @@ * src/comp.c: Fix 32bit wide-int. - * src/comp.c (emit_XFIXNUM): Make right shift for MSB_TAG - arithmetic too to preserve sign bit. + * src/comp.c (emit_XFIXNUM): Make right shift for MSB_TAG + arithmetic too to preserve sign bit. 2020-05-22 Andrea Corallo * src/comp.c: Fix i386 --enable-check-lisp-object-type - * src/comp.c (load_comp_unit): Fix return type, on i386 influence - parameter passing! + * src/comp.c (load_comp_unit): Fix return type, on i386 influence + parameter passing! 2020-05-22 Andrea Corallo * src/comp.c: Some aesthetic code clean-up. - * src/comp.c (comp_t): Remove 'lisp_X_s' field. - (emit_coerce): Respect 80 columns limit. - (emit_rvalue_from_emacs_uint): GNU style, unnecessary brackets. - (emit_rvalue_from_emacs_int): Likewise. - (emit_rvalue_from_lisp_word_tag): Likewise. - (emit_rvalue_from_lisp_word): Likewise. - (emit_lval_XLI): Remove unused function. - (emit_lval_XLP): Remove commented out code. - (define_add1_sub1): Respect 80 columns limit. - (Fcomp__init_ctxt): Reflect 'lisp_X_s' field removal. + * src/comp.c (comp_t): Remove 'lisp_X_s' field. + (emit_coerce): Respect 80 columns limit. + (emit_rvalue_from_emacs_uint): GNU style, unnecessary brackets. + (emit_rvalue_from_emacs_int): Likewise. + (emit_rvalue_from_lisp_word_tag): Likewise. + (emit_rvalue_from_lisp_word): Likewise. + (emit_lval_XLI): Remove unused function. + (emit_lval_XLP): Remove commented out code. + (define_add1_sub1): Respect 80 columns limit. + (Fcomp__init_ctxt): Reflect 'lisp_X_s' field removal. 2020-05-22 Basil L. Contovounesios @@ -76897,21 +76887,21 @@ 2020-05-18 Andrea Corallo - * Pacify with the byte-compiler + Pacify with the byte-compiler - * lisp/emacs-lisp/comp.el (comp-num-cpus): New special variable. - (comp-effective-async-max-jobs): Make use of `comp-num-cpus'. - (comp-call-optim-form-call): Remove unnecessary parameter. - (comp-call-optim-func): Reflect `comp-call-optim-form-call' - parameter removal. + * lisp/emacs-lisp/comp.el (comp-num-cpus): New special variable. + (comp-effective-async-max-jobs): Make use of `comp-num-cpus'. + (comp-call-optim-form-call): Remove unnecessary parameter. + (comp-call-optim-func): Reflect `comp-call-optim-form-call' + parameter removal. 2020-05-18 Andrea Corallo - * Add new customize `comp-async-env-modifier-form' (Bug#40838) + Add new customize `comp-async-env-modifier-form' (Bug#40838) - * lisp/emacs-lisp/comp.el (comp-async-env-modifier-form): New - customize. - (comp-run-async-workers): Make use of `comp-async-env-modifier-form'. + * lisp/emacs-lisp/comp.el (comp-async-env-modifier-form): New + customize. + (comp-run-async-workers): Make use of `comp-async-env-modifier-form'. 2020-05-18 Alan Mackenzie @@ -76924,13 +76914,13 @@ 2020-05-18 Andrea Corallo - * Make the Evil happy (Bug#41374) + Make the Evil happy (Bug#41374) - * lisp/emacs-lisp/comp.el (comp-never-optimize-functions): - Blacklist all primitives advised by evil-mode from trampoline - optimization. - (comp-call-optim-form-call): Prevent trampoline optimization for - recursive calls at speed 2 to respect elisp original semantic. + * lisp/emacs-lisp/comp.el (comp-never-optimize-functions): + Blacklist all primitives advised by evil-mode from trampoline + optimization. + (comp-call-optim-form-call): Prevent trampoline optimization for + recursive calls at speed 2 to respect elisp original semantic. 2020-05-18 Glenn Morris @@ -77001,14 +76991,14 @@ 2020-05-17 Andrea Corallo - * Fix Garbage Collector for missing calle-saved regs content (Bug#41357) + Fix Garbage Collector for missing calle-saved regs content (Bug#41357) - * src/alloc.c (SET_STACK_TOP_ADDRESS): Do not call - __builtin_unwind_init. - (flush_stack_call_func1): Rename from 'flush_stack_call_func'. - (flush_stack_call_func): New function to spill all registers - before calling 'flush_stack_call_func1'. This to make sure the - top of the stack identified includes those registers. + * src/alloc.c (SET_STACK_TOP_ADDRESS): Do not call + __builtin_unwind_init. + (flush_stack_call_func1): Rename from 'flush_stack_call_func'. + (flush_stack_call_func): New function to spill all registers + before calling 'flush_stack_call_func1'. This to make sure the + top of the stack identified includes those registers. 2020-05-17 Richard Stallman @@ -77027,11 +77017,11 @@ 2020-05-17 Andrea Corallo - * Fix bug#41346 assertion triggered while loading dump + Fix bug#41346 assertion triggered while loading dump - * src/comp.c (load_comp_unit): While loading from dump lambda - fixups are still to happen here. Verify relocation coherency only - after 'top_level_run' execution. + * src/comp.c (load_comp_unit): While loading from dump lambda + fixups are still to happen here. Verify relocation coherency only + after 'top_level_run' execution. 2020-05-17 Paul Eggert @@ -77217,87 +77207,87 @@ 2020-05-15 Andrea Corallo - * Do not refuse to compile if a dynamic lambda is encountered + Do not refuse to compile if a dynamic lambda is encountered - * lisp/emacs-lisp/comp.el (comp-lex-byte-func-p): New subst. - (comp-intern-func-in-ctxt): Do not crash if we still encounter a - non lexical scoped lambda. + * lisp/emacs-lisp/comp.el (comp-lex-byte-func-p): New subst. + (comp-intern-func-in-ctxt): Do not crash if we still encounter a + non lexical scoped lambda. 2020-05-15 Andrea Corallo - * Allow for logging async compilation command line + Allow for logging async compilation command line - * lisp/emacs-lisp/comp.el (comp-run-async-workers): When non zero - verbose log async compilation command line invocation. + * lisp/emacs-lisp/comp.el (comp-run-async-workers): When non zero + verbose log async compilation command line invocation. 2020-05-15 Andrea Corallo - * Add check_comp_unit_relocs + Add check_comp_unit_relocs - * src/comp.c (check_comp_unit_relocs): Add function to verify - relocation coherency. - (load_comp_unit): Call it. + * src/comp.c (check_comp_unit_relocs): Add function to verify + relocation coherency. + (load_comp_unit): Call it. 2020-05-15 Andrea Corallo Sanity check on lambdas fixups - * src/pdumper.c (dump_do_dump_relocation): While fixing up lambda - relocation verify placeholder coherency. + * src/pdumper.c (dump_do_dump_relocation): While fixing up lambda + relocation verify placeholder coherency. - * src/comp.c (syms_of_comp): Define symbol 'lambda-fixup'. + * src/comp.c (syms_of_comp): Define symbol 'lambda-fixup'. - * lisp/emacs-lisp/comp.el (comp-finalize-container): Leave a - lambda-fixup as placeholder in the relocation as a sanity check. + * lisp/emacs-lisp/comp.el (comp-finalize-container): Leave a + lambda-fixup as placeholder in the relocation as a sanity check. 2020-05-15 Andrea Corallo - * Fix speed 2 bootstrap + Fix speed 2 bootstrap - (comp-call-optim-func): Do nothing if the function name is - unknown. + (comp-call-optim-func): Do nothing if the function name is + unknown. 2020-05-15 Andrea Corallo - * Native compiler test update + Native compiler test update - * test/src/comp-tests.el (comp-tests-lambda-return): Add a test - verifying that the returned lambda is actually native compiled. + * test/src/comp-tests.el (comp-tests-lambda-return): Add a test + verifying that the returned lambda is actually native compiled. 2020-05-15 Andrea Corallo - * Better Vcomp_sym_subr_c_name_h test function + doc + Better Vcomp_sym_subr_c_name_h test function + doc - * src/comp.c (syms_of_comp): 'Vcomp_sym_subr_c_name_h' need only - 'eq' as test + fix doc for 'comp-sym-subr-c-name-h'. + * src/comp.c (syms_of_comp): 'Vcomp_sym_subr_c_name_h' need only + 'eq' as test + fix doc for 'comp-sym-subr-c-name-h'. 2020-05-15 Andrea Corallo Add anonymous lambdas reload mechanism - * src/pdumper.c (dump_do_dump_relocation): Initialize - 'lambda_gc_guard' while resurrecting. - (dump_do_dump_relocation): Revive lambdas and fixup them. - - * src/comp.h (struct Lisp_Native_Comp_Unit): Define new - 'lambda_gc_guard' 'lambda_c_name_idx_h' 'data_imp_relocs' - 'loaded_once' fields. - - * src/comp.c (load_comp_unit): Use compilaiton unit 'loaded_once' - field. - (make_subr, Fcomp__register_lambda): New functions. - (Fcomp__register_subr): Make use of 'make_subr'. - (Fnative_elisp_load): Indent. - (Fnative_elisp_load): Initialize 'lambda_gc_guard' - 'lambda_c_name_idx_h' fields. - (syms_of_comp): Add Scomp__register_lambda. - - * lisp/emacs-lisp/comp.el (comp-ctxt): Change - 'byte-func-to-func-h' hash key test. - (comp-ctxt): Add 'lambda-fixups-h' slot. - (comp-emit-lambda-for-top-level): New function. - (comp-finalize-relocs): Never emit lambdas in pure space. - (comp-finalize-relocs): Fixup relocation indexes. + * src/pdumper.c (dump_do_dump_relocation): Initialize + 'lambda_gc_guard' while resurrecting. + (dump_do_dump_relocation): Revive lambdas and fixup them. + + * src/comp.h (struct Lisp_Native_Comp_Unit): Define new + 'lambda_gc_guard' 'lambda_c_name_idx_h' 'data_imp_relocs' + 'loaded_once' fields. + + * src/comp.c (load_comp_unit): Use compilaiton unit 'loaded_once' + field. + (make_subr, Fcomp__register_lambda): New functions. + (Fcomp__register_subr): Make use of 'make_subr'. + (Fnative_elisp_load): Indent. + (Fnative_elisp_load): Initialize 'lambda_gc_guard' + 'lambda_c_name_idx_h' fields. + (syms_of_comp): Add Scomp__register_lambda. + + * lisp/emacs-lisp/comp.el (comp-ctxt): Change + 'byte-func-to-func-h' hash key test. + (comp-ctxt): Add 'lambda-fixups-h' slot. + (comp-emit-lambda-for-top-level): New function. + (comp-finalize-relocs): Never emit lambdas in pure space. + (comp-finalize-relocs): Fixup relocation indexes. 2020-05-15 Stefan Monnier @@ -77354,92 +77344,92 @@ 2020-05-14 Andrea Corallo - * Render all immediates as comments at comp-debug > 2 + Render all immediates as comments at comp-debug > 2 - * src/comp.c (emit_mvar_rval): No reason to emit only fixnums. + * src/comp.c (emit_mvar_rval): No reason to emit only fixnums. 2020-05-14 Andrea Corallo - * Dump log and intemediate GCC IRs only at comp-debug 3 + Dump log and intemediate GCC IRs only at comp-debug 3 - * src/comp.c (Fcomp__init_ctxt): Increase threshold for dumping - really everything to 'comp-debug' 3. + * src/comp.c (Fcomp__init_ctxt): Increase threshold for dumping + really everything to 'comp-debug' 3. 2020-05-14 Andrea Corallo - * Prune now unnecessary byte-code objects + Prune now unnecessary byte-code objects - * lisp/emacs-lisp/comp.el (comp-finalize-container): Prune - byte-code that was lambdas. - (comp-compile-ctxt-to-file): Remove fixme. + * lisp/emacs-lisp/comp.el (comp-finalize-container): Prune + byte-code that was lambdas. + (comp-compile-ctxt-to-file): Remove fixme. 2020-05-14 Andrea Corallo - * Rework comp-spill-lap-function + Rework comp-spill-lap-function - * lisp/emacs-lisp/comp.el (comp-spill-lap-function): Move code - from to comp-intern-func-in-ctxt. - (comp-intern-func-in-ctxt): New function, this guard - in case byte-to-native-lambda-byte-func is nil. + * lisp/emacs-lisp/comp.el (comp-spill-lap-function): Move code + from to comp-intern-func-in-ctxt. + (comp-intern-func-in-ctxt): New function, this guard + in case byte-to-native-lambda-byte-func is nil. 2020-05-14 Andrea Corallo - * Split emit_const_lisp_obj logic + Split emit_const_lisp_obj logic - * src/comp.c (emit_lisp_obj_reloc_lval): New function. - (emit_const_lisp_obj): Rename into 'emit_lisp_obj_rval' and strip - logic for 'emit_lisp_obj_reloc_lval'. - (emit_NILP, emit_CHECK_CONS, emit_mvar_rval, emit_set_internal) - (define_CAR_CDR, define_bool_to_lisp_obj): Update for - 'emit_const_lisp_obj' being renamed. + * src/comp.c (emit_lisp_obj_reloc_lval): New function. + (emit_const_lisp_obj): Rename into 'emit_lisp_obj_rval' and strip + logic for 'emit_lisp_obj_reloc_lval'. + (emit_NILP, emit_CHECK_CONS, emit_mvar_rval, emit_set_internal) + (define_CAR_CDR, define_bool_to_lisp_obj): Update for + 'emit_const_lisp_obj' being renamed. 2020-05-14 Andrea Corallo - * Rename emit_mvar_access -> emit_mvar_lval + Rename emit_mvar_access -> emit_mvar_lval - * src/comp.c (emit_mvar_access): Rename into 'emit_mvar_lval'. - (emit_mvar_rval, emit_frame_assignment): Update for - 'emit_mvar_access' rename. + * src/comp.c (emit_mvar_access): Rename into 'emit_mvar_lval'. + (emit_mvar_rval, emit_frame_assignment): Update for + 'emit_mvar_access' rename. 2020-05-14 Andrea Corallo - * Rename emit_mvar_val -> emit_mvar_rval + Rename emit_mvar_val -> emit_mvar_rval - * src/comp.c (emit_mvar_val): Rename into 'emit_mvar_rval'. - (emit_set_internal, emit_simple_limple_call, emit_limple_insn) - (emit_call_with_type_hint, emit_call2_with_type_hint) - (emit_consp, emit_numperp, emit_integerp): Update for - 'emit_mvar_val' rename. + * src/comp.c (emit_mvar_val): Rename into 'emit_mvar_rval'. + (emit_set_internal, emit_simple_limple_call, emit_limple_insn) + (emit_call_with_type_hint, emit_call2_with_type_hint) + (emit_consp, emit_numperp, emit_integerp): Update for + 'emit_mvar_val' rename. 2020-05-14 Andrea Corallo - * Indentation fix + Indentation fix - * src/comp.c (Fcomp__init_ctxt, Fcomp__release_ctxt) - (Fcomp__compile_ctxt_to_file, Fcomp__register_subr): Indentation - fix. + * src/comp.c (Fcomp__init_ctxt, Fcomp__release_ctxt) + (Fcomp__compile_ctxt_to_file, Fcomp__register_subr): Indentation + fix. 2020-05-14 Andrea Corallo Update spill LAP machinery and compile anonymous lambdas - * lisp/emacs-lisp/comp.el (comp-spill-lap-function): Make use of - byte-to-native-lambdas-h and update for 'byte-to-native-func-def'. - (comp-spill-lap-function): Rework logic to retrive LAP using - 'byte-to-native-lambdas-h'. - (comp-emit-for-top-level): Update for 'byte-to-native-function'. - - * lisp/emacs-lisp/bytecomp.el: Add commentary on new spill LAP - mechanism. - (byte-to-native-lambda, byte-to-native-func-def): New structures. - (byte-to-native-top-level): Indent. - (byte-to-native-lambdas-h): Update doc. - (byte-compile-lapcode): Add a 'byte-to-native-lambda' instance - into byte-to-native-lambdas-h instead of just LAP. - (byte-compile-file-form-defmumble): Store into - 'byte-to-native-func-def' only the byte compiled function, the LAP - will be retrived through 'byte-to-native-lambdas-h'. - (byte-compile-lambda): Return the byte compiled function. + * lisp/emacs-lisp/comp.el (comp-spill-lap-function): Make use of + byte-to-native-lambdas-h and update for 'byte-to-native-func-def'. + (comp-spill-lap-function): Rework logic to retrive LAP using + 'byte-to-native-lambdas-h'. + (comp-emit-for-top-level): Update for 'byte-to-native-function'. + + * lisp/emacs-lisp/bytecomp.el: Add commentary on new spill LAP + mechanism. + (byte-to-native-lambda, byte-to-native-func-def): New structures. + (byte-to-native-top-level): Indent. + (byte-to-native-lambdas-h): Update doc. + (byte-compile-lapcode): Add a 'byte-to-native-lambda' instance + into byte-to-native-lambdas-h instead of just LAP. + (byte-compile-file-form-defmumble): Store into + 'byte-to-native-func-def' only the byte compiled function, the LAP + will be retrived through 'byte-to-native-lambdas-h'. + (byte-compile-lambda): Return the byte compiled function. 2020-05-14 Tino Calancha @@ -77789,10 +77779,10 @@ 2020-05-10 Andrea Corallo - * Fix `comp-deferred-compilation-black-list' effectiveness + Fix `comp-deferred-compilation-black-list' effectiveness - * lisp/emacs-lisp/comp.el (native-compile-async): Fix logic for - 'comp-deferred-compilation-black-list' effectiveness. + * lisp/emacs-lisp/comp.el (native-compile-async): Fix logic for + 'comp-deferred-compilation-black-list' effectiveness. 2020-05-10 Andrea Corallo @@ -77804,10 +77794,10 @@ 2020-05-09 Andrea Corallo - * Fix --enable-check-lisp-object-type GNU/Linux X86_64 build + Fix --enable-check-lisp-object-type GNU/Linux X86_64 build - * src/comp.c (emit_mvar_val): Fix missing use of XLP macro. - (load_comp_unit): Fix missing use of NILP macro. + * src/comp.c (emit_mvar_val): Fix missing use of XLP macro. + (load_comp_unit): Fix missing use of NILP macro. 2020-05-09 Simen Heggestøyl @@ -77890,12 +77880,12 @@ 2020-05-09 Andrea Corallo - * Add 'comp-deferred-compilation-black-list' customize + Add 'comp-deferred-compilation-black-list' customize - * lisp/emacs-lisp/comp.el (comp-deferred-compilation-black-list): - New customize. - (native-compile-async): Make use of - 'comp-deferred-compilation-black-list'. + * lisp/emacs-lisp/comp.el (comp-deferred-compilation-black-list): + New customize. + (native-compile-async): Make use of + 'comp-deferred-compilation-black-list'. 2020-05-09 Michal Nazarewicz @@ -78024,11 +78014,11 @@ 2020-05-07 Andrea Corallo - * Fix bug#41112 + Fix bug#41112 - * lisp/emacs-lisp/comp.el (comp-jump-table-optimizable): New - function. - (comp-emit-switch): Make use of 'comp-jump-table-optimizable'. + * lisp/emacs-lisp/comp.el (comp-jump-table-optimizable): New + function. + (comp-emit-switch): Make use of 'comp-jump-table-optimizable'. 2020-05-07 Michael Albinus @@ -78061,13 +78051,13 @@ 2020-05-06 Andrea Corallo - * Add native compilation unit black list + Add native compilation unit black list - * lisp/emacs-lisp/comp.el (comp-bootstrap-black-list): New customize. - (batch-native-compile): Rework to make use of - 'comp-bootstrap-black-list'. - (batch-byte-native-compile-for-bootstrap): Add assertion to make - logic assumption explicit. + * lisp/emacs-lisp/comp.el (comp-bootstrap-black-list): New customize. + (batch-native-compile): Rework to make use of + 'comp-bootstrap-black-list'. + (batch-byte-native-compile-for-bootstrap): Add assertion to make + logic assumption explicit. 2020-05-06 Paul Eggert @@ -78184,8 +78174,8 @@ * configure.ac: Better messaging when libgccjit fails smoke test - * configure.ac: Fix libgccjit test LDFLAGS plus better messaging - in case of its fail. + * configure.ac: Fix libgccjit test LDFLAGS plus better messaging + in case of its fail. 2020-05-05 Paul Eggert @@ -78202,8 +78192,8 @@ * configure.ac: Add a better libgccjit test plus some morw err message - * configure.ac (libgccjit_smoke_test, libgccjit_not_found) - (libgccjit_broken): New functions. + * configure.ac (libgccjit_smoke_test, libgccjit_not_found) + (libgccjit_broken): New functions. 2020-05-04 Andrea Corallo @@ -78374,17 +78364,17 @@ 2020-05-03 Andrea Corallo - * Add a warning for missing write privilege + Add a warning for missing write privilege - * lisp/emacs-lisp/comp.el (native-compile-async): Check for write - privilege and raise a warning in case. + * lisp/emacs-lisp/comp.el (native-compile-async): Check for write + privilege and raise a warning in case. 2020-05-03 Andrea Corallo - * Introduce `comp-output-directory' + Introduce `comp-output-directory' - * lisp/emacs-lisp/comp.el (comp-output-directory): New function. - (comp-output-base-filename): Use `comp-output-directory'. + * lisp/emacs-lisp/comp.el (comp-output-directory): New function. + (comp-output-base-filename): Use `comp-output-directory'. 2020-05-03 Mattias Engdegård @@ -78634,10 +78624,10 @@ 2020-04-29 Andrea Corallo - * Fix async compilation non respecting `comp-always-compile' nil value. + Fix async compilation non respecting `comp-always-compile' nil value. - * lisp/emacs-lisp/comp.el (comp-run-async-workers): Fix missing - `comp-output-filename' usage. + * lisp/emacs-lisp/comp.el (comp-run-async-workers): Fix missing + `comp-output-filename' usage. 2020-04-29 Andrea Corallo @@ -78860,24 +78850,24 @@ Rework spill LAP mechanism in preparation of compiling lambdas. - * lisp/emacs-lisp/comp.el (comp-spill-lap-function): No need anymore - to have `byte-native-compiling' bound to free-func. - (comp-spill-lap-function): Make use of `byte-to-native-lap-h' and - clean-up. - (comp-spill-lap-function): Likewise. - - * lisp/emacs-lisp/bytecomp.el (byte-to-native-function): Add lap slot. - (byte-to-native-lap): Rename into byte-to-native-lap-h. - (byte-compile-lapcode): Spill lap after having int assembled and - store it into `byte-to-native-lap-h'. - (byte-compile-not-top-level): Remove. - (byte-compile-file-form-defmumble): Fill directly lap slot. - (byte-compile-lambda): Remove `byte-compile-not-top-level'. - (byte-compile-out-toplevel): Restore original code. - (byte-compile-form): Remove `byte-compile-not-top-level'. - (byte-compile-function-form): Likewise. - (byte-compile-flush-pending): No need anymore to set - `byte-compile-current-form' so restore orignal code. + * lisp/emacs-lisp/comp.el (comp-spill-lap-function): No need anymore + to have `byte-native-compiling' bound to free-func. + (comp-spill-lap-function): Make use of `byte-to-native-lap-h' and + clean-up. + (comp-spill-lap-function): Likewise. + + * lisp/emacs-lisp/bytecomp.el (byte-to-native-function): Add lap slot. + (byte-to-native-lap): Rename into byte-to-native-lap-h. + (byte-compile-lapcode): Spill lap after having int assembled and + store it into `byte-to-native-lap-h'. + (byte-compile-not-top-level): Remove. + (byte-compile-file-form-defmumble): Fill directly lap slot. + (byte-compile-lambda): Remove `byte-compile-not-top-level'. + (byte-compile-out-toplevel): Restore original code. + (byte-compile-form): Remove `byte-compile-not-top-level'. + (byte-compile-function-form): Likewise. + (byte-compile-flush-pending): No need anymore to set + `byte-compile-current-form' so restore orignal code. 2020-04-26 Stefan Kangas @@ -78920,20 +78910,20 @@ Convert before final function doc hash into a vector. - * lisp/emacs-lisp/comp.el (comp-finalize-relocs): Convert doc hash - table into vector befor final. - (comp-emit-for-top-level): Rename `comp-ctxt-doc-index-h' -> - `comp-ctxt-function-docs'. - (comp-ctxt): Likewise. + * lisp/emacs-lisp/comp.el (comp-finalize-relocs): Convert doc hash + table into vector befor final. + (comp-emit-for-top-level): Rename `comp-ctxt-doc-index-h' -> + `comp-ctxt-function-docs'. + (comp-ctxt): Likewise. - * src/comp.c (native_function_doc): Update logic for documentation - being a vector. - (emit_ctxt_code): Update for 'comp-ctxt-doc-index-h' slot rename. + * src/comp.c (native_function_doc): Update logic for documentation + being a vector. + (emit_ctxt_code): Update for 'comp-ctxt-doc-index-h' slot rename. - * src/comp.h (struct Lisp_Native_Comp_Unit): Rename 'data_fdoc_h' - into data_fdoc_v. + * src/comp.h (struct Lisp_Native_Comp_Unit): Rename 'data_fdoc_h' + into data_fdoc_v. - * src/pdumper.c (dump_native_comp_unit): Likewise. + * src/pdumper.c (dump_native_comp_unit): Likewise. 2020-04-26 Stefan Kangas @@ -78997,16 +78987,16 @@ Lazy load function documentation. - * src/comp.c (native_function_doc): New function. - (load_comp_unit): Do not load function doc during load. + * src/comp.c (native_function_doc): New function. + (load_comp_unit): Do not load function doc during load. - * src/comp.h: Extern 'native_function_doc'. + * src/comp.h: Extern 'native_function_doc'. - * src/doc.c (Fdocumentation): Call 'native_function_doc' to - retrive function doc. + * src/doc.c (Fdocumentation): Call 'native_function_doc' to + retrive function doc. - * src/pdumper.c (dump_native_comp_unit): Zero 'data_fdoc_h' before - dumping. + * src/pdumper.c (dump_native_comp_unit): Zero 'data_fdoc_h' before + dumping. 2020-04-25 Andrea Corallo @@ -79014,11 +79004,11 @@ 2020-04-25 Andrea Corallo - * Rename TEXT_OPTIM_QLY into TEXT_OPTIM_QLY_SYM. + Rename TEXT_OPTIM_QLY into TEXT_OPTIM_QLY_SYM. - * src/comp.c (TEXT_OPTIM_QLY): Rename into TEXT_OPTIM_QLY_SYM. - (emit_ctxt_code): Update TEXT_OPTIM_QLY naming. - (load_comp_unit): Likewise. + * src/comp.c (TEXT_OPTIM_QLY): Rename into TEXT_OPTIM_QLY_SYM. + (emit_ctxt_code): Update TEXT_OPTIM_QLY naming. + (load_comp_unit): Likewise. 2020-04-25 Andrea Corallo @@ -79028,34 +79018,34 @@ Store function documentations in a hash table. - * src/pdumper.c (dump_subr): Update Lisp_Subr hash. - (dump_subr): Update for new compilation unit layout. - (dump_vectorlike): Update pvec_type hash. + * src/pdumper.c (dump_subr): Update Lisp_Subr hash. + (dump_subr): Update for new compilation unit layout. + (dump_vectorlike): Update pvec_type hash. - * src/lisp.h (struct Lisp_Subr): Remove 'native_doc' index. - (DEFUN): Update macro for new compilation unit - layout. + * src/lisp.h (struct Lisp_Subr): Remove 'native_doc' index. + (DEFUN): Update macro for new compilation unit + layout. - * src/doc.c (Fdocumentation): Update for new compilation unit - layout. + * src/doc.c (Fdocumentation): Update for new compilation unit + layout. - * src/comp.h (struct Lisp_Native_Comp_Unit): - Add 'data_fdoc_h' field. + * src/comp.h (struct Lisp_Native_Comp_Unit): + Add 'data_fdoc_h' field. - * src/comp.c (TEXT_FDOC_SYM): New macro. - (emit_ctxt_code): Emit function documentations. - (load_comp_unit): Load function documentation. - (Fcomp__register_subr): Rename parameter. - (Fcomp__register_subr): Update for new compilation unit - layout. + * src/comp.c (TEXT_FDOC_SYM): New macro. + (emit_ctxt_code): Emit function documentations. + (load_comp_unit): Load function documentation. + (Fcomp__register_subr): Rename parameter. + (Fcomp__register_subr): Update for new compilation unit + layout. - * src/alloc.c (mark_object): Update for new compilation unit - layout. - (syms_of_alloc): Likewise. + * src/alloc.c (mark_object): Update for new compilation unit + layout. + (syms_of_alloc): Likewise. - * lisp/emacs-lisp/comp.el (comp-ctxt): Add doc-index-h slot. - (comp-emit-for-top-level): Emit doc index as 'comp--register-subr' - doc parameter. + * lisp/emacs-lisp/comp.el (comp-ctxt): Add doc-index-h slot. + (comp-emit-for-top-level): Emit doc index as 'comp--register-subr' + doc parameter. 2020-04-25 Andrea Corallo @@ -79094,17 +79084,17 @@ Fix deferred-compilation for double compilation (bug#40838). - * lisp/emacs-lisp/comp.el (native-compile-async): Prevent double - compilation (bug#40838). + * lisp/emacs-lisp/comp.el (native-compile-async): Prevent double + compilation (bug#40838). 2020-04-25 Andrea Corallo Store ongoing compilations processes as hash table. - * lisp/emacs-lisp/comp.el (comp-async-processes): Rename as - `comp-async-compilations'. - (comp-async-runnings): Make use as `comp-async-compilations'. - (comp-run-async-workers): Likewise. + * lisp/emacs-lisp/comp.el (comp-async-processes): Rename as + `comp-async-compilations'. + (comp-async-runnings): Make use as `comp-async-compilations'. + (comp-run-async-workers): Likewise. 2020-04-25 Eli Zaretskii @@ -79892,18 +79882,18 @@ Always set `load-true-file-name' where `load-file-name' is set too. - Fix bug#40620. + Fix bug#40620. - * lisp/cus-dep.el (custom-make-dependencies): Set - load-true-file-name. + * lisp/cus-dep.el (custom-make-dependencies): Set + load-true-file-name. - * lisp/emacs-lisp/package.el (package-quickstart-refresh): - Likewise. + * lisp/emacs-lisp/package.el (package-quickstart-refresh): + Likewise. - * lisp/international/mule.el (load-with-code-conversion): - Likewise. + * lisp/international/mule.el (load-with-code-conversion): + Likewise. - * lisp/loadup.el (load-true-file-name): Likewise. + * lisp/loadup.el (load-true-file-name): Likewise. 2020-04-14 Eli Zaretskii @@ -79993,7 +79983,7 @@ 2020-04-13 Andrea Corallo - * Fix native-compile-async for bug#40602. + Fix native-compile-async for bug#40602. * lisp/emacs-lisp/comp.el (native-compile-async): Relax coherency condition. @@ -80011,9 +80001,9 @@ Fix function find mechanism for installed instance. - * src/lread.c (parent_directory): New function. - (Fload): Make use of 'parent_directory' and fix load-history - build-up with relative paths. + * src/lread.c (parent_directory): New function. + (Fload): Make use of 'parent_directory' and fix load-history + build-up with relative paths. 2020-04-13 Glenn Morris @@ -80111,12 +80101,12 @@ Introduce load-true-file-name - * src/comp.c (maybe_defer_native_compilation): Use - `load-true-file-name' instead of `load-file-name'. + * src/comp.c (maybe_defer_native_compilation): Use + `load-true-file-name' instead of `load-file-name'. - * src/lread.c (Fload, end_of_file_error, read1, read_list) - (init_lread, syms_of_lread): Add new `load-true-file-name' and - fake `load-file-name' value when loading .eln files. + * src/lread.c (Fload, end_of_file_error, read1, read_list) + (init_lread, syms_of_lread): Add new `load-true-file-name' and + fake `load-file-name' value when loading .eln files. 2020-04-13 Eli Zaretskii @@ -80198,19 +80188,19 @@ Vinvocation_directory must be set during dump load process to support .eln load. - * src/pdumper.h: (pdumper_load): Add argv0 and original_pwd - parameters. + * src/pdumper.h: (pdumper_load): Add argv0 and original_pwd + parameters. - * src/pdumper.c (pdumper_load): Add argv0 and original_pwd - parameter plus call 'set_invocation_vars'. + * src/pdumper.c (pdumper_load): Add argv0 and original_pwd + parameter plus call 'set_invocation_vars'. - * src/lisp.h (set_invocation_vars): New function. + * src/lisp.h (set_invocation_vars): New function. - * src/emacs.c (set_invocation_vars): New function. - (init_cmdargs): Move logic into 'set_invocation_vars' and call it. - (load_pdump): Add 'original_pwd' parameter and update calls to - 'pdumper_load'. - (main): Set emacs_wd earlier and update call to 'pdumper_load'. + * src/emacs.c (set_invocation_vars): New function. + (init_cmdargs): Move logic into 'set_invocation_vars' and call it. + (load_pdump): Add 'original_pwd' parameter and update calls to + 'pdumper_load'. + (main): Set emacs_wd earlier and update call to 'pdumper_load'. 2020-04-12 Andrea Corallo @@ -80219,11 +80209,11 @@ Set the filename for every compilation unit as realtive to obtain a position independent dump. - * lisp/loadup.el: Modify filename for every compilation unit as - position independent. + * lisp/loadup.el: Modify filename for every compilation unit as + position independent. - * src/pdumper.c (dump_do_dump_relocation): Update to be invocation - directory relative. + * src/pdumper.c (dump_do_dump_relocation): Update to be invocation + directory relative. 2020-04-12 Andrea Corallo @@ -82322,7 +82312,7 @@ 2020-03-13 Andrea Corallo - * Do not produce .eln files when a byte compilation error happen + Do not produce .eln files when a byte compilation error happen Have the byte compiler signal an error when compilation fails to stop native compilation too. @@ -82464,7 +82454,7 @@ 2020-03-10 Andrea Corallo - * Fix GC mark for native compiled functions + Fix GC mark for native compiled functions native_intspec and native_doc fields has to be reached by the subr cause are not anymore in the CU. @@ -82533,11 +82523,11 @@ 2020-03-08 Andrea Corallo - * Fix typo into pdumper integration + Fix typo into pdumper integration 2020-03-08 Andrea Corallo - * New native-comp CI setup + New native-comp CI setup - Disable 'test-all' till is known to be broken in this branch. @@ -82547,7 +82537,7 @@ 2020-03-08 Andrea Corallo - * Fix two find function functions for native compilation + Fix two find function functions for native compilation `find-function-library' and `find-library-name' gets fixed for new eln compilation directory layout. @@ -82710,7 +82700,7 @@ 2020-03-07 Andrea Corallo - * Raise timeout for test-native-bootstrap CI test and build with -j2 + Raise timeout for test-native-bootstrap CI test and build with -j2 2020-03-07 Glenn Morris @@ -82754,7 +82744,7 @@ 2020-03-07 Andrea Corallo - * Add test-native-bootstrap as CI test + Add test-native-bootstrap as CI test 2020-03-06 Glenn Morris @@ -82793,7 +82783,7 @@ 2020-03-04 Andrea Corallo - * Fix build for stock configuration + Fix build for stock configuration Vcomp_native_path_postfix is declared only in native configuration. @@ -84068,7 +84058,7 @@ 2020-03-01 Andrea Corallo - * Reorganize passes + Reorganize passes - Make propagate responsible for keeping SSA up to date. @@ -84079,7 +84069,7 @@ 2020-03-01 Andrea Corallo - * Allow for multiple SSA runs + Allow for multiple SSA runs Add function ssa-status as `comp-func' slot and have `comp-clean-ssa' to run when necessary. @@ -84104,7 +84094,7 @@ 2020-03-01 Andrea Corallo - * Rename comp-emit-set-const -> comp-emit-setimm + Rename comp-emit-set-const -> comp-emit-setimm * Reduce stack depth while marking native compiled subrs @@ -84134,13 +84124,13 @@ 2020-02-26 Andrea Corallo - * Two grammar fixes into async hooks doc + Two grammar fixes into async hooks doc Merge remote-tracking branch 'savannah/master' into HEAD 2020-02-23 Andrea Corallo - * Add two hooks for async native compilation + Add two hooks for async native compilation 2020-02-23 Andrea Corallo @@ -88851,10 +88841,10 @@ Bump Emacs version to 27.1.91 - * README: - * configure.ac: - * nt/README.W32: - * msdos/sed2v2.inp: Bump Emacs version to 27.1.91. + * README: + * configure.ac: + * nt/README.W32: + * msdos/sed2v2.inp: Bump Emacs version to 27.1.91. 2021-02-03 Eli Zaretskii @@ -90150,13 +90140,11 @@ 2021-02-03 Michael R. Mauger - 2020-03-29 Michael R. Mauger - - * lisp/progmodes/sql.el (sql-add-product): Re-correct argument - spec. Previous change was due to my mistake; I have - resolved back to the prior behavior (Bug#39960). - * test/lisp/progmodes/sql-tests.el (sql-test-add-product): Added - test to insure I don't make the same mistake again. + * lisp/progmodes/sql.el (sql-add-product): Re-correct argument + spec. Previous change was due to my mistake; I have + resolved back to the prior behavior (Bug#39960). + * test/lisp/progmodes/sql-tests.el (sql-test-add-product): Added + test to insure I don't make the same mistake again. 2021-02-03 Lars Ingebrigtsen @@ -98361,8 +98349,6 @@ 2019-11-26 Martin Rudalics - 2019-11-26 Martin Rudalics - * lisp/window.el (switch-to-visible-buffer): Declare obsolete. (switch-to-prev-buffer-skip): New option. (switch-to-prev-buffer, switch-to-next-buffer): Obey @@ -119603,10 +119589,10 @@ * lisp/textmodes/table.el (table-source-languages): Add support for wiki and mediawiki tables (bug#13287). - 2019-06-27 Lars Ingebrigtsen +2019-06-27 Lars Ingebrigtsen - * doc/emacs/text.texi (Table Misc): Mention the new wiki and - mediawiki formats. + * doc/emacs/text.texi (Table Misc): Mention the new wiki and + mediawiki formats. 2019-06-27 Wilfred Hughes @@ -120092,16 +120078,16 @@ Add a new command to report the number and size of the marked files - 2019-06-25 Constantino Calancha +2019-06-25 Constantino Calancha - * lisp/dired.el (dired-mode-map): New keystroke and menu binding - (bug#22829). + * lisp/dired.el (dired-mode-map): New keystroke and menu binding + (bug#22829). - 2019-06-25 Lars Ingebrigtsen +2019-06-25 Lars Ingebrigtsen - * doc/emacs/dired.texi (Marks vs Flags): Document it. + * doc/emacs/dired.texi (Marks vs Flags): Document it. - * lisp/dired.el (dired-number-of-marked-files): New command. + * lisp/dired.el (dired-number-of-marked-files): New command. 2019-06-25 Phil Sainty @@ -125372,7 +125358,7 @@ Copy from Gnulib * m4/gnulib-comp.m4: Regenerate. - 2019-05-26 Paul Eggert +2019-05-26 Paul Eggert Update author/maintainer info This mostly updates email addresses and fixes spellings of @@ -135515,8 +135501,6 @@ Replace NUL characters when calling into libxml - 2019-02-27 Robert Pluim - * lisp/net/eww.el (eww-display-html): Replace NUL characters with "\0", as libxml can't handle embedded NULLs. (Bug#34469) @@ -143603,23 +143587,23 @@ Bad assumptions in the `vc-hg-find-file-hook' prevented it from working. This correctly them. (Bug#33129). - 2018-10-23 Daniel Pittman +2018-10-23 Daniel Pittman - * lisp/vc/vc-hg.el (vc-hg-find-file-hook): This function made two - assumptions about conflicted files that were not accurate, - preventing conflicts in files ever being detected. + * lisp/vc/vc-hg.el (vc-hg-find-file-hook): This function made two + assumptions about conflicted files that were not accurate, + preventing conflicts in files ever being detected. - The first was that the `vc-state' was cache by the time this was - invoked, which it is not - at least when visiting the file, or - using `vc-refresh-state'. + The first was that the `vc-state' was cache by the time this was + invoked, which it is not - at least when visiting the file, or + using `vc-refresh-state'. - The second was that a file with the ".orig" extension would be - present, next to the file being visited. This is the default - behavior of Mercurial, but can be overridden by the user. + The second was that a file with the ".orig" extension would be + present, next to the file being visited. This is the default + behavior of Mercurial, but can be overridden by the user. - Since the VC mode-line code will shortly calculate the state for - display, the optimization of testing for the ".orig" file only - delayed this work by a few moments. + Since the VC mode-line code will shortly calculate the state for + display, the optimization of testing for the ".orig" file only + delayed this work by a few moments. 2018-11-02 Stefan Monnier @@ -145627,7 +145611,7 @@ * lisp/gnus/nnmaildir.el (nnmaildir-request-accept-article): Omit leading 0s after "M" in file name. Problem reported by Glenn Morris in: - https://lists.gnu.org/r/emacs-devel/2018-09/msg00660.html + https://lists.gnu.org/r/emacs-devel/2018-09/msg00660.html 2018-09-15 Paul Eggert @@ -148141,7 +148125,7 @@ (cleanup_vector): Use it. Use if-then-else systematically; this lets GCC do a bit better job. - 2018-08-08 Paul Eggert +2018-08-08 Paul Eggert * src/alloc.c (VBLOCK_BYTES_MAX): Use vroundup_ct, not vroundup, so that can be used in static assertions. @@ -205477,9 +205461,9 @@ auth-source-user-and-password: add forgotten user parameter - * lisp/auth-source.el (auth-source-user-and-password): Use - accidentally unused "user" parameter. - Reported by Oscar Najera . + * lisp/auth-source.el (auth-source-user-and-password): Use + accidentally unused "user" parameter. + Reported by Oscar Najera . 2017-01-31 Simen Heggestøyl @@ -213817,8 +213801,6 @@ Signal file-already-exists if appropriate. * src/fileio.c (syms_of_fileio): Define file-missing. - 2016-10-18 Paul Eggert - 2016-10-21 Mark Oteiza Teach browse-url to open man page urls