removed most global functions from factor.cpp
parent
38eb7a23f1
commit
28665b5287
116
vm/factor.cpp
116
vm/factor.cpp
|
@ -3,7 +3,7 @@
|
||||||
namespace factor
|
namespace factor
|
||||||
{
|
{
|
||||||
|
|
||||||
factorvm *vm = new factorvm;
|
factorvm *vm;
|
||||||
|
|
||||||
void factorvm::default_parameters(vm_parameters *p)
|
void factorvm::default_parameters(vm_parameters *p)
|
||||||
{
|
{
|
||||||
|
@ -45,11 +45,6 @@ void factorvm::default_parameters(vm_parameters *p)
|
||||||
p->stack_traces = true;
|
p->stack_traces = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
VM_C_API void default_parameters(vm_parameters *p)
|
|
||||||
{
|
|
||||||
return vm->default_parameters(p);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool factorvm::factor_arg(const vm_char* str, const vm_char* arg, cell* value)
|
bool factorvm::factor_arg(const vm_char* str, const vm_char* arg, cell* value)
|
||||||
{
|
{
|
||||||
int val;
|
int val;
|
||||||
|
@ -62,11 +57,6 @@ bool factorvm::factor_arg(const vm_char* str, const vm_char* arg, cell* value)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool factor_arg(const vm_char* str, const vm_char* arg, cell* value)
|
|
||||||
{
|
|
||||||
return vm->factor_arg(str,arg,value);
|
|
||||||
}
|
|
||||||
|
|
||||||
void factorvm::init_parameters_from_args(vm_parameters *p, int argc, vm_char **argv)
|
void factorvm::init_parameters_from_args(vm_parameters *p, int argc, vm_char **argv)
|
||||||
{
|
{
|
||||||
default_parameters(p);
|
default_parameters(p);
|
||||||
|
@ -92,11 +82,6 @@ void factorvm::init_parameters_from_args(vm_parameters *p, int argc, vm_char **a
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
VM_C_API void init_parameters_from_args(vm_parameters *p, int argc, vm_char **argv)
|
|
||||||
{
|
|
||||||
return vm->init_parameters_from_args(p,argc,argv);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Do some initialization that we do once only */
|
/* Do some initialization that we do once only */
|
||||||
void factorvm::do_stage1_init()
|
void factorvm::do_stage1_init()
|
||||||
{
|
{
|
||||||
|
@ -110,11 +95,6 @@ void factorvm::do_stage1_init()
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
}
|
}
|
||||||
|
|
||||||
void do_stage1_init()
|
|
||||||
{
|
|
||||||
return vm->do_stage1_init();
|
|
||||||
}
|
|
||||||
|
|
||||||
void factorvm::init_factor(vm_parameters *p)
|
void factorvm::init_factor(vm_parameters *p)
|
||||||
{
|
{
|
||||||
/* Kilobytes */
|
/* Kilobytes */
|
||||||
|
@ -171,11 +151,6 @@ void factorvm::init_factor(vm_parameters *p)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
VM_C_API void init_factor(vm_parameters *p)
|
|
||||||
{
|
|
||||||
return vm->init_factor(p);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* May allocate memory */
|
/* May allocate memory */
|
||||||
void factorvm::pass_args_to_factor(int argc, vm_char **argv)
|
void factorvm::pass_args_to_factor(int argc, vm_char **argv)
|
||||||
{
|
{
|
||||||
|
@ -189,11 +164,6 @@ void factorvm::pass_args_to_factor(int argc, vm_char **argv)
|
||||||
userenv[ARGS_ENV] = args.elements.value();
|
userenv[ARGS_ENV] = args.elements.value();
|
||||||
}
|
}
|
||||||
|
|
||||||
VM_C_API void pass_args_to_factor(int argc, vm_char **argv)
|
|
||||||
{
|
|
||||||
return vm->pass_args_to_factor(argc,argv);
|
|
||||||
}
|
|
||||||
|
|
||||||
void factorvm::start_factor(vm_parameters *p)
|
void factorvm::start_factor(vm_parameters *p)
|
||||||
{
|
{
|
||||||
if(p->fep) factorbug();
|
if(p->fep) factorbug();
|
||||||
|
@ -203,20 +173,28 @@ void factorvm::start_factor(vm_parameters *p)
|
||||||
unnest_stacks();
|
unnest_stacks();
|
||||||
}
|
}
|
||||||
|
|
||||||
void start_factor(vm_parameters *p)
|
|
||||||
|
char *factorvm::factor_eval_string(char *string)
|
||||||
{
|
{
|
||||||
return vm->start_factor(p);
|
char *(*callback)(char *) = (char *(*)(char *))alien_offset(userenv[EVAL_CALLBACK_ENV]);
|
||||||
|
return callback(string);
|
||||||
}
|
}
|
||||||
|
|
||||||
void factorvm::start_embedded_factor(vm_parameters *p)
|
void factorvm::factor_eval_free(char *result)
|
||||||
{
|
{
|
||||||
userenv[EMBEDDED_ENV] = T;
|
free(result);
|
||||||
start_factor(p);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
VM_C_API void start_embedded_factor(vm_parameters *p)
|
void factorvm::factor_yield()
|
||||||
{
|
{
|
||||||
return vm->start_embedded_factor(p);
|
void (*callback)() = (void (*)())alien_offset(userenv[YIELD_CALLBACK_ENV]);
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
|
||||||
|
void factorvm::factor_sleep(long us)
|
||||||
|
{
|
||||||
|
void (*callback)(long) = (void (*)(long))alien_offset(userenv[SLEEP_CALLBACK_ENV]);
|
||||||
|
callback(us);
|
||||||
}
|
}
|
||||||
|
|
||||||
void factorvm::start_standalone_factor(int argc, vm_char **argv)
|
void factorvm::start_standalone_factor(int argc, vm_char **argv)
|
||||||
|
@ -229,54 +207,6 @@ void factorvm::start_standalone_factor(int argc, vm_char **argv)
|
||||||
start_factor(&p);
|
start_factor(&p);
|
||||||
}
|
}
|
||||||
|
|
||||||
VM_C_API void start_standalone_factor(int argc, vm_char **argv)
|
|
||||||
{
|
|
||||||
return vm->start_standalone_factor(argc,argv);
|
|
||||||
}
|
|
||||||
|
|
||||||
char *factorvm::factor_eval_string(char *string)
|
|
||||||
{
|
|
||||||
char *(*callback)(char *) = (char *(*)(char *))alien_offset(userenv[EVAL_CALLBACK_ENV]);
|
|
||||||
return callback(string);
|
|
||||||
}
|
|
||||||
|
|
||||||
VM_C_API char *factor_eval_string(char *string)
|
|
||||||
{
|
|
||||||
return vm->factor_eval_string(string);
|
|
||||||
}
|
|
||||||
|
|
||||||
void factorvm::factor_eval_free(char *result)
|
|
||||||
{
|
|
||||||
free(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
VM_C_API void factor_eval_free(char *result)
|
|
||||||
{
|
|
||||||
return vm->factor_eval_free(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
void factorvm::factor_yield()
|
|
||||||
{
|
|
||||||
void (*callback)() = (void (*)())alien_offset(userenv[YIELD_CALLBACK_ENV]);
|
|
||||||
callback();
|
|
||||||
}
|
|
||||||
|
|
||||||
VM_C_API void factor_yield()
|
|
||||||
{
|
|
||||||
return vm->factor_yield();
|
|
||||||
}
|
|
||||||
|
|
||||||
void factorvm::factor_sleep(long us)
|
|
||||||
{
|
|
||||||
void (*callback)(long) = (void (*)(long))alien_offset(userenv[SLEEP_CALLBACK_ENV]);
|
|
||||||
callback(us);
|
|
||||||
}
|
|
||||||
|
|
||||||
VM_C_API void factor_sleep(long us)
|
|
||||||
{
|
|
||||||
return vm->factor_sleep(us);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct startargs {
|
struct startargs {
|
||||||
int argc;
|
int argc;
|
||||||
vm_char **argv;
|
vm_char **argv;
|
||||||
|
@ -286,16 +216,18 @@ void* start_standalone_factor_thread(void *arg)
|
||||||
{
|
{
|
||||||
factorvm *newvm = new factorvm;
|
factorvm *newvm = new factorvm;
|
||||||
startargs *args = (startargs*) arg;
|
startargs *args = (startargs*) arg;
|
||||||
vm_parameters p;
|
newvm->start_standalone_factor(args->argc, args->argv);
|
||||||
newvm->default_parameters(&p);
|
|
||||||
newvm->init_parameters_from_args(&p,args->argc, args->argv);
|
|
||||||
newvm->init_factor(&p);
|
|
||||||
newvm->pass_args_to_factor(args->argc,args->argv);
|
|
||||||
newvm->start_factor(&p);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
VM_C_API void start_standalone_factor(int argc, vm_char **argv)
|
||||||
|
{
|
||||||
|
factorvm *newvm = new factorvm;
|
||||||
|
vm = newvm;
|
||||||
|
return newvm->start_standalone_factor(argc,argv);
|
||||||
|
}
|
||||||
|
|
||||||
VM_C_API void start_standalone_factor_in_new_thread(int argc, vm_char **argv)
|
VM_C_API void start_standalone_factor_in_new_thread(int argc, vm_char **argv)
|
||||||
{
|
{
|
||||||
startargs *args = new startargs; // leaks startargs structure
|
startargs *args = new startargs; // leaks startargs structure
|
||||||
|
|
|
@ -1,17 +1,7 @@
|
||||||
namespace factor
|
namespace factor
|
||||||
{
|
{
|
||||||
|
|
||||||
VM_C_API void default_parameters(vm_parameters *p);
|
|
||||||
VM_C_API void init_parameters_from_args(vm_parameters *p, int argc, vm_char **argv);
|
|
||||||
VM_C_API void init_factor(vm_parameters *p);
|
|
||||||
VM_C_API void pass_args_to_factor(int argc, vm_char **argv);
|
|
||||||
VM_C_API void start_embedded_factor(vm_parameters *p);
|
|
||||||
VM_C_API void start_standalone_factor(int argc, vm_char **argv);
|
VM_C_API void start_standalone_factor(int argc, vm_char **argv);
|
||||||
VM_C_API void start_standalone_factor_in_new_thread(int argc, vm_char **argv);
|
VM_C_API void start_standalone_factor_in_new_thread(int argc, vm_char **argv);
|
||||||
|
|
||||||
VM_C_API char *factor_eval_string(char *string);
|
|
||||||
VM_C_API void factor_eval_free(char *result);
|
|
||||||
VM_C_API void factor_yield();
|
|
||||||
VM_C_API void factor_sleep(long ms);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue