]> git.eshelyaron.com Git - emacs.git/commit
Store function type and expose it with `subr-type'
authorAndrea Corallo <akrl@sdf.org>
Mon, 28 Dec 2020 12:41:38 +0000 (13:41 +0100)
committerAndrea Corallo <akrl@sdf.org>
Mon, 28 Dec 2020 15:15:23 +0000 (16:15 +0100)
commit2b3c7c751739f48545c3888549ae312ea334951b
tree76f84a48f59a77f16f1ee733ea0e61a12c5bd336
parent5a8622ba2c623c60fab5b2784d5f15eeebcf46f2
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'.
lisp/emacs-lisp/comp.el
src/alloc.c
src/comp.c
src/data.c
src/lisp.h
src/pdumper.c
test/src/comp-tests.el