From c73dfc2c0060991de10addf27c79b5e0dfd44b41 Mon Sep 17 00:00:00 2001 From: Andrew Scott Date: Sat, 24 Aug 2024 18:13:02 -0400 Subject: [PATCH] README: updated for new malloc and directory structure --- README.md | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index bd3e182..e20ef7f 100644 --- a/README.md +++ b/README.md @@ -1,38 +1,44 @@ # marCsweep -A mark-and-sweep garbage collector with a simple virtual machine to perform -allocations. +A mark-and-sweep garbage collector written in C. + +Includes a simple virtual machine and a custom `malloc` implementation +for creating, tracing, and freeing garbage. ## Building Compiling the project should be relatively easy, even if you aren't familiar with `make`. -Dependencies: `git`, `make`, and `gcc`. Compiling with `clang` is also possible, -simply replace "gcc" with "clang" in the first line of the Makefile. +Dependencies: `git`, `make`, and `gcc`. ``` git clone https://codeberg.org/andyscott/marCsweep.git cd marCsweep -make release +make release # or debug ``` -That's it! The Makefile will automatically create the build directory and place -the compiled executable there. +That's it! Make will create the `bin` directory and place the finished +executable there. + +Compiling with `clang` is also supported, just replace "gcc" with "clang" in the +first line of the `Makefile`. Also note that if you don't specify a target for +make (i.e. "release" or "debug") both will be built. Debug builds are placed in +the `debug` directory. ## Running Once compiled, the program can be run with the following: ``` -cd build # or debug +cd bin # or debug ./gc ``` -By default the program will output the results of the test cases: +The results of the test cases will be output to your terminal: > test_int_alloc: PASS test_pair_alloc: PASS @@ -49,4 +55,8 @@ should be ready for experimentation! This is a personal project that I am writing in my free time to learn more about garbage collection. Thank you to [Robert Nystrom](https://journal.stuffwithstuff.com/2013/12/08/babys-first-garbage-collector/) -for the idea. +for the idea. + +Sadly, it was this author's idea to extend the project by writing a custom +`malloc`. Perhaps I should have been lazy and used the preexisting definitions, +but where's the fun in that?