mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-15 16:20:17 +02:00
formally deprecate trampolines
* libguile/eval.c: * libguile/deprecated.h: * libguile/deprecated.c (scm_trampoline_0, scm_trampoline_1) (scm_trampoline_2): Actually deprecate trampolines. * srfi/srfi-1.c: Fix all trampoline uses in srfi-1.c.
This commit is contained in:
parent
6c9e8a5354
commit
a3e923770e
4 changed files with 120 additions and 156 deletions
|
@ -1572,6 +1572,45 @@ scm_gc_set_debug_check_freelist_x (SCM flag)
|
|||
}
|
||||
#endif
|
||||
|
||||
|
||||
/* Trampolines
|
||||
*
|
||||
* Trampolines were an intent to speed up calling the same Scheme procedure many
|
||||
* times from C.
|
||||
*
|
||||
* However, this was the wrong thing to optimize; if you really know what you're
|
||||
* calling, call its function directly, otherwise you're in Scheme-land, and we
|
||||
* have many better tricks there (inlining, for example, which can remove the
|
||||
* need for closures and free variables).
|
||||
*
|
||||
* Also, in the normal debugging case, trampolines were being computed but not
|
||||
* used. Silliness.
|
||||
*/
|
||||
|
||||
scm_t_trampoline_0
|
||||
scm_trampoline_0 (SCM proc)
|
||||
{
|
||||
scm_c_issue_deprecation_warning
|
||||
("`scm_trampoline_0' is deprecated. Just use `scm_call_0' instead.");
|
||||
return scm_call_0;
|
||||
}
|
||||
|
||||
scm_t_trampoline_1
|
||||
scm_trampoline_1 (SCM proc)
|
||||
{
|
||||
scm_c_issue_deprecation_warning
|
||||
("`scm_trampoline_1' is deprecated. Just use `scm_call_1' instead.");
|
||||
return scm_call_1;
|
||||
}
|
||||
|
||||
scm_t_trampoline_2
|
||||
scm_trampoline_2 (SCM proc)
|
||||
{
|
||||
scm_c_issue_deprecation_warning
|
||||
("`scm_trampoline_2' is deprecated. Just use `scm_call_2' instead.");
|
||||
return scm_call_2;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
scm_i_init_deprecated ()
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include "libguile/__scm.h"
|
||||
#include "libguile/arrays.h"
|
||||
#include "libguile/strings.h"
|
||||
#include "libguile/eval.h"
|
||||
|
||||
#if (SCM_ENABLE_DEPRECATED == 1)
|
||||
|
||||
|
@ -587,6 +588,12 @@ SCM_DEPRECATED SCM scm_map_free_list (void);
|
|||
SCM_DEPRECATED SCM scm_gc_set_debug_check_freelist_x (SCM flag);
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/* Deprecated 2009-11-27, scm_call_N is sufficient */
|
||||
SCM_DEPRECATED scm_t_trampoline_0 scm_trampoline_0 (SCM proc);
|
||||
SCM_DEPRECATED scm_t_trampoline_1 scm_trampoline_1 (SCM proc);
|
||||
SCM_DEPRECATED scm_t_trampoline_2 scm_trampoline_2 (SCM proc);
|
||||
|
||||
|
||||
void scm_i_init_deprecated (void);
|
||||
|
|
|
@ -3179,38 +3179,6 @@ SCM_DEFINE (scm_nconc2last, "apply:nconc2last", 1, 0, 0,
|
|||
|
||||
|
||||
|
||||
/* Trampolines
|
||||
*
|
||||
* Trampolines were an intent to speed up calling the same Scheme procedure many
|
||||
* times from C.
|
||||
*
|
||||
* However, this was the wrong thing to optimize; if you really know what you're
|
||||
* calling, call its function directly, otherwise you're in Scheme-land, and we
|
||||
* have many better tricks there (inlining, for example, which can remove the
|
||||
* need for closures and free variables).
|
||||
*
|
||||
* Also, in the normal debugging case, trampolines were being computed but not
|
||||
* used. Silliness.
|
||||
*/
|
||||
|
||||
scm_t_trampoline_0
|
||||
scm_trampoline_0 (SCM proc)
|
||||
{
|
||||
return scm_call_0;
|
||||
}
|
||||
|
||||
scm_t_trampoline_1
|
||||
scm_trampoline_1 (SCM proc)
|
||||
{
|
||||
return scm_call_1;
|
||||
}
|
||||
|
||||
scm_t_trampoline_2
|
||||
scm_trampoline_2 (SCM proc)
|
||||
{
|
||||
return scm_call_2;
|
||||
}
|
||||
|
||||
/* Typechecking for multi-argument MAP and FOR-EACH.
|
||||
|
||||
Verify that each element of the vector ARGV, except for the first,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue