factor/native/factor.c

55 lines
904 B
C

#include "factor.h"
void init_factor(char* image)
{
init_arena(DEFAULT_ARENA);
init_compiler(DEFAULT_ARENA);
load_image(image);
init_stacks();
init_io();
init_signals();
init_errors();
#if defined(FACTOR_X86)
userenv[CPU_ENV] = tag_object(from_c_string("x86"));
#elif defined(FACTOR_PPC)
userenv[CPU_ENV] = tag_object(from_c_string("ppc"));
#else
userenv[CPU_ENV] = tag_object(from_c_string("unknown"));
#endif
#ifdef WIN32
userenv[OS_ENV] = tag_object(from_c_string("win32"));
#else
userenv[OS_ENV] = tag_object(from_c_string("unix"));
#endif
}
int main(int argc, char** argv)
{
CELL args;
if(argc == 1)
{
printf("Usage: factor <image file> [ parameters ... ]\n");
printf("\n");
return 1;
}
init_factor(argv[1]);
args = F;
while(--argc != 0)
{
args = cons(tag_object(from_c_string(argv[argc])),args);
}
userenv[ARGS_ENV] = args;
platform_run();
return 0;
}