1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-18 18:40:22 +02:00

*** empty log message ***

This commit is contained in:
Keisuke Nishida 2001-04-06 05:00:10 +00:00
parent 3d5ee0cdcc
commit 499a4c07c7
11 changed files with 67 additions and 38 deletions

View file

@ -228,8 +228,7 @@ vm_fetch_length (scm_byte_t *ip, size_t *lenp)
* VM
*/
#define VM_DEFAULT_STACK_SIZE (16 * 1024)
#define VM_MAXIMUM_STACK_SIZE (128 * 1024)
#define VM_DEFAULT_STACK_SIZE (4 * 1024)
#define VM_REGULAR_ENGINE 0
#define VM_DEBUG_ENGINE 1
@ -250,6 +249,8 @@ vm_fetch_length (scm_byte_t *ip, size_t *lenp)
scm_bits_t scm_tc16_vm;
static SCM the_vm;
static SCM
make_vm (void)
#define FUNC_NAME "make_vm"
@ -258,11 +259,10 @@ make_vm (void)
struct scm_vm *vp = SCM_MUST_MALLOC (sizeof (struct scm_vm));
vp->stack_size = VM_DEFAULT_STACK_SIZE;
vp->stack_base = SCM_MUST_MALLOC (vp->stack_size * sizeof (SCM));
vp->stack_limit = vp->stack_base + vp->stack_size - 1;
vp->stack_limit = vp->stack_base + vp->stack_size;
vp->ip = NULL;
vp->sp = vp->stack_limit;
vp->fp = NULL;
vp->cons = 0;
vp->time = 0;
vp->clock = 0;
vp->options = SCM_EOL;
@ -337,6 +337,16 @@ SCM_DEFINE (scm_vm_version, "vm-version", 0, 0, 0,
}
#undef FUNC_NAME
SCM_DEFINE (scm_the_vm, "the-vm", 0, 0, 0,
(),
"")
#define FUNC_NAME s_scm_the_vm
{
return the_vm;
}
#undef FUNC_NAME
SCM_DEFINE (scm_vm_p, "vm?", 1, 0, 0,
(SCM obj),
"")
@ -489,10 +499,9 @@ SCM_DEFINE (scm_vm_stats, "vm-stats", 1, 0, 0,
SCM_VALIDATE_VM (1, vm);
stats = scm_c_make_vector (3, SCM_MAKINUM (0));
SCM_VELTS (stats)[0] = scm_long2num (SCM_VM_DATA (vm)->cons);
SCM_VELTS (stats)[1] = scm_long2num (SCM_VM_DATA (vm)->time);
SCM_VELTS (stats)[2] = scm_long2num (SCM_VM_DATA (vm)->clock);
stats = scm_c_make_vector (2, SCM_MAKINUM (0));
SCM_VELTS (stats)[0] = scm_long2num (SCM_VM_DATA (vm)->time);
SCM_VELTS (stats)[1] = scm_long2num (SCM_VM_DATA (vm)->clock);
return stats;
}
@ -596,6 +605,8 @@ scm_init_vm (void)
scm_set_smob_free (scm_tc16_vm, vm_free);
scm_set_smob_apply (scm_tc16_vm, scm_vm_apply, 1, 0, 1);
the_vm = scm_permanent_object (make_vm ());
#ifndef SCM_MAGIC_SNARFER
#include "vm.x"
#endif