* 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.
* 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/doc.c (Fdocumentation): Update for new compilation unit
layout.
* 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/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-async-processes): Rename as
`comp-async-compilations'.
(comp-async-runnings): Make use as `comp-async-compilations'.
(comp-run-async-workers): Likewise.
Introduce `comp-async-jobs-number' to control async job number, this
can be now adjusted dynamically.
Also make `native-compile-async' able to dynamically queue new
compilations.
Change: (comp-start-async-worker) Refactor slightly
Change: (comp-start-async-worker) Inline (comp-to-file-p)
Change: (comp-source-files) Rename from comp-src-pool
Add: (comp-start-async-worker) Assertion
Change: (comp-async-processes) Rename from comp-prc-pool
Tidy: (native-compile)
Rename variables, improve docstring, adjust log message, simplify
filename code.
Tidy: (batch-native-compile) Docstring
Tidy: whitespace-cleanup
Tidy: (comp-start-async-worker) Use () instead of nil
Tidy: (comp-files-queue) Rename from comp-source-files
Change: (native-compile-async) Improve paths support
Tidy: Comment
Save a line for one word. :)
Change: (comp-log) Rewrite without macro, follow tail
Change: (native-compile-async) Use end-of-string in filename regexps
Change: (native-compile-async) Use cl-loop instead of dotimes
Add/Change: (comp-log-to-buffer) And use in comp-log
Comment: Tidy comment
Fix: (configure.ac) Option description
Fix: (comp-log) Argument
Fix: (comp-start-async-worker) Variable name
Change: Undo whitespace changes
Some of them included incorrect indentation because the
macros' (declare (indent)) forms were not loaded. The
whitespace-cleanup should be run from Emacs 27+ with the file loaded.
- Make propagate responsible for keeping SSA up to date.
- Run propagate-alloc as very last before final not to risk bothering
with mvar array allocation during previous tranformations.
- Fix SSA if TCO modify the CFG.
Merge duplicated objects during final. Precendece is:
1 d-default
2 d-impure
3 d-ephemeral
Now every object identify uniquely a relocation class. Because of
this there's no need to keep the reloc class into m-var.