Skip to content

System.Private.CoreLib should expose consistent surface area across all OSes #7553

Closed

Description

@ericstj

Today it does not which leads us in CoreFx to know whatever your ifdefs may be to be sure we build all the facades for them. In 1.0 this caused us to ship a facade with dangling forwards for System.Runtime.InteropServices.WindowsRuntime on linux.

Ideally I'd like to see a reference assembly that is the agreed-upon contract for CoreLib.

Activity

  1. danmoseley commented on Mar 3, 2017

    @danmoseley
    Contributor

    Would this include other runtimes- CoreRT etc?

  2. jkotas commented on Mar 3, 2017

    @jkotas
    Member

    Yes, it is what we should be shooting for as the ideal situation. Figuring the plan for Windows/Unix CoreCLR diff would be the first step.

  3. gkhanna79 commented on Mar 4, 2017

    @gkhanna79
    Member
  4. weshaggard commented on Mar 6, 2017

    @weshaggard
    Member

    While we can create a reference assembly if we feel it is useful we could also just use one of the builds as the representative and put APICompat checks in place to make sure the other builds remain compatible and consistent.

    Ignoring the reference assembly for a moment do we think we can even have consistent surface area? For the WinRT types for example is it going to cause any issues if we just include them in the Unix builds?

  5. jkotas commented on Mar 7, 2017

    @jkotas
    Member

    just use one of the builds as the representative

    This can work for CoreCLR only, but I think it would be hard to make it work for both CoreCLR+CoreRT.

  6. weshaggard commented on Mar 7, 2017

    @weshaggard
    Member

    This can work for CoreCLR only, but I think it would be hard to make it work for both CoreCLR+CoreRT.

    Do you actually think we will be able to make these all agree? While I think that is a good goal it will require merging most of S.Private.Interop into S.P.CoreLib on CoreRT as well. Also if we plan to do that we will need to address the difference in public key tokens. I intentionally made the key different (CoreCLR has SL key and CoreRT has MSFT key).

  7. jkotas commented on Mar 7, 2017

    @jkotas
    Member

    Do you actually think we will be able to make these all agree?

    It would be a chunk of work. I think it is doable. We are slowly getting them to agree as part of other work. They are certainly closer than what we had 1 or 2 years ago.

    If we do not think it is worth spending time on it, we can just let them disagree accross runtimes and OSes and setup the engineering system around it (e.g. have separate internal CoreCLR targeting pack for Windows and Unix).

    it will require merging most of S.Private.Interop into S.P.CoreLib on CoreRT as well

    Or introduce S.Private.Interop in CoreCLR.

    we will need to address the difference in public key tokens

    Nothing looks at the public key tokens in .NET Core. They can mismatch (and do mismatch in practice) just fine.

  8. danmoseley commented on Mar 16, 2017

    @danmoseley
    Contributor

    Can we move this to Future?

  9. jkotas commented on Mar 16, 2017

    @jkotas
    Member

    I think so

  10. transferred this issue fromdotnet/coreclron Jan 31, 2020
  11. added this to the Future milestone on Jan 31, 2020
  12. ericstj commented on Mar 14, 2020

    @ericstj
    MemberAuthor

    Related: #33128

  13. 1 remaining item

  14. ericstj commented on Mar 14, 2020

    @ericstj
    MemberAuthor

    Related: #2138

  15. dotnet-policy-service commented on Sep 13, 2024

    @dotnet-policy-service
    Contributor

    Due to lack of recent activity, this issue has been marked as a candidate for backlog cleanup. It will be closed if no further activity occurs within 14 more days. Any new comment (by anyone, not necessarily the author) will undo this process.

    This process is part of our issue cleanup automation.

  16. dotnet-policy-service commented on Sep 28, 2024

    @dotnet-policy-service
    Contributor

    This issue will now be closed since it had been marked no-recent-activity but received no further activity in the past 14 days. It is still possible to reopen or comment on the issue, but please note that the issue will be locked if it remains inactive for another 30 days.

  17. removed this from the Future milestone on Sep 28, 2024
  18. locked and limited conversation to collaborators on Oct 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions