[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
feature/native-comp 5a8622b 5/6: Reorder subr register function argument
From: |
Andrea Corallo |
Subject: |
feature/native-comp 5a8622b 5/6: Reorder subr register function arguments to make some room |
Date: |
Mon, 28 Dec 2020 10:33:16 -0500 (EST) |
branch: feature/native-comp
commit 5a8622ba2c623c60fab5b2784d5f15eeebcf46f2
Author: Andrea Corallo <akrl@sdf.org>
Commit: Andrea Corallo <akrl@sdf.org>
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.
---
lisp/emacs-lisp/comp.el | 28 +++++++++++++++-------------
src/comp.c | 27 ++++++++++++++-------------
2 files changed, 29 insertions(+), 26 deletions(-)
diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el
index 2ca7c50..3b84569 100644
--- a/lisp/emacs-lisp/comp.el
+++ b/lisp/emacs-lisp/comp.el
@@ -1693,17 +1693,17 @@ the annotation emission."
'comp--late-register-subr
'comp--register-subr)
(make-comp-mvar :constant name)
+ (make-comp-mvar :constant c-name)
(car args)
(cdr args)
- (make-comp-mvar :constant c-name)
(make-comp-mvar
:constant
- (let* ((h (comp-ctxt-function-docs comp-ctxt))
- (i (hash-table-count h)))
- (puthash i (comp-func-doc f) h)
- i))
- (make-comp-mvar :constant
- (comp-func-int-spec f))
+ (list
+ (let* ((h (comp-ctxt-function-docs comp-ctxt))
+ (i (hash-table-count h)))
+ (puthash i (comp-func-doc f) h)
+ i)
+ (comp-func-int-spec f)))
;; This is the compilation unit it-self passed as
;; parameter.
(make-comp-mvar :slot 0))))))
@@ -1734,15 +1734,17 @@ These are stored in the reloc data array."
(puthash (comp-func-byte-func func)
(make-comp-mvar :constant nil)
(comp-ctxt-lambda-fixups-h comp-ctxt)))
+ (make-comp-mvar :constant (comp-func-c-name func))
(car args)
(cdr args)
- (make-comp-mvar :constant (comp-func-c-name func))
(make-comp-mvar
- :constant (let* ((h (comp-ctxt-function-docs comp-ctxt))
- (i (hash-table-count h)))
- (puthash i (comp-func-doc func) h)
- i))
- (make-comp-mvar :constant (comp-func-int-spec func))
+ :constant
+ (list
+ (let* ((h (comp-ctxt-function-docs comp-ctxt))
+ (i (hash-table-count h)))
+ (puthash i (comp-func-doc func) h)
+ i)
+ (comp-func-int-spec func)))
;; This is the compilation unit it-self passed as
;; parameter.
(make-comp-mvar :slot 0)))))
diff --git a/src/comp.c b/src/comp.c
index 52ebf92..ee8ae98 100644
--- a/src/comp.c
+++ b/src/comp.c
@@ -4925,13 +4925,14 @@ make_subr (Lisp_Object symbol_name, Lisp_Object minarg,
Lisp_Object maxarg,
}
DEFUN ("comp--register-lambda", Fcomp__register_lambda, Scomp__register_lambda,
- 7, 7, 0,
+ 6, 6, 0,
doc: /* Register anonymous lambda.
This gets called by top_level_run during the load phase. */)
- (Lisp_Object reloc_idx, Lisp_Object minarg, Lisp_Object maxarg,
- Lisp_Object c_name, Lisp_Object doc_idx, Lisp_Object intspec,
- Lisp_Object comp_u)
+ (Lisp_Object reloc_idx, Lisp_Object c_name, Lisp_Object minarg,
+ Lisp_Object maxarg, Lisp_Object rest, Lisp_Object comp_u)
{
+ Lisp_Object doc_idx = FIRST (rest);
+ Lisp_Object intspec = SECOND (rest);
struct Lisp_Native_Comp_Unit *cu = XNATIVE_COMP_UNIT (comp_u);
if (cu->loaded_once)
return Qnil;
@@ -4953,13 +4954,14 @@ This gets called by top_level_run during the load
phase. */)
}
DEFUN ("comp--register-subr", Fcomp__register_subr, Scomp__register_subr,
- 7, 7, 0,
+ 6, 6, 0,
doc: /* Register exported subr.
This gets called by top_level_run during the load phase. */)
- (Lisp_Object name, Lisp_Object minarg, Lisp_Object maxarg,
- Lisp_Object c_name, Lisp_Object doc_idx, Lisp_Object intspec,
- Lisp_Object comp_u)
+ (Lisp_Object name, Lisp_Object c_name, Lisp_Object minarg,
+ Lisp_Object maxarg, Lisp_Object rest, Lisp_Object comp_u)
{
+ Lisp_Object doc_idx = FIRST (rest);
+ Lisp_Object intspec = SECOND (rest);
Lisp_Object tem =
make_subr (SYMBOL_NAME (name), minarg, maxarg, c_name, doc_idx, intspec,
comp_u);
@@ -4982,16 +4984,15 @@ This gets called by top_level_run during the load
phase. */)
}
DEFUN ("comp--late-register-subr", Fcomp__late_register_subr,
- Scomp__late_register_subr, 7, 7, 0,
+ Scomp__late_register_subr, 6, 6, 0,
doc: /* Register exported subr.
This gets called by late_top_level_run during the load phase. */)
- (Lisp_Object name, Lisp_Object minarg, Lisp_Object maxarg,
- Lisp_Object c_name, Lisp_Object doc, Lisp_Object intspec,
- Lisp_Object comp_u)
+ (Lisp_Object name, Lisp_Object c_name, Lisp_Object minarg,
+ Lisp_Object maxarg, Lisp_Object rest, Lisp_Object comp_u)
{
if (!NILP (Fequal (Fsymbol_function (name),
Fgethash (name, Vcomp_deferred_pending_h, Qnil))))
- Fcomp__register_subr (name, minarg, maxarg, c_name, doc, intspec, comp_u);
+ Fcomp__register_subr (name, c_name, minarg, maxarg, type, rest, comp_u);
Fremhash (name, Vcomp_deferred_pending_h);
return Qnil;
}
- feature/native-comp updated (42fb6de -> 2b3c7c7), Andrea Corallo, 2020/12/28
- feature/native-comp ccce152 1/6: * Improve some slot type into comp.el, Andrea Corallo, 2020/12/28
- feature/native-comp 8a0467e 2/6: ; lisp/emacs-lisp/comp.el (comp-emit-narg-prologue): Nit., Andrea Corallo, 2020/12/28
- feature/native-comp eafcc8e 4/6: Propagate function calls also when hiddend under funcall, Andrea Corallo, 2020/12/28
- feature/native-comp 5a8622b 5/6: Reorder subr register function arguments to make some room,
Andrea Corallo <=
- feature/native-comp e532ec9 3/6: Compute function type for native compiled functions, Andrea Corallo, 2020/12/28
- feature/native-comp 2b3c7c7 6/6: Store function type and expose it with `subr-type', Andrea Corallo, 2020/12/28