@@ -12,8 +12,8 @@
14VM* init_vm(int stack_size, size_t heap_size,
14VM* init_vm(int stack_size, size_t heap_size,
15− int max_threads, // not implemented yet
15+ int max_threads // not implemented yet
16− int argc, char* argv[]) {
16+ ) {
18 VM* vm = malloc(sizeof(VM));
18 VM* vm = malloc(sizeof(VM));
19 STATS_INIT_STATS(vm->stats)
19 STATS_INIT_STATS(vm->stats)
@@ -45,9 +45,6 @@ VM* init_vm(int stack_size, size_t heap_size,
45 vm->max_threads = max_threads;
45 vm->max_threads = max_threads;
46 vm->processes = 0;
46 vm->processes = 0;
51 STATS_LEAVE_INIT(vm->stats)
48 STATS_LEAVE_INIT(vm->stats)
52 return vm;
49 return vm;
@@ -145,7 +142,7 @@ VAL MKFLOAT(VM* vm, double val) {
145 return cl;
142 return cl;
148−VAL MKSTR(VM* vm, char* str) {
145+VAL MKSTR(VM* vm, const char* str) {
150 if (str == NULL) {
147 if (str == NULL) {
@@ -164,7 +161,7 @@ VAL MKSTR(VM* vm, char* str) {
164 return cl;
161 return cl;
167−VAL MKPTR(VM* vm, void* ptr) {
164+VAL MKPTR(VM* vm, const void* ptr) {
168 Closure* cl = allocate(vm, sizeof(Closure), 0);
165 Closure* cl = allocate(vm, sizeof(Closure), 0);
169 SETTY(cl, PTR);
166 SETTY(cl, PTR);
170 cl -> info.ptr = ptr;
167 cl -> info.ptr = ptr;
@@ -462,8 +459,7 @@ void* runThread(void* arg) {
463void* vmThread(VM* callvm, func f, VAL arg) {
460void* vmThread(VM* callvm, func f, VAL arg) {
464 VM* vm = init_vm(callvm->stack_max - callvm->valstack, callvm->heap.size,
461 VM* vm = init_vm(callvm->stack_max - callvm->valstack, callvm->heap.size,
465− callvm->max_threads,
462+ callvm->max_threads);
467 vm->processes=1; // since it can send and receive messages
463 vm->processes=1; // since it can send and receive messages
468 pthread_t t;
464 pthread_t t;
469 pthread_attr_t attr;
465 pthread_attr_t attr;
@@ -626,12 +622,15 @@ VAL idris_recvMessage(VM* vm) {
626 return msg;
622 return msg;
629−int idris_numArgs(VM* vm) {
628+int idris_numArgs() {
630− return vm->argc;
629+ return __idris_argc;
633−VAL idris_getArg(VM* vm, int i) {
632+const char* idris_getArg(int i) {
634− return MKSTR(vm, vm->argv[i]);
633+ return __idris_argv[i];
637void stackOverflow() {
636void stackOverflow() {