Skip to content

Diagnostics.DiagnosticSource dependency on System.Memory on Full Framework #429

Closed as not planned

Description

@rzontar

The package System.Diagnostics.DiagnosticSource in version 4.6 has a dependency on System.Memory in the net45 and net46 builds. This was introduced by using Span<> and ReadOnlySpan<> in dotnet/corefx#37395.

Since the package is commonly used in profiling frameworks like:

My question is weather this is intended and we should accept the additional packages pulled in by System.Memory or could there be an alternative implementation on full framework? I also don't know if there is an performance benefit of the current implementation which would justify the dependency.

Activity

  1. Wraith2 commented on Dec 2, 2019

    @Wraith2
    Contributor

    it can introduce a quite complex dependency graph especially for Asp.Net applications.

    Can you expand on that? what do you see happen?

  2. rzontar commented on Dec 2, 2019

    @rzontar
    Author

    Installing the current version of System.Diagnostics.DiagnosticSource produces the following entries in packages.config:

    <packages>
      <package id="System.Buffers" version="4.4.0" targetFramework="net471" />
      <package id="System.Diagnostics.DiagnosticSource" version="4.6.0" targetFramework="net471" />
      <package id="System.Memory" version="4.5.3" targetFramework="net471" />
      <package id="System.Numerics.Vectors" version="4.4.0" targetFramework="net471" />
      <package id="System.Runtime.CompilerServices.Unsafe" version="4.5.2" targetFramework="net471" />
    </packages>
    

    This are 4 additional packages which could all require binding redirects if used in different projects across an application. We currently have binding redirects for System.Diagnostics.DiagnosticSource in place, since the above mentioned packages depend on different versions.

  3. removed
    untriagedNew issue has not been triaged by the area owner
    on May 11, 2020
  4. added this to the 5.0 milestone on May 11, 2020
  5. modified the milestones: 5.0.0, 6.0.0 on Jul 30, 2020
  6. added
    enhancementProduct code improvement that does NOT require public API changes/additions
    on Nov 7, 2020
  7. modified the milestones: 6.0.0, 7.0.0 on Jun 16, 2021
  8. modified the milestones: 7.0.0, Future on Jun 21, 2022
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

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions