In the first part, we prepared the project and fixed an initialization issue caused by the NativeAOT toolchain. In this second part, we’re going to start the implementation of our GC. The target for now is to build the simplest possible GC that can run basic .NET applications. This GC will only allocate memory and never free it.
Deep into how arrays of doubles are aligned in .NET. With juicy bits about the allocation context, fake objects, and C# code that definitely shouldn't be deployed in production.