-
Notifications
You must be signed in to change notification settings - Fork 31
Open
Description
Summary
Drop netstandard2.0 from the main library's target frameworks, retaining only net8.0;net9.0;net10.0.
Previous NuGet releases will remain available for consumers on .NET Framework or older .NET Core runtimes.
Motivation
- net8.0 is the current LTS floor. .NET 6 and 7 are already end-of-life. net8.0 as the lowest target is standard practice.
- Performance. This is an instrumentation library where performance matters. The netstandard2.0 code path uses a slower, lookup-table-based
LeadingZeroCountinstead of the hardware intrinsic (BitOperations.LeadingZeroCount). - Simplification. Removing netstandard2.0 eliminates conditional compilation and dead code paths.
- Legacy users are covered. Previously published NuGet packages remain available for anyone who needs netstandard2.0 support.
Scope of changes
HdrHistogram.csproj— Removenetstandard2.0from<TargetFrameworks>, remove the netstandard2.0PropertyGroupcondition.Utilities/Bitwise.cs— Remove#if NET5_0_OR_GREATERguards and the entireBitwise.Imperativeclass. UseBitOperations.LeadingZeroCountunconditionally.HistogramLogReader.cs— Remove#if NETSTANDARD2_0block (line ~243), keep the modernStartsWith(char)overload.spec/tech-standards/build-system.md— Update target framework documentation.
Acceptance criteria
- Library targets
net10.0;net9.0;net8.0only - No
#if NETSTANDARDor#if NET5_0_OR_GREATERconditional compilation remains -
Bitwise.Imperativeclass is removed - All tests pass on net8.0, net9.0, and net10.0
- Build system spec updated
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels