| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
| |
* 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'.
* lisp/emacs-lisp/comp.el (comp-finalize-container): Leave a
lambda-fixup as placeholder in the relocation as a sanity check.
|
|
|
|
|
| |
* 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/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/comp.c (emit_mvar_rval): No reason to emit only fixnums.
|
|
|
|
|
| |
* src/comp.c (Fcomp__init_ctxt): Increase threshold for dumping
really everything to 'comp-debug' 3.
|
|
|
|
|
|
|
|
|
| |
* 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_mvar_access): Rename into 'emit_mvar_lval'.
(emit_mvar_rval, emit_frame_assignment): Update for
'emit_mvar_access' 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.
|
|
|
|
|
|
| |
* src/comp.c (Fcomp__init_ctxt, Fcomp__release_ctxt)
(Fcomp__compile_ctxt_to_file, Fcomp__register_subr): Indentation
fix.
|
| |
|
|
|
|
|
| |
* src/comp.c (emit_mvar_val): Fix missing use of XLP macro.
(load_comp_unit): Fix missing use of NILP macro.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.h (struct Lisp_Native_Comp_Unit): Rename 'data_fdoc_h'
into data_fdoc_v.
* src/pdumper.c (dump_native_comp_unit): Likewise.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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/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/comp.c (TEXT_OPTIM_QLY): Rename into TEXT_OPTIM_QLY_SYM.
(emit_ctxt_code): Update TEXT_OPTIM_QLY naming.
(load_comp_unit): Likewise.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
| |
* 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.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Wrap gcc_jit_context_new_binary_op within emit_binary_op to make sure
input type are coherent and save a slew of code.
|
|
|
|
|
| |
Coerce only when the destination type is different from the current
one.
|
| |
|
| |
|
|
|
|
|
|
| |
In i386 ABI parameter passing of structs (and unions) is done as
pointer + size. Surprisingly this is done *always* even if the
structure is known to be word size.
|
|
|
|
|
| |
This rework make functions being indexed by their unique C symbol name
preventing multiple lisp function with the same name colliding.
|
|
|
|
|
| |
Make maybe_defer_native_compilation able to compile comp dependecies
breaking circularity.
|
| |
|
|
|
|
|
| |
At speed 1 propagate does not run and all mvars are allocated in array
0.
|
| |
|
|
|
|
| |
Prevent recursive compilation while deferring compilation.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Introduce a first mechanism to trigger compilation when lex elc files
are loaded. This is off by default and has to be better tested.
|
| |
|
|
|
|
|
|
|
| |
Fix uninitialized ephemeral data relocation for the case when a dumped
compilation unit is manually reloaded.
Guard also data_ephemeral_vec against compiler optimizations.
|
| |
|
| |
|
| |
|
|
|
|
| |
Given that every object identify a relocation class simplify setimm too.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
For now just comp-speed and comp-debug are stored.
|
| |
|
|
|
|
|
|
| |
Add a new class of relocated objects that is in use just during load
process. This in order to avoid having to maintain them in the heap
and traverse them at every GC.
|
| |
|
|
|
|
|
| |
Every function call by reference gets use one unique array of
arguments.
|
| |
|