mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-16 16:50:21 +02:00
eval.c uses scm_i_call_with_current_continuation
* libguile/continuations.h * libguile/continuations.c (scm_i_call_with_current_continuation): New internal function. Not exported because I'm not sure whether or not this should have a continuation barrier in the future. Uses a hand-coded VM procedure. * libguile/eval.c (eval): Use scm_i_call_with_current_continuation.
This commit is contained in:
parent
1d1cae0e2e
commit
babfc7b2c3
3 changed files with 42 additions and 19 deletions
|
@ -295,19 +295,7 @@ eval (SCM x, SCM env)
|
|||
}
|
||||
|
||||
case SCM_M_CONT:
|
||||
{
|
||||
int first;
|
||||
SCM val = scm_make_continuation (&first);
|
||||
|
||||
if (!first)
|
||||
return val;
|
||||
else
|
||||
{
|
||||
proc = eval (mx, env);
|
||||
args = scm_list_1 (val);
|
||||
goto apply_proc;
|
||||
}
|
||||
}
|
||||
return scm_i_call_with_current_continuation (eval (mx, env));
|
||||
|
||||
case SCM_M_CALL_WITH_VALUES:
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue