Skip to content

Add support for standalone GC back compatibility - #78484

Merged
janvorli merged 1 commit into
dotnet:mainfrom
janvorli:make-gc-backforward-compat
Nov 21, 2022
Merged

Add support for standalone GC back compatibility#78484
janvorli merged 1 commit into
dotnet:mainfrom
janvorli:make-gc-backforward-compat

Conversation

@janvorli

Copy link
Copy Markdown
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.
@janvorlijanvorli added this to the 8.0.0 milestone Nov 16, 2022
@janvorlijanvorli self-assigned this Nov 16, 2022
@ghost

Copy link
Copy Markdown

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

@Maoni0Maoni0 left a comment

Copy link
Copy Markdown
Member

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 :)

@cshungcshung left a comment

Copy link
Copy Markdown
Contributor

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:mainNov 21, 2022
@janvorli
janvorli deleted the make-gc-backforward-compat branch November 21, 2022 14:34
@ghostghost locked as resolved and limited conversation to collaborators Dec 21, 2022
Sign up for freeto 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

@janvorli@cshung@Maoni0