runtime: Complexity of RID graph

Lifted from https://github.com/dotnet/coreclr/issues/5853#issuecomment-276078171

Can the RID graph be simplified by removing possibly unused RIDs?

e.g. the rid graph for ubuntu.14.04-x64 looks like this now:

                               base
                                 |
                                any
                                 |
                                unix
                               |     |
                          linux     unix-x64
                         |      |       |
                   debian       linux-x64
                  |      |        | 
            ubuntu       debian-x64       
          |        |        |
ubuntu14.04        ubuntu-x64
      |              |
      ubuntu.14.04-x64

Are these RIDs used in practice (by .NET Core or any package on NuGet): unix, debian, ubuntu, ubuntu14.04, ubuntu-x64, debian-x64?

Leaving those out, would simplify the graph to:

base <- any <- linux                           // pure managed libraries
                 ^- linux-x64                  // library with native bits
                           ^- ubuntu.14.04-x64 // runtime end-point

\cc @janvorli @jkotas @gkhanna79

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Comments: 19 (19 by maintainers)

Most upvoted comments

I think the challenge with simplifying is that we really don’t know how people are using some of these RID’s. I think we should be mindful as we add new ones but I’m not sure we can simplify it now.

In my opinion, there needs to be ‘C’ library section in RID construction.

@am11 see https://github.com/dotnet/coreclr/issues/9208