README.md updated.

This commit is contained in:
mlemanczyk committed 2023-06-21 19:19:31 +02:00
1 parent 20fe0cc491
commit 09a3420899
1 file changed
+29 -11
+29 -11
View File
@@ -56,7 +56,7 @@
1. ✅ `Contains` 1. ✅ `Contains`
1. 🅿️ `CopyTo` 1. 🅿️ `CopyTo`
1. ✅ `EnsureCapacity` 1. ✅ `EnsureCapacity`
1. 🅿️ `GetEnumerator` 1. ✅ `GetEnumerator`
1. ✅ `IndexOf` 1. ✅ `IndexOf`
1. ✅ `LongIndexOf` 1. ✅ `LongIndexOf`
1. ✅ `Insert` 1. ✅ `Insert`
@@ -108,16 +108,6 @@
1. 🅿️ Add support for `ulong` indexing 1. 🅿️ Add support for `ulong` indexing
1. 🅿️ Convert `_memoryBlocks` to `Array` to allow `ulong` lengths 1. 🅿️ Convert `_memoryBlocks` to `Array` to allow `ulong` lengths
1. 🅿️ Convert block indexes from `int` to `ulong` or `long` 1. 🅿️ Convert block indexes from `int` to `ulong` or `long`
1. 🅿️ Final optimizations
1. 🅿️ Replace `Math` class usages with `if` statements
1. 🅿️ Replace `a - b > 0` & `a - b < 0` comparisons with `a > b` & `a < b`
1. 🅿️ Replace `a + b > 0` & `a + b < 0` comparisons with `a > b` & `a < b`
1. 🅿️ Replace `a / b` & `a * b` calculations with equivalents, where possible
1. 🅿️ Replace virtual calls with static calls
1. 🅿️ Replace `blockSize` sums by powers of 2, minus 1
1. 🅿️ Remove type castings, if possible
1. 🅿️ Convert generic methods to non-generic
1. 🅿️ Replace integer comparisons with comparisons to 0 / 1, if possible
1. 🅿️ Overflow review 1. 🅿️ Overflow review
1. 🅿️ Add type casting to `long` for `<<` & `>>` operations, where required 1. 🅿️ Add type casting to `long` for `<<` & `>>` operations, where required
1. 🅿️ Make type castings `checked` 1. 🅿️ Make type castings `checked`
@@ -138,6 +128,10 @@
1. 🅿️ Implement `RecyclableUnorderedList<T>` 1. 🅿️ Implement `RecyclableUnorderedList<T>`
1. 🅿️ Port `RecyclableLongList<T>` optimizations to `RecyclableUnorderedList<T>` 1. 🅿️ Port `RecyclableLongList<T>` optimizations to `RecyclableUnorderedList<T>`
1. 🅿️ Release 0.0.7 1. 🅿️ Release 0.0.7
1. 🅿️ Implement `RecyclableVersionedList<T>`
1. 🅿️ Port `RecyclableList<T>` to `RecyclableVersionedList<T>`
1. 🅿️ Port `RecyclableLongList<T>` to `RecyclableVersionedLongList<T>`
1. 🅿️ Release 0.0.7a
1. 🅿️ Optimize `OneSizeArrayPool` 1. 🅿️ Optimize `OneSizeArrayPool`
1. 🅿️ Review locks 1. 🅿️ Review locks
1. 🅿️ Measure multi-threading performance 1. 🅿️ Measure multi-threading performance
@@ -183,14 +177,38 @@
1. 🅿️ Warnings 1. 🅿️ Warnings
1. 🅿️ Hints 1. 🅿️ Hints
1. Documentation 1. Documentation
1. 🅿️ Document the most efficient iteration over array collections
1. 🅿️ Document the most efficient iteration over blocked collections
1. 🅿️ Document differences in behavior 1. 🅿️ Document differences in behavior
1. 🅿️ Document other specifics 1. 🅿️ Document other specifics
1. 🅿️ Release 1.0.0 1. 🅿️ Release 1.0.0
1. 🅿️ Implement source code generators
1. 🅿️ Add attributes
1. 🅿️ `GeneratorBaseClassAttribute` for marking base class used for generation
1. 🅿️ `VersionedAttribute` for marking classes as versioned
1. 🅿️ `IncVersionAttribute` for marking methods & setters as resulting in version increase
1. 🅿️ Implement source code generator
1. 🅿️ Generate partial class for classes marked with `GeneratorBaseClassAttribute`
1. 🅿️ Add support for fields
1. 🅿️ Add support for properties
1. 🅿️ Add support for methods
1. 🅿️ Add support for constructor
1. 🅿️ Skip base fields, methods, properties etc. when they're overridden in the child class
1. 🅿️ Optimize 1. 🅿️ Optimize
1. 🅿️ `RecyclableLongList<T>.Resize` 1. 🅿️ `RecyclableLongList<T>.Resize`
1. 🅿️ `RecyclableLongList<T>.CopyTo` 1. 🅿️ `RecyclableLongList<T>.CopyTo`
1. 🅿️ Check if we can benefit from Sse2 in `.IndexOf`/`.Contains` methods as given in [MS blog](https://devblogs.microsoft.com/dotnet/hardware-intrinsics-in-net-core/). 1. 🅿️ Check if we can benefit from Sse2 in `.IndexOf`/`.Contains` methods as given in [MS blog](https://devblogs.microsoft.com/dotnet/hardware-intrinsics-in-net-core/).
1. 🅿️ Add support for `ICollection<T>` interface in `.AddRange` & `constructor` 1. 🅿️ Add support for `ICollection<T>` interface in `.AddRange` & `constructor`
1. 🅿️ Final optimizations
1. 🅿️ Replace `Math` class usages with `if` statements
1. 🅿️ Replace `a - b > 0` & `a - b < 0` comparisons with `a > b` & `a < b`
1. 🅿️ Replace `a + b > 0` & `a + b < 0` comparisons with `a > b` & `a < b`
1. 🅿️ Replace `a / b` & `a * b` calculations with equivalents, where possible
1. 🅿️ Replace virtual calls with static calls
1. 🅿️ Replace `blockSize` sums by powers of 2, minus 1
1. 🅿️ Remove type castings, if possible
1. 🅿️ Convert generic methods to non-generic
1. 🅿️ Replace integer comparisons with comparisons to 0 / 1, if possible
1. 🅿️ Release 2.0.0 1. 🅿️ Release 2.0.0
# Characteristics of the classes # Characteristics of the classes