This release went smooth as a butter thanks to the formalization work done during 2023 and 2024 years. It contains the following functionality and quality improvements:
- Added support of
System.IFormattable
interface toInterval<T>
andValueInterval<T>
types provided byGapotchenko.FX.Math.Intervals
module - Added
System.Threading.Lock
support toGapotchenko.FX.Threading.LazyInitializerEx
primitive - Added
System.Threading.Lock
support toGapotchenko.FX.Threading.EvaluateOnce<T>
primitive - Added
System.Threading.Lock
support toGapotchenko.FX.Threading.ExecuteOnce
primitive Gapotchenko.FX.Reflection.Loader
module made as lazy as possible to avoid chicken and egg pitfalls- Added
Gapotchenko.FX.IOptional
interface forGapotchenko.FX.Optional<T>
type to allow an untyped optional value introspection - Implemented memory span-based operations in
Gapotchenko.FX.IO.FragmentedMemoryStream
type - Polyfills:
- Added polyfill for
System.Runtime.CompilerServices.OverloadResolutionPriorityAttribute
type - Added
Zip(first, second)
andZip(first, second, third)
polyfill methods forIEnumerable<T>
type
- Added polyfill for
- Fixed issues:
- Fixed issue with nested
Gapotchenko.FX.Optional<T>
values that could occur during implicit value conversion toGapotchenko.FX.Optional<object>
- Fixed issue in
Gapotchenko.FX.Reflection.Loader
module that was caused by not taking into account a base directory of the assembly that had probing paths specified in itsApp.config
file
- Fixed issue with nested