> In #401 @cnblogs-dudu referenced a post explaining that the GC was machine-generated from LISP. Since gc.cpp is not a real source code (just intermediate code), but the lisp code is, should it be more useful to publish the lisp source and the transpiler (Source-to-source compiler) for LISP -> CPP?
There's a reply from a Microsoft employee that seems to confirm this, see https://github.com/dotnet/coreclr/issues/408#issuecomment-78...
https://blogs.msdn.microsoft.com/patrick_dussud/2006/11/21/h...
I thought I knew a thing or two about .NET, having used it since beta days, I had no idea LISP was used to bootstrap the original GC code. Fascinating stuff.
I've archived it here just in case:
Patrick is also interviewed on Channel9 and he talks about the GC. Not watched it yet:
https://channel9.msdn.com/Shows/Going+Deep/Patrick-Dussud-Ga...
I think the reason for it being soo large is that the GC is shared across all the .NET versions, so having it in one file has some advantages.
See https://github.com/dotnet/coreclr/issues/408 for a discussion on reorganizing it.