1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-15 16:20:17 +02:00

remove asubrs

* libguile/tags.h (scm_tcs_subrs, scm_tc7_asubr): Remove definitions.

* libguile/goops.c (scm_class_of)
* libguile/procprop.c (scm_i_procedure_arity)
* libguile/procs.c (scm_thunk_p)
* libguile/vm.c (apply_foreign): Remove cases for asubrs.

* libguile/array-map.c: Gut all of the optimizations, because there are
  no more asubrs, soon won't be rpsubrs, and all of this should happen
  on the Scheme level, ideally.
This commit is contained in:
Andy Wingo 2009-12-03 17:05:14 +01:00
parent bf5a05f2a0
commit 31d845b4bc
6 changed files with 16 additions and 228 deletions

View file

@ -280,16 +280,6 @@ apply_foreign (SCM proc, SCM *args, int nargs, int headroom)
case scm_tc7_cxr:
if (nargs != 1) scm_wrong_num_args (proc);
return scm_i_chase_pairs (args[0], (scm_t_bits) SCM_SUBRF (proc));
case scm_tc7_asubr:
if (nargs < 2)
return SCM_SUBRF (proc) (args[0], SCM_UNDEFINED);
{
SCM x = args[0];
int idx = 1;
while (nargs-- > 1)
x = SCM_SUBRF (proc) (x, args[idx++]);
return x;
}
case scm_tc7_rpsubr:
{
int idx = 0;