1
Fork 0
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:
Andy Wingo 2010-02-08 13:33:21 +01:00
parent 1d1cae0e2e
commit babfc7b2c3
3 changed files with 42 additions and 19 deletions

View file

@ -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:
{