Skip to content

Discussion on reorganizing gc.cpp #4024

@ala53

Description

@ala53

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status

    No status

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions