mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 03:40:34 +02:00
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.
This commit is contained in:
parent
6c2961a011
commit
cc7005bc37
16 changed files with 46 additions and 265 deletions
|
@ -137,20 +137,15 @@ SCM_DEFINE (scm_procedure_name, "procedure-name", 1, 0, 0,
|
|||
"Return the name of the procedure @var{proc}")
|
||||
#define FUNC_NAME s_scm_procedure_name
|
||||
{
|
||||
SCM name;
|
||||
|
||||
SCM_VALIDATE_PROC (1, proc);
|
||||
while (SCM_STRUCTP (proc) && SCM_STRUCT_APPLICABLE_P (proc))
|
||||
proc = SCM_STRUCT_PROCEDURE (proc);
|
||||
switch (SCM_TYP7 (proc)) {
|
||||
case scm_tc7_gsubr:
|
||||
return SCM_SUBR_NAME (proc);
|
||||
default:
|
||||
{
|
||||
SCM name = scm_procedure_property (proc, scm_sym_name);
|
||||
if (scm_is_false (name) && SCM_PROGRAM_P (proc))
|
||||
name = scm_program_name (proc);
|
||||
return name;
|
||||
}
|
||||
}
|
||||
name = scm_procedure_property (proc, scm_sym_name);
|
||||
if (scm_is_false (name) && SCM_PROGRAM_P (proc))
|
||||
name = scm_program_name (proc);
|
||||
return name;
|
||||
}
|
||||
#undef FUNC_NAME
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue