Skip to content
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

Ensure the BCL supports hot reloading, especially around reflection #45023

Closed
Tracked by #5510
terrajobst opened this issue Nov 20, 2020 · 12 comments
Closed
Tracked by #5510

Ensure the BCL supports hot reloading, especially around reflection #45023

terrajobst opened this issue Nov 20, 2020 · 12 comments
Assignees
Labels
area-System.Reflection Priority:1 Work that is critical for the release, but we could probably ship without Team:Libraries tracking This issue is tracking the completion of other related issues.

Comments

@terrajobst
Copy link
Member

TBD

@terrajobst terrajobst added User Story A single user-facing feature. Can be grouped under an epic. Priority:0 Work that we can't release without labels Nov 20, 2020
@Dotnet-GitSync-Bot Dotnet-GitSync-Bot added the untriaged New issue has not been triaged by the area owner label Nov 20, 2020
@dotnet dotnet deleted a comment from Dotnet-GitSync-Bot Nov 20, 2020
@terrajobst terrajobst added this to Proposed in .NET 6.0 Nov 20, 2020
@danmoseley
Copy link
Member

@stephentoub is there more detail here? When we discussed it, the need for changes in the core libraries was hypothetical, perhaps we have more now?

cc @steveharter

@terrajobst terrajobst added Epic Groups multiple user stories. Can be grouped under a theme. and removed User Story A single user-facing feature. Can be grouped under an epic. labels Nov 24, 2020
@danmoseley danmoseley removed the Epic Groups multiple user stories. Can be grouped under a theme. label Nov 24, 2020
@terrajobst terrajobst added the Epic Groups multiple user stories. Can be grouped under a theme. label Nov 24, 2020
@stephentoub
Copy link
Member

I don't know what @terrajobst had in mind here. 😄

The only thing I'm aware of in this space is potentially being able to invalidate various caches in the libraries when some kind of change is made, via some form of runtime callback, and reflection is ripe with caches that would qualify (e.g. if you add a value to an enum, it'd be nice if subsequent use of reflection to list enum names would include the new value).

@danmoseley
Copy link
Member

What would that look like -- an event one can subscribe to on AppDomain (that still seems to be the closest place to a location for global events) ?

@jkotas
Copy link
Member

jkotas commented Nov 24, 2020

More important question is how would people write reliable and performant code with mutable reflection model. Programming against mutable object models is incredibly hard to do in reliable and performant way.

It is one of the reason why Edit&Continue does not expose the edits in the reflection APIs today.

@danmoseley
Copy link
Member

Perhaps @steveharter can help us in January to figure out whether there's anything here or this can be closed? I'd rather it not sit around without more clarity.

@jkotas
Copy link
Member

jkotas commented Dec 14, 2020

We need end-to-end spec with details how the different hot reloading modes are going to work, where each of them ends and their implementation architecture.

This specific issue is a potential part of the EnC hot reloading mode. We need to draw a boundary around the limits of EnC reloading mode before we can tell what makes sense to do here.

FWIW, I expect that this issue is going to be cut because of #45023 (comment).

@danmoseley
Copy link
Member

We need end-to-end spec with details how the different hot reloading modes are going to work, where each of them ends and their implementation architecture.

@DamianEdwards @stephentoub is there a person who owns this spec?

@stephentoub
Copy link
Member

is there a person who owns this spec?

@LyalinDotCom

@LyalinDotCom
Copy link

Hi folks,

@tmat and I would love to meet with all of you to discuss this. I will setup a quick chat and we can circle back here once we've talked.

@terrajobst terrajobst moved this from Proposed to Committed in .NET 6.0 Jan 11, 2021
@jamshedd jamshedd added Priority:1 Work that is critical for the release, but we could probably ship without and removed Priority:0 Work that we can't release without labels Jan 14, 2021
@marek-safar marek-safar removed the Epic Groups multiple user stories. Can be grouped under a theme. label Feb 4, 2021
@marek-safar marek-safar added tracking This issue is tracking the completion of other related issues. and removed untriaged New issue has not been triaged by the area owner labels Feb 4, 2021
@krwq krwq added this to Needs triage in Triage POD for Meta, Reflection, etc Feb 4, 2021
@joperezr joperezr moved this from Needs triage to Buyaa's triage backlog in Triage POD for Meta, Reflection, etc Feb 9, 2021
@buyaa-n buyaa-n moved this from Buyaa's triage backlog to v-Next in Triage POD for Meta, Reflection, etc Feb 11, 2021
@jeffhandley
Copy link
Member

@terrajobst / @stephentoub - Did anything end up surfacing from the Libraries perspective on this that still needs to be addressed, or can this be closed?

@stephentoub
Copy link
Member

Nothing beyond what I already did has surfaced as being needed. As planned, we'll deal with additional clearing needs as one-offs as feedback dictates.

.NET 6.0 automation moved this from Committed to Completed Jul 7, 2021
Triage POD for Meta, Reflection, etc automation moved this from v-Next to Done Jul 7, 2021
@terrajobst
Copy link
Member Author

Makes sense. Thanks!

@dotnet dotnet locked as resolved and limited conversation to collaborators Aug 6, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-System.Reflection Priority:1 Work that is critical for the release, but we could probably ship without Team:Libraries tracking This issue is tracking the completion of other related issues.
Projects
.NET 6.0
  
Completed
Development

No branches or pull requests

10 participants