diff options
author | Andy Wingo <wingo@pobox.com> | 2008-10-09 12:17:51 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2008-10-09 12:17:51 +0200 |
commit | 0570c3f197f910cc136969d6a2ed2ad0792b3501 (patch) | |
tree | 1dbb11e8f715803d6ab0eceb5e5acd34ddf6e5c9 /libguile/vm-engine.c | |
parent | 1bb6b839ecd06f3a487c792fb317f000a557f771 (diff) | |
download | guile-0570c3f197f910cc136969d6a2ed2ad0792b3501.tar.gz |
sundries: side effects in interpreted repl, wrong-num-args in vm, self-checks
* libguile/vm-engine.c (vm_error_wrong_num_args): Sync the registers
before calling scm_wrong_num_args. (The other cases are handled more
uniformly.)
* libguile/vm.c (vm_heapify_frames_1): Add a FIXME: I don't think we
should be modifying the stack.
(scm_vm_save_stack): If stack nulling is enabled, verify the stack here
before reifying it.
* module/language/scheme/spec.scm (scheme): Use primitive-eval here
instead of eval, because at the repl we do want to allow evaluations to
have side effects like setting the current module.
Diffstat (limited to 'libguile/vm-engine.c')
-rw-r--r-- | libguile/vm-engine.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/libguile/vm-engine.c b/libguile/vm-engine.c index 4436e7bd5..a79786015 100644 --- a/libguile/vm-engine.c +++ b/libguile/vm-engine.c @@ -152,6 +152,9 @@ vm_run (SCM vm, SCM program, SCM args) vm_error_wrong_num_args: /* nargs and program are valid */ + SYNC_ALL (); + if (objects) + scm_array_handle_release (&objects_handle); scm_wrong_num_args (program); /* shouldn't get here */ goto vm_error; |