From: Michael D. Lowis Date: Wed, 15 Dec 2021 21:49:18 +0000 (-0500) Subject: cleaned up files, added first cut for positional arguments X-Git-Url: https://git.mdlowis.com/?a=commitdiff_plain;h=2fdfd768bd1aef3f9fbae56b0e9456e22d894f5b;p=proto%2Faos.git cleaned up files, added first cut for positional arguments --- diff --git a/lib/a/Options_Parse.c b/lib/a/Options_Parse.c index 4519d6e..0852d14 100644 --- a/lib/a/Options_Parse.c +++ b/lib/a/Options_Parse.c @@ -129,6 +129,7 @@ void Options_Parse(int argc, char** argv) /* Record the program name */ ARGV0 = argv[0]; + int new_argc = 0; /* now parse the arguments */ for (int i = 1; i < argc;) { @@ -142,10 +143,12 @@ void Options_Parse(int argc, char** argv) } else { - printf("posarg: %s\n", argv[i]); + new_argc++; + argv[new_argc] = argv[i]; i++; } } + // return new_argc; } void Options_PrintHelp(void) diff --git a/lib/a/gc.c b/lib/a/gc.c index b8a1362..88860e3 100644 --- a/lib/a/gc.c +++ b/lib/a/gc.c @@ -13,7 +13,6 @@ #define THOLD 0.65 #define DELETED ((void*)(intptr_t)-1) -#define NUM_SLOTS 4u #define LOG_SIZE 1023u #define NUM_PRIMES (sizeof(Primes)/sizeof(unsigned int)) @@ -32,10 +31,6 @@ typedef struct { uintptr_t data[]; } object_t; -typedef struct { - void* slots[NUM_SLOTS]; -} bucket_t; - static void obj_addref(object_t* obj); static void obj_delref(object_t* obj); static void gc_collect(void); @@ -89,7 +84,6 @@ int main(int argc, char** argv) Options_Parse(argc, argv); Stack_Bot = &(intptr_t){0}; Log.index = 0; - hash_init(&ZCT,0); return usermain(argc, argv); } @@ -128,14 +122,9 @@ static void gc_scan_stack(hash_t* oldzct) static void gc_scan_globals(hash_t* oldzct) { -#ifdef __APPLE__ - intptr_t rbeg = (intptr_t )get_edata(); - intptr_t rend = (intptr_t )get_end(); -#else extern intptr_t etext, end; intptr_t rbeg = (intptr_t)&etext; intptr_t rend = (intptr_t)&end; -#endif intptr_t mask = sizeof(intptr_t)-1; if (rbeg & mask) { @@ -145,27 +134,17 @@ static void gc_scan_globals(hash_t* oldzct) { rend = (rbeg & ~mask); } -#ifdef __APPLE__ - printf("%p %p %p %p-%p\n", - (void*)get_etext(), - (void*)get_edata(), - (void*)get_end(), - (void*)rbeg, - (void*)rend - ); -#else - printf("%p %p %p-%p\n", - (void*)&etext, - (void*)&end, - (void*)rbeg, - (void*)rend - ); -#endif gc_scan_region(oldzct, (intptr_t*)rbeg, (intptr_t*)rend); } static void gc_collect(void) { + /* init ZCT if needed */ + if (!ZCT.thold) + { + hash_init(&ZCT, 0); + } + /* process the log */ for (uintptr_t i = 0; i < Log.index; i++) { diff --git a/lib/a/opts_setoption.c b/lib/a/opts_setoption.c deleted file mode 100644 index f2deb6a..0000000 --- a/lib/a/opts_setoption.c +++ /dev/null @@ -1,8 +0,0 @@ -#include - -void opts_setoption(int sname, char* lname, char* arg) -{ - (void)sname; - (void)lname; - (void)arg; -}