1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-20 03:30:27 +02:00

Prefer scm_call_n to scm_c_vm_run (scm_the_vm())

* libguile/vm.c (scm_i_capture_current_stack): Cosmetic tweak.
  (scm_call_n): Define here instead of in eval.c.  All callers of
  scm_c_vm_run were passing scm_the_vm() as the VM.  Eventually
  scm_call_n will replace scm_c_vm_run.

* libguile/eval.c: Adapt all callers.
This commit is contained in:
Andy Wingo 2013-11-21 18:23:08 +01:00
parent 4fcbc1b0d8
commit 55ee360700
2 changed files with 26 additions and 27 deletions

View file

@ -334,7 +334,7 @@ eval (SCM x, SCM env)
for (i = 0; i < argc; i++, mx = CDR (mx))
argv[i] = EVAL1 (CAR (mx), env);
return scm_c_vm_run (scm_the_vm (), proc, argv, argc);
return scm_call_n (proc, argv, argc);
}
case SCM_M_CONT:
@ -486,41 +486,41 @@ eval (SCM x, SCM env)
SCM
scm_call_0 (SCM proc)
{
return scm_c_vm_run (scm_the_vm (), proc, NULL, 0);
return scm_call_n (proc, NULL, 0);
}
SCM
scm_call_1 (SCM proc, SCM arg1)
{
return scm_c_vm_run (scm_the_vm (), proc, &arg1, 1);
return scm_call_n (proc, &arg1, 1);
}
SCM
scm_call_2 (SCM proc, SCM arg1, SCM arg2)
{
SCM args[] = { arg1, arg2 };
return scm_c_vm_run (scm_the_vm (), proc, args, 2);
return scm_call_n (proc, args, 2);
}
SCM
scm_call_3 (SCM proc, SCM arg1, SCM arg2, SCM arg3)
{
SCM args[] = { arg1, arg2, arg3 };
return scm_c_vm_run (scm_the_vm (), proc, args, 3);
return scm_call_n (proc, args, 3);
}
SCM
scm_call_4 (SCM proc, SCM arg1, SCM arg2, SCM arg3, SCM arg4)
{
SCM args[] = { arg1, arg2, arg3, arg4 };
return scm_c_vm_run (scm_the_vm (), proc, args, 4);
return scm_call_n (proc, args, 4);
}
SCM
scm_call_5 (SCM proc, SCM arg1, SCM arg2, SCM arg3, SCM arg4, SCM arg5)
{
SCM args[] = { arg1, arg2, arg3, arg4, arg5 };
return scm_c_vm_run (scm_the_vm (), proc, args, 5);
return scm_call_n (proc, args, 5);
}
SCM
@ -528,7 +528,7 @@ scm_call_6 (SCM proc, SCM arg1, SCM arg2, SCM arg3, SCM arg4, SCM arg5,
SCM arg6)
{
SCM args[] = { arg1, arg2, arg3, arg4, arg5, arg6 };
return scm_c_vm_run (scm_the_vm (), proc, args, 6);
return scm_call_n (proc, args, 6);
}
SCM
@ -536,7 +536,7 @@ scm_call_7 (SCM proc, SCM arg1, SCM arg2, SCM arg3, SCM arg4, SCM arg5,
SCM arg6, SCM arg7)
{
SCM args[] = { arg1, arg2, arg3, arg4, arg5, arg6, arg7 };
return scm_c_vm_run (scm_the_vm (), proc, args, 7);
return scm_call_n (proc, args, 7);
}
SCM
@ -544,7 +544,7 @@ scm_call_8 (SCM proc, SCM arg1, SCM arg2, SCM arg3, SCM arg4, SCM arg5,
SCM arg6, SCM arg7, SCM arg8)
{
SCM args[] = { arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8 };
return scm_c_vm_run (scm_the_vm (), proc, args, 8);
return scm_call_n (proc, args, 8);
}
SCM
@ -552,14 +552,10 @@ scm_call_9 (SCM proc, SCM arg1, SCM arg2, SCM arg3, SCM arg4, SCM arg5,
SCM arg6, SCM arg7, SCM arg8, SCM arg9)
{
SCM args[] = { arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9 };
return scm_c_vm_run (scm_the_vm (), proc, args, 9);
return scm_call_n (proc, args, 9);
}
SCM
scm_call_n (SCM proc, SCM *argv, size_t nargs)
{
return scm_c_vm_run (scm_the_vm (), proc, argv, nargs);
}
/* scm_call_n defined in vm.c */
SCM
scm_call (SCM proc, ...)
@ -579,7 +575,7 @@ scm_call (SCM proc, ...)
argv[i] = va_arg (argp, SCM);
va_end (argp);
return scm_c_vm_run (scm_the_vm (), proc, argv, nargs);
return scm_call_n (proc, argv, nargs);
}
/* Simple procedure applies
@ -603,7 +599,7 @@ scm_apply_0 (SCM proc, SCM args)
args = SCM_CDR (args);
}
return scm_c_vm_run (scm_the_vm (), proc, argv, nargs);
return scm_call_n (proc, argv, nargs);
}
SCM
@ -664,8 +660,8 @@ static SCM var_primitive_eval;
SCM
scm_primitive_eval (SCM exp)
{
return scm_c_vm_run (scm_the_vm (), scm_variable_ref (var_primitive_eval),
&exp, 1);
return scm_call_n (scm_variable_ref (var_primitive_eval),
&exp, 1);
}

View file

@ -154,12 +154,10 @@ SCM
scm_i_capture_current_stack (void)
{
scm_i_thread *thread;
SCM vm;
struct scm_vm *vp;
thread = SCM_I_CURRENT_THREAD;
vm = scm_the_vm ();
vp = SCM_VM_DATA (vm);
vp = SCM_VM_DATA (scm_the_vm ());
return scm_i_vm_capture_stack (vp->stack_base, vp->fp, vp->sp, vp->ip,
scm_dynstack_capture_all (&thread->dynstack),
@ -826,6 +824,12 @@ scm_c_vm_run (SCM vm, SCM program, SCM *argv, int nargs)
return vm_engines[vp->engine](vp, program, argv, nargs);
}
SCM
scm_call_n (SCM proc, SCM *argv, size_t nargs)
{
return scm_c_vm_run (scm_the_vm (), proc, argv, nargs);
}
SCM
scm_the_vm (void)
{
@ -1023,11 +1027,10 @@ SCM_DEFINE (scm_call_with_vm, "call-with-vm", 1, 0, 1,
* Initialize
*/
SCM scm_load_compiled_with_vm (SCM file)
SCM
scm_load_compiled_with_vm (SCM file)
{
SCM program = scm_load_thunk_from_file (file);
return scm_c_vm_run (scm_the_vm (), program, NULL, 0);
return scm_call_0 (scm_load_thunk_from_file (file));
}