diff --git a/.bzrignore b/.bzrignore index bfbc335..7c34736 100644 --- a/.bzrignore +++ b/.bzrignore @@ -5,3 +5,4 @@ .bzrignore .bzrignore ./ikarus.boot.back +.DS_Store diff --git a/runtime/ikarus b/runtime/ikarus index 085e629..2ed6187 100755 Binary files a/runtime/ikarus and b/runtime/ikarus differ diff --git a/runtime/ikarus-collect.c b/runtime/ikarus-collect.c index c2e92d0..b140c06 100644 --- a/runtime/ikarus-collect.c +++ b/runtime/ikarus-collect.c @@ -11,7 +11,6 @@ #include #define forward_ptr ((ikp)-1) -//#define DEBUG_STACK 0 #define minimum_heap_size (pagesize * 1024 * 4) #define maximum_heap_size (pagesize * 1024 * 8) #define minimum_stack_size (pagesize * 128) @@ -553,16 +552,16 @@ static void collect_stack(gc_t* gc, ikp top, ikp end){ for(i=0; icollect_utime.tv_sec, - pcb->collect_utime.tv_usec/1000, - pcb->collect_stime.tv_sec, - pcb->collect_stime.tv_usec/1000, - pcb->collection_id ); + pcb->collect_utime.tv_sec, + pcb->collect_utime.tv_usec/1000, + pcb->collect_stime.tv_sec, + pcb->collect_stime.tv_usec/1000, + pcb->collection_id ); + */ ik_delete_pcb(pcb); return 0; } diff --git a/runtime/ikarus-runtime.c b/runtime/ikarus-runtime.c index 85c5696..da40c8e 100644 --- a/runtime/ikarus-runtime.c +++ b/runtime/ikarus-runtime.c @@ -746,7 +746,7 @@ ikrt_open_output_file(ikp fname, ikp flagptr, ikpcb* pcb){ int flags; int f = unfix(flagptr); if(f == 0){ - flags = O_WRONLY; + flags = O_WRONLY | O_CREAT; } else if(f == 1){ unlink(string_data(fname)); flags = O_WRONLY | O_CREAT; @@ -762,7 +762,7 @@ ikrt_open_output_file(ikp fname, ikp flagptr, ikpcb* pcb){ int fd = open(string_data(fname), flags, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); if(fd == -1){ - fprintf(stderr, "openfile failed!\n"); + fprintf(stderr, "openfile failed: %s\n", strerror(errno)); return false_object; } else { return fix(fd);