init_contexts(p->datastack_size, p->retainstack_size, p->callstack_size);
callbacks = new callback_heap(p->callback_size, this);
load_image(p);
- init_c_io();
max_pic_size = (int)p->max_pic_size;
special_objects[OBJ_CELL_SIZE] = tag_fixnum(sizeof(cell));
special_objects[OBJ_ARGS] = false_object;
special_objects[OBJ_EMBEDDED] = false_object;
cell aliens[][2] = {
+ {OBJ_STDIN, (cell)stdin},
+ {OBJ_STDOUT, (cell)stdout},
+ {OBJ_STDERR, (cell)stderr},
{OBJ_CPU, (cell)FACTOR_CPU_STRING},
{OBJ_EXECUTABLE, (cell)safe_strdup(p->executable_path)},
{OBJ_IMAGE, (cell)safe_strdup(p->image_path)},
return 0;
}
-
-void factor_vm::init_c_io() {
- special_objects[OBJ_STDIN] = allot_alien(false_object, (cell)stdin);
- special_objects[OBJ_STDOUT] = allot_alien(false_object, (cell)stdout);
- special_objects[OBJ_STDERR] = allot_alien(false_object, (cell)stderr);
-}
-
// Allocates memory
void factor_vm::io_error_if_not_EINTR() {
if (errno == EINTR)
}
// io
- void init_c_io();
void io_error_if_not_EINTR();
FILE* safe_fopen(char* filename, const char* mode);
int safe_fgetc(FILE* stream);