* eval.h (scm_t_trampoline_1, scm_t_trampoline_2): New types.
authorMikael Djurfeldt <djurfeldt@nada.kth.se>
Sun, 1 Dec 2002 13:09:26 +0000 (13:09 +0000)
committerMikael Djurfeldt <djurfeldt@nada.kth.se>
Sun, 1 Dec 2002 13:09:26 +0000 (13:09 +0000)
commit504d99c5f8e72c5640810eac181755a331a53c15
treee422c776a60707bec56f4e4e691264d2edd6ff9e
parent0359fc922c62c4ee45b504a970e2763c2b180a4c
* eval.h (scm_t_trampoline_1, scm_t_trampoline_2): New types.

* eval.c, eval.h (scm_trampoline_1, scm_trampoline_2): New functions.

* eval.c (call_subr2_2, call_lsubr_2, call_closure_2): New functions;
(map, for-each): Handle also application on two args as a special
case; Use trampolines.

* sort.c (scm_cmp_function): Choose subr2less for scm_tc7_subr_2o;
(subr2oless): Removed.
(scm_restricted_vector_sort_x): Use scm_return_first to keep the
vector GC protected.

* eval.c (check_map_args): Use scm_out_of_range_pos instead of
scm_out_of_range.
libguile/ChangeLog
libguile/eval.c
libguile/eval.h
libguile/sort.c