Skip to content

Add support for standalone GC back compatibility #78484

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Nov 21, 2022

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 cshung and Maoni0 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