From 5ceab61ca11497f4822af33959431f5ab3d39142 Mon Sep 17 00:00:00 2001 From: Simon Forman Date: Thu, 22 Sep 2022 19:00:40 -0700 Subject: [PATCH] Maybe this is the right thing to do? https://stackoverflow.com/questions/59489221/using-the-gmp-library-with-boehms-garbage-collector --- implementations/C/Makefile | 3 ++- implementations/C/joy | Bin 14040 -> 150752 bytes implementations/C/joy.c | 38 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 1 deletion(-) diff --git a/implementations/C/Makefile b/implementations/C/Makefile index 899fe35..224efae 100644 --- a/implementations/C/Makefile +++ b/implementations/C/Makefile @@ -1,5 +1,6 @@ COPTS=-I/usr/local/include +STATIC_GCLIB=/usr/local/lib/libgc.a /usr/local/lib/libgmp.a joy: joy.c - cc $(COPTS) joy.c -o joy + cc $(COPTS) joy.c $(STATIC_GCLIB) -o joy diff --git a/implementations/C/joy b/implementations/C/joy index af5e20f84b098956d0ff4f1c2ad72e45d5cf3974..424aaded1365eaf9cb5aa0cce9adbfd6a3a61656 100755 GIT binary patch literal 150752 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 -$`yuIs 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 diff --git a/implementations/C/joy.c b/implementations/C/joy.c index 3ba565f..25664fa 100644 --- a/implementations/C/joy.c +++ b/implementations/C/joy.c @@ -1,8 +1,46 @@ #include #include +// Example S-exprs +// https://www.hboehm.info/gc/04tutorial.pdf + +typedef union se +{ + struct cons * cp; + mpz_t i; +} sexpr; + +struct cons +{ + union se head; + union se tail; +}; + +#define car(s) (s).cp->head +#define cdr(s) (s).cp->tail +#define from_i(z) ({sexpr tmp; tmp.i=z; tmp;}) +#define to_i(s) (s).i + +sexpr cons(sexpr a, sexpr b) { + sexpr tmp = {GC_MALLOC(sizeof(struct cons))}; + car(tmp) = a; cdr(tmp) = b; + return (tmp); +}; + +void* reallocate_function (void *ptr, size_t old_size, size_t new_size) { + return GC_realloc(ptr, new_size); +} +void deallocate_function (void *ptr, size_t size) { + GC_free(ptr); +} int main(void) { + mp_set_memory_functions( + &GC_malloc, + &reallocate_function, + &deallocate_function + ); return 0; + //return to_i(car(cons(from_i(0),from_i(1)))); } -- 2.11.0