VM* get_vm(void) { #ifdef HAS_PTHREAD init_threadkeys(); return pthread_getspecific(vm_key); #else return global_vm; #endif }
VM* idris_vm() { VM* vm = init_vm(4096000, 4096000, 1); init_threadkeys(); init_threaddata(vm); init_gmpalloc(); init_nullaries(); return vm; }
int main() { int argc; char **argv; win32_get_argv_utf8(&argc, &argv); #else int main(int argc, char **argv) { #endif parse_shift_args(&opts, &argc, &argv); __idris_argc = argc; __idris_argv = argv; VM* vm = init_vm(opts.max_stack_size, opts.init_heap_size, 1); init_threadkeys(); init_threaddata(vm); init_gmpalloc(); init_nullaries(); init_signals(); _idris__123_runMain0_125_(vm, NULL); #ifdef IDRIS_DEBUG if (opts.show_summary) { idris_gcInfo(vm, 1); } #endif Stats stats = terminate(vm); if (opts.show_summary) { print_stats(&stats); } free_nullaries(); return EXIT_SUCCESS; }