Skip to content

Conversation

@janvorli
Copy link
Member

Currently, the version of the standalone GC has to match the version that the runtime was compiled with. This change enables loosening that requirement. Runtime is allowed to use any standalone GC as long as its version is larger or equal to a defined minimum version. GC is now passed the version of GC the runtime was compiled with, and it can use it to behave in a way compatible with that version. For example, if we add new methods to the GC to EE interface, that GC can check the GC version the runtime supports and skip calling the new methods if it is running with an older runtime.

Currently, the version of the standalone GC has to match the version
that the runtime was compiled with. This change enables loosening that
requirement. Runtime is allowed to use any standalone GC as long as its
version is larger or equal to a defined minimum version. GC is now
passed the version of GC the runtime was compiled with and it can use it
to behave in a way compatible with that version. For example, if we add
new methods to the GC to EE interface, that GC can check the GC version
the runtime supports and skip calling the new methods if it is running
with an older runtime.
@janvorli janvorli added this to the 8.0.0 milestone Nov 16, 2022
@janvorli janvorli requested review from Maoni0 and cshung November 16, 2022 23:22
@janvorli janvorli self-assigned this Nov 16, 2022
@ghost
Copy link

ghost commented Nov 16, 2022

Tagging subscribers to this area: @dotnet/gc
See info in area-owners.md if you want to be subscribed.

Issue Details

Currently, the version of the standalone GC has to match the version that the runtime was compiled with. This change enables loosening that requirement. Runtime is allowed to use any standalone GC as long as its version is larger or equal to a defined minimum version. GC is now passed the version of GC the runtime was compiled with, and it can use it to behave in a way compatible with that version. For example, if we add new methods to the GC to EE interface, that GC can check the GC version the runtime supports and skip calling the new methods if it is running with an older runtime.

Author: janvorli
Assignees: janvorli
Labels:

area-GC-coreclr

Milestone: 8.0.0

Copy link
Member

@Maoni0 Maoni0 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! this is the exact same idea i had :)

Copy link
Contributor

@cshung cshung left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@janvorli janvorli merged commit b0dff26 into dotnet:main Nov 21, 2022
@janvorli janvorli deleted the make-gc-backforward-compat branch November 21, 2022 14:34
@ghost ghost locked as resolved and limited conversation to collaborators Dec 21, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants