Skip to content

Enable versioning bubbles that span multiple assemblies #10477

@jkotas

Description

@jkotas

The concept of versioning bubbles is described in https://github.com/dotnet/coreclr/blob/master/Documentation/botr/readytorun-overview.md#version-bubbles

The current implementation is hardcoded to each assembly being its own versioning bubble. This issue is about adding an option for larger versioning bubbles:

  • Add command line option to crossgen to allow specifying versioning bubbles
  • Update IsInSameVersionBubble to respect this
  • Record MVIDs of assemblies participating in the version bubble in R2R image
  • Add enforcement to assembly loader to detect version bubble mismatches using MVIDs stored in the R2R images. This is important for a good diagnostic of mistakes when the assembly within version bubble is accidentally replaced by a different one.
  • Use def tokens and module references within the version bubble (look for `ZapImportTable::TryEncodeModule). This is required to allow cross-module inlining of non-leaf methods within the version bubble.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions