diff options
author | Andy Wingo <wingo@pobox.com> | 2010-01-06 22:16:57 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2010-01-07 23:49:39 +0100 |
commit | cc7005bc371ee104c368dbb894eb4f8b7a86d64a (patch) | |
tree | 8d4e17497cf6b11b9f22e528efcf9b29b51cba2d /libguile/gsubr.h | |
parent | 6c2961a01142c7ba9fc03a410004dd696e9208cd (diff) | |
download | guile-cc7005bc371ee104c368dbb894eb4f8b7a86d64a.tar.gz |
remove scm_tc7_gsubr
* libguile/tags.h (scm_tc7_gsubr): Return to the pool of unused tc7s, as
there are no more gsubrs. Yay :)
* libguile/programs.h (SCM_F_PROGRAM_IS_PRIMITIVE):
(SCM_PROGRAM_IS_PRIMITIVE): New flag and accessor.
* libguile/gsubr.c (create_gsubr):
* libguile/snarf.h (SCM_STATIC_PROGRAM): Give subrs a PRIMITIVE flag.
* libguile/smob.h:
* libguile/smob.c (scm_i_smob_arity): New internal procedure. Uses the
old GSUBR type macros, local to the file.
* libguile/procprop.c (scm_i_procedure_arity): Call out to
scm_i_smob_arity, and remove a gsubr case.
* libguile/gc.c (scm_i_tag_name):
* libguile/evalext.c (scm_self_evaluating_p):
* libguile/goops.c (scm_class_of):
* libguile/vm.c (apply_foreign):
* libguile/hash.c (scm_hasher):
* libguile/debug.c (scm_procedure_name):
* libguile/print.c (iprin1): Remove gsubr cases.
* libguile/gsubr.h (SCM_PRIMITIVE_P): Fix to work with the new VM
program regimen.
(SCM_GSUBR_TYPE, SCM_GSUBR_MAKTYPE, SCM_GSUBR_MAX, SCM_GSUBR_REQ)
(SCM_GSUBR_OPT, SCM_GSUBR_REST): Remove these macros, that are no
longer useful.
* libguile/gsubr.c (scm_i_gsubr_apply, scm_i_gsubr_apply_list)
(scm_i_gsubr_apply_array): Remove internal gsubr application
functions.
Diffstat (limited to 'libguile/gsubr.h')
-rw-r--r-- | libguile/gsubr.h | 17 |
1 files changed, 1 insertions, 16 deletions
diff --git a/libguile/gsubr.h b/libguile/gsubr.h index 0f9d2acd9..be83a97b6 100644 --- a/libguile/gsubr.h +++ b/libguile/gsubr.h @@ -37,7 +37,7 @@ SCM_API SCM scm_subr_objcode_trampoline (unsigned int nreq, /* Subrs */ -#define SCM_PRIMITIVE_P(x) (SCM_NIMP (x) && SCM_TYP7 (x) == scm_tc7_gsubr) +#define SCM_PRIMITIVE_P(x) (SCM_PROGRAM_P (x) && SCM_PROGRAM_IS_PRIMITIVE (x)) #define SCM_PRIMITIVE_GENERIC_P(x) (SCM_PROGRAM_P (x) && SCM_PROGRAM_IS_PRIMITIVE_GENERIC (x)) #define SCM_SUBRF(x) ((SCM (*)()) (SCM_FOREIGN_OBJECT (SCM_SIMPLE_VECTOR_REF (SCM_PROGRAM_OBJTABLE (x), 0), void*))) @@ -49,17 +49,6 @@ SCM_API SCM scm_subr_objcode_trampoline (unsigned int nreq, -/* Return an integer describing the arity of GSUBR, a subr of type - `scm_tc7_gsubr'. The result can be interpreted with `SCM_GSUBR_REQ ()' - and similar. */ -#define SCM_GSUBR_TYPE(gsubr) (SCM_CELL_TYPE (gsubr) >> 8) - -#define SCM_GSUBR_MAKTYPE(req, opt, rst) ((req)|((opt)<<4)|((rst)<<8)) -#define SCM_GSUBR_MAX 33 -#define SCM_GSUBR_REQ(x) ((long)(x)&0xf) -#define SCM_GSUBR_OPT(x) (((long)(x)&0xf0)>>4) -#define SCM_GSUBR_REST(x) ((long)(x)>>8) - SCM_API SCM scm_c_make_gsubr (const char *name, int req, int opt, int rst, SCM (*fcn) ()); SCM_API SCM scm_c_make_gsubr_with_generic (const char *name, @@ -71,10 +60,6 @@ SCM_API SCM scm_c_define_gsubr_with_generic (const char *name, int req, int opt, int rst, SCM (*fcn) (), SCM *gf); -SCM_INTERNAL SCM scm_i_gsubr_apply (SCM proc, SCM arg, ...); -SCM_INTERNAL SCM scm_i_gsubr_apply_list (SCM proc, SCM args); -SCM_INTERNAL SCM scm_i_gsubr_apply_array (SCM proc, SCM *args, int nargs, - int headroom); SCM_INTERNAL void scm_init_gsubr (void); #endif /* SCM_GSUBR_H */ |