Граф коммитов

6 Коммитов

Автор SHA1 Сообщение Дата
Nirmal Guru ae9e58e25e Clean-up trailing white-spaces
Remove final new-lines
Remove trailing white-spaces
2021-05-17 12:43:06 -07:00
Sergio Pedri ef787e9973 Moved ObjectExtensions -> ObjectMarshal 2021-02-17 13:02:03 +01:00
Sergio Pedri 2b800619d3 Added new constructors for Ref<T> and ReadOnlyRef<T> 2020-10-08 22:57:35 +02:00
Simon Cropp 73c52f9a8c fix some spelling 2020-08-02 19:18:48 +10:00
Sergio Pedri 059cf83f1f
Microsoft.Toolkit.HighPerformance package (part 2) (#3273)
* Added support for .NET Core 2.1 and 3.1 targets

* Fixed T[] dangerous accessors on .NET Standard

* Minor speed improvements to Array2DColumnEnumerable<T>

* Updated 2D array extensions

* Minor code tweaks

* Added DangerousGetLookupReferenceAt<T> extension

* Added BitHelper.HasLookupFlag APIs

* Added BitHelper.ExtractRange and SetRange APIs

* Added bool bitwise mask extensions

* Added StreamExtensions class on .NET Standard 2.0

* Added IBufferWriterExtensions type

* Added more Stream extensions

* Added object field offset extensions

* Minor code refactoring

* Improved description

* Switched managed count to IntPtr

* Refactored GetDjb2HashCode code, minor tweaks

* Unit tests fixes

* Refactored Count extensions, minor tweaks

* Fixed incorrect operators precedence

* Added SpanHelper.GetDjb2LikeByteHash method

* Minor code refactoring

* Code refactoring to HashCode<T>

* Minor style tweaks

* Updated comments styles to follow style convention

* Minor code tweaks to the Count method

* More code tweaks to the Count method

* Added tests for DangerousGetObjectDataByteOffset

* Fixed visibility of new object extensions

* Added tests for 64-bit extract/set range APIs

* Added tests for bool to bitwise mask APIs

* Fixed MemoryStream EOF exception type

* Enabled Stream extension tests on UWP

* Added StreamExtensions read/write value tests

* Minor code refactoring to IBufferWriter<T> extensions

* Added IBufferWriterExtensions tests

* Added MemoryBufferWriter<T> type

* Added IBuffer<T> interface

* Added MemoryBufferWriterDebugView<T> type

* Added MemoryBufferWriter<T> tests

* Fixed a unit test

* Fixed incorrect inlining attribute

* Removed leftover partial modifier

* Added missing readonly modifier for lock structs

* Improved summary for the Box<T> type

* Added comments for #pragma warning disable items

* Added info on (x << 5) + x over x * 33 optimization

* Improved XML docs for BitHelper APIs

* Fixed potentially misleading test method names

* Added comment for MemoryOwner<T>.Dispose test

* Fixed multi-target support for string extensions

* Improved IMemoryOwner.AsStream tests

* Added XML remarks to the HashCode<T> type

* Improved docs for ReadOnlySpanExtensions.GetDjb2HashCode<T>

* Tweaked an XML link

* Tweaked attributes for SpanHelper methods

* Minor optimizations to SpanHelper.Count

* Fixed an overflow bug in SpanHelper.Count

* Speed improvements to SpanHelper.Count

~35% speedup with large collections of byte-size values, ~10% with other types

* Updated .csproj description

* Added float/double support to SpanHelper.Count

* Added exception to the Box<T> constructor

* Removed unnecessary [SuppressMessage] attributes

* Removed [SuppressMessage] attributes

* Changed NullableRef<T>-s exceptions to follow Nullable<T>

* Added more operators to NullableRef<T> types

* Added missing in modifiers in ParallelHelper.For overloads

* Removed SIMD support for float/double count

It lacked proper handling of NaN values and both (signed) zeros

* Fixed compiler directives in SpanEnumerable<T>

* Updated ReadOnlySpanEnumerable<T> type

* Updated NuGet package tags

* Added HighPerformance package to readme.md list

* Added .NET Standard 1.4 target

* Added tests for implicit NullableRef<T> operators

* Removed unnecessary using directive

* Added missing sealed modifiers to MemoryStream methods

* Added Span<T>.IndexOf(ref T) extension

* Added ReadOnlySpan<T>.IndexOf<T>(in T) extension

* Added missing changes (incorrect commit)

* Removed unnecessary workaround (method is inlined)

* Added improved remarks for bool.ToBitwiseMask32/64

* Added internal NotNullWhen attribute when < .NET Standard 2.1

* Enabled .csproj-wide nullability annotations

* Minor code style tweaks

* Added [ReadOnly]NullableRef<T>.Null static properties
2020-05-13 12:32:20 -07:00
Sergio Pedri c65d648695
New Microsoft.Toolkit.HighPerformance package (#3128)
* Code refactoring

* Added StringExtensions tests

* Fixed test method names

* Added ArrayExtensions tests

* Removed MemoryPool<T>.Resize extension

* Added ArrayPoolExtensions tests

* Added SpinLockExtensions tests

* Moved HashCode<T> class to Helpers namespace

* Added ByReference<T> tests

* Changed visibility of one constructor

* Improved ByReference<T> tests

* Added ReadOnlyByReference<T> tests

* Fixed a small build error

* Added new List<T> extensions

* Added List<T> extensions tests

* Fixed a parameter name

* Fixed incorrect XML docs

* Added missing List<T> extension APIs

* Disabled warning

* Removed unnecessary type constraint

* Bug fixes to some List<T> extensions

* Improved some XML docs

* Added List<T>.DangerousAsSpan extension

* Added more unit tests

* Fixed a bug in the List<T>.DangerousAsSpan extension

* Minor tweaks to some docs

* Removed List<T> extensions (too hacky)

* Minor code tweaks (just in case)

* Fixed incorrect API visibility

* Added tests for the HashCode<T> type

* Added .NET Core 3.0 tests for HashCode<T>

* Added ParallelHelper.For tests

* Code refactoring

* Added ParallelHelper.For2D tests

* Fixed empty condition check for 2D loops

* Added ParallelHelper.ForEach in tests

* Added ParallelHelper.ForEach ref tests

* Fixed ParallelHelper.For2D tests

* Improved ParallelHelper.For/2D tests

* Switched HighPerformance tests to shared project

* Renamed HighPerformance.NetCore project

* Moved HighPerformance tests to subfolder

* Fixed incorrect namespaces

* Added empty HighPerformance.UWP test project

* Fixed shared project for UWP test project

* Added missing Unsafe NuGet package to UWP project

* Switched compile tile directives in HighPerformance project

* Added missing file headers

* Minor code refactoring to HashCode<T>

* Minor performance improvements

* Fixed HashCode<T>.Combine API for > int.MaxValue byte sizes

* Improved HashCode<T>.Combine performance on small spans

* Speed improvements in the GetDjb2HashCode<T> API

* Refactored HashCode<T> to facilitate extensions

* Fixed incorrect namespace

* Added HashCodeExtensions class

* Added HashCodeExtensions tests

* Minor code style tweaks

* Added SpanEnumerable<T> type

* Updated T[] and Span<T> Enumerate extensions

* Added SpanExtensions tests

* Fixed an issue in the DJB2 hash method

* Minor code refactoring

* Added EditorBrowsable attributes to enumerator types

* Added MemoryOwner<T> type

* Minor code refactoring

* More code refactoring

* Added MemoryOwner<T> Empty and Length properties

* Added missing header text

* Fixed a refactoring typo

* Added MemoryOwner<T> tests

* Minor code refactoring

* Fixed MemoryOwner<T> XML docs

* Minor optimization to GetDjb2HashCode

* Minor optimization to HashCode<T>.CombineValues

* Minor optimization to Count extension with managed types

* Added a Count test for the managed path

* Added BoolExtensions.ToInt API

* Removed automatically added rules

* Fixed incorrect XML docs

* Added MemoryOwner<T>.DangerousGetReference API

* Added extensions for some MemoryMarshal APIs

* Minor code tweaks

* Added MemoryOwner<T> method

* Added more XML comments

* Fixed an incorrect method prototype

* Code refactoring, added AllocationMode enum

* Added SpanOwner<T> type

* Added SpanOwner<T> tests

* Removed unnecessary check

* Removed unnecessary package reference on .NET Standard 2.1

* Improved tests for ReadOnlySpan<T>.Count

* Fixed a bug in ReadOnlySpan<T>.Count with managed types

* Updated two type constraints

* Minor optimizations to ParallelHelper

* Minor code tweaks

* Removed unnecessary APIs

* Added UInt32Extensions class

* Added unit tests for the UInt32Extensions class

* Fixed some comments

* Added some remarks to the new uint APIs

* Minor optimization

* Added UInt64Extensions class

* Added unit tests for UInt64Extensions type

* Fixed some typos and comments

* Fixed a unit test

* Minor performance improvements

* Added ToString() override and debug display to MemoryOwner<T>

* Added ToString() override and debug display to SpanOwner<T>

* Added MemoryOwner<T> debug proxy type

* Added SpanOwner<T> debug proxy type

* Added missing using directive

* Added info to the .csproj file

* Removed two APIs, for additional safety

* Refactored bit helpers into a separate class, added by ref overloads

* Minor code tweaks

* Added Box<T> type

* Added tests for the Box<T> type

* Added Box<T> object schema

* Added Box<T>.GetFrom(object) API

* Added more Box<T> tests, added more comments

* Fixed a copy paste fail

* Added ValueTypeExtensions type

* Added ValueTypeExtensions tests

* Added missing GC.SuppressFinalize call in MemoryOwner<T>

* Initial implementation of MemoryStream

* Implemented MemoryStream.Seek method

* Implemented ReadByte and WriteByte methods

* Added Memory<T> extension to create a Stream

* Implemented MemoryStream.Dispose method

* Fixed typos in a test class

* Added ReadAsync overrides

* Added WriteAsync overrides

* Code refactoring

* Added more .NET Standard 2.1 overrides

* Moved CopyToAsync method to .NET Standard 2.0

* Moved FlushAsync, reordered methods

* Added [ReadOnly]Memory<T> extension tests

* Added initial stream tests

* Fixed a bug in MemoryStream.Read

* Added unit tests for the MemoryStream type

* Added MemoryStream.[Read|Write]Byte tests, minor tweaks

* Updated .sln file

* Added IMemoryOwnerStream type

* Added IMemoryOwnerExtensions.AsStream type

* Minor tweaks to some XML comments

* Added IMemoryOwner extensions and stream tests

* Fixed an incorrect namespace

* Aadded ArrayPoolBufferWriter<T> type

* Minor code refactoring

* Added debug view and ToString override for ArrayPoolBufferWriter<T>

* Minor code refactoring

* Added destructor to ArrayPoolBufferWriter<T> type

* Added tests for ArrayPoolBufferWriter<T>

* Fixed some copy-paste fails

* Added IMemoryOwner<T> interface to ArrayPoolBufferWriter<T>

* Updated .csproj description

* Fixed some comments

* Updated sln

* Minor code style tweak

* Minor optimization, code style tweaks

* Fixed some tests not running on .NET Core 3.0

* Added initial Array2DExtensions type

* Added T[,].AsSpan extension

* Added Count<T> and Djb2 hashcode extensions for T[,] arrays

* Added tests for the 2D array extensions

* Code refactoring

* Added NullableByReference<T> type

* Minor code refactoring

* Added NullableReadOnlyByReference<T> type

* Added unit tests for new Nullable[ReadOnly]ByReference<T> types

* Fixed an XML comment

* Added T[,] array GetRow and GetColumn extensions

* Added Array2DColumnEnumerable<T>.ToArray() helper method

* Code refactoring

* Added T[,].GetRow support on .NET Standard 2.0

* Added and optimized T[,].Fill extension

* Added T[,].Fill tests

* Added tests for T[,].GetRow extension

* Bug fixes in the 2D array enumerators

* Added tests for T[,].GetColumn extension

* Fixed a typo

* Fixed duplicate using directives

* Fixed an XML comment

* Inverted precompiler conditional directive for clarity

* Fixed error in an XML comment

* Removed unnecessary using directive

* Fixed publisher name in UWP test project

* Added StyleCop.Analyzers package to UWP test project

* Resolved StyleCop warnings in unit tests

* Added StyleCop.Analyzers package to .NET Core test project

* Resolved .NET Core specific StyleCop warnings

* Updated Test SDK and packages in .NET Core unit test project

* Fixed object name in MemoryStream.ThrowObjectDisposedException()

* Minor code style tweak and optimization

* Added test for the argument name in ParallelHelper exceptions

* Fixed visibility modifiers

* Fixed Box<T> type on ARM devices

* Added MemoryStream tests for argument names in exceptions

* Minor improvements to some unit tests

* Removed duplicate System.Runtime.CompilerServices.Unsafe reference

* Removed unnecessary StyleCop reference and .ruleset file

* Resolved StyleCop warnings in unit tests

* Minor performance improvements in ByReference<T> types on x64

* Minor style tweaks

* Fixed missed refactoring

* Code refactoring

* Added missing readonly struct modifiers

* Enabgled running HighPerformance tests on build.

(cherry picked from commit c5524125391ca208586d0de09fffb89e3a01264d)

* Bug fixes in the Box<T> type on some runtimes

* Added missing "Pack" target in UWP test project

* Code refactoring, moved Box<T> extensions to same file for clarity

* Bumped System.Runtime.CompilerServices.Unsafe to 5.0.0-preview.2.20160.6

* Fixed Box<T>.ToString/GetHashCode issues on .NET Core 2.1 Release

* Updated comments on the Box<T>.GetReference() method

Also pushing this commit just to re-trigger the CI build, since GitHub went offline and caused the previous one to fail/half midway through

* Fixed package downgrade in UWP test project

* Aligned ref returns for ReadOnlySpan<T>/string to MemoryMarsha.GetReference

* Renamed ByReference<T> APIs

* Removed unnecessary preview package

Co-authored-by: Michael Hawker MSFT (XAML Llama) <michael.hawker@outlook.com>
Co-authored-by: Alexandre Zollinger Chohfi <alzollin@microsoft.com>
2020-05-05 16:44:11 -07:00