Per (the nightmarish) PR dotnet/coreclr#403, it was recommended I open an issue to discuss reorganizing gc.cpp.
For those that aren't familiar, gc.cpp is a 36,000 line file which seems to contain the entire garbage collector and gcpriv.h is a 4,000 line header which seems to correspond to gc.cpp.
So, what would be the best way to split gc.cpp into its components.
We could split by function: allocator/ mark phase / sweep phase / deallocator / etc.
We could split by class: gcstatistics / gcmechanisms / gcallocator / etc.
We could split into allocator, deallocator, and garbage collector.
Or something not mentioned here...
What I've identified so far:
- There are 11 commented
#defines for the same function (dprintf).
- max_generation, something seemingly globally needed, is a private enum hidden in gc.h.
Per (the nightmarish) PR dotnet/coreclr#403, it was recommended I open an issue to discuss reorganizing gc.cpp.
For those that aren't familiar, gc.cpp is a 36,000 line file which seems to contain the entire garbage collector and gcpriv.h is a 4,000 line header which seems to correspond to gc.cpp.
So, what would be the best way to split gc.cpp into its components.
We could split by function: allocator/ mark phase / sweep phase / deallocator / etc.
We could split by class: gcstatistics / gcmechanisms / gcallocator / etc.
We could split into allocator, deallocator, and garbage collector.
Or something not mentioned here...
What I've identified so far:
#definesfor the same function (dprintf).