I cannot disable Garbage Collection with the following argument on either Autogen.sh or Configure files: "--with-gc=none" and it would still output:
"sgen and Included Boehm GC with typed GC and parallel mark" even if I want to disable GC. And when I go further to disable both Boehm and Sgen GC with these arguments:
"./autogen.sh --with-gc=none --with-sgen=no --disable-boehm" still output the same.
After trying those, I went into Configure file to remove the options for GC except for none argument and changed "xnone)" to "xnone|*)", it was able to create the configuration files with GC set to none. However when executing the make command, it failed, because it cannot find the Boehm header file (Why does this happen when I explicitly state that Boehm is disabled?) and you can see the output here:
main.c:5:28: fatal error: buildver-boehm.h: No such file or directory
After that error, I just "make clean" it and since I was also bootstrapping compilers into several copies of Mono, I just simply copy the headers of buildver-boehm.h over which contains only the build date and that it. When I tried it again, it returns a weird error:
"mono/mono/mini/main.c:91: undefined reference to `mono_main'"
I checked the headers, the mini.h does have 'mono_main' defined and this whole things have left me confused.
While I get that Garbage Collection is a critical part of C# in several projects and should always remain to be the default, but there are avenues of development that can be done in C# WITHOUT Garbage Collections or any of the overheads especially in making high performance code (it is NOT impossible to keep memory allocation/deallocation in check either.)
I'd like to see this fixed by allowing developers remove GC from Mono when desired.
Please and thank you.