Introduce IReproducibleRng to make RNG Create and CreateSeed methods accessible by static interface methods
3213a68955fb — Michael Johnson 11 days ago
Add static Create and CreateSeed methods to each of the reproducible RNGs
77efd3772b71 — Michael Johnson 11 days ago
Introduce ISelfSeedingRng to make RNG Create methods accessible by static interface methods

.NET 7's static abstract lets us finally put static methods in interfaces. This lets us pass just the type to a method needing an RNG instead of a factory instance.

For example:
void Set<TRng>() where TRng : IRng, ISelfSeedingRng<TRng> => _rng = TRng.Create();
instead of
void Set<TRng>(IRngFactory<TRng> factory) where TRng : IRng => _rng = factory.Create();
615e3065e849 — Michael Johnson master 13 days ago
Suppress some errors
8c638d5631c8 — Michael Johnson 13 days ago
Bump lang version to 11 and analysis level to 7
8e5cebf50001 — Michael Johnson 14 days ago
Add ChaCha256-specific tests
21e34d1841fd — Michael Johnson 14 days ago
Use hardware-agnostic Vector128 and Vector256 instrinsics methods on .NET 7 instead of requiring AVX2 or SSE2

These have equivalent performance to their AVX2 and SSE2 counterparts, with the added benefit of potentially providing acceleration on non-x86 platforms such as ARM (this needs to be verified).
76f78c18e38b — Michael Johnson 14 days ago
Add .NET 7 as a target
db9ce1514536 — Michael Johnson a month ago
Clean up and simplify ChaChaIntrinsics
130357cd6bf3 — Michael Johnson a month ago
Simplify PropertyGroup conditions
bce6bb452ace — Michael Johnson a month ago
Drop support for .NET 5
612ab716b661 — Michael Johnson a month ago
Use latest version of BenchmarkDotNet
f245321f9402 — Michael Johnson a month ago
Suppress Rider/ReSharper's inconsistent naming warning
82da5bc459a3 — Michael Johnson a month ago
Implement ISeekableBlockRngCore on ChaCha intrinsics implementations
ea29ce03603a — Michael Johnson a month ago
Fix minor warnings
5c8932818c2c — Michael Johnson a month ago
Bump analysis level to 6
e8395ba56e25 — Michael Johnson a month ago
Update C# version to 10 and use file-scoped namsepaces
22d86911505f — Michael Johnson a month ago
Fix missed conditions for .NET 4.8
fdad3622f225 — Michael Johnson a month ago
Add benchmarking for .NET 6
6c441efc3c33 — Michael Johnson a month ago
Make build script Linux-friendly by using cross-platform New-Item commandlet and
bump tested .NET Framework version to 4.8
Next