Releases: aardvark-platform/aardvark.base
Releases · aardvark-platform/aardvark.base
Release list
5.3.25
- [Essentials] Hardened
Await.WhenAllempty, duplicate, and null-input handling - [Base] Hardened
LruCachefailed insertions and size validation - [FSharp] Fixed
ConcurrentHashQueue.Dequeuefor single-item queues - [Base] Fixed
LruCache.TryRemoveto invoke per-entry cleanup actions - [IO] Hardened
UberStream.Seekvalidation for invalid origins, negative targets, and overflow - [IO] Fixed
UberStream.Readaccounting for short-read underlying streams - [Base] Hardened array enumeration helper argument validation
- [IO] Hardened
ChunkedMemoryStreamboundary validation and sparse-position writes - [Base] Implemented mutation operations for union dictionaries
- [Base] Made enumerable tail-reordering helpers consume inputs only once
- [Base] Hardened random subset helper argument validation
- [Essentials] Hardened
Await.WithCancellationnull input validation - [Base] Hardened random permutation and randomization argument validation
- [Base] Hardened
TakeRandomlyselector argument validation - [Telemetry] Hardened telemetry environment and named-probe argument validation
- [Essentials] Hardened
Task.WithCancellationnull task validation - [Base] Hardened
AverageWindowandMedianWindowconstructor validation - [Telemetry] Fixed
MinViewandMaxViewempty params handling - [Base] Fixed network-to-host byte-order conversions for oversized byte buffers
- [Base] Hardened
ListFunarray copy/map helper argument validation - [Base] Fixed camera projection clipping-window setters to reject invalid incoming boxes
- [Base] Made custom-comparer
EnumerableEx.MinandMaxconsume inputs only once - [Base] Fixed
TextParser.TrySkipfinal-character and sliced-text matching - [Base] Hardened
AliasTableFandAliasTableDPDF validation - [Base] Made
MinimumSpanningTree.Createconsume lazy edge sequences only once - [Base] Hardened list rank-index helpers for null lists, empty lists, and invalid ranks
- [Base] Hardened ranked-index enumerable helpers for null sources and negative counts
- [Base] Fixed
Text.Empty.ToString()to return an empty string - [Base] Hardened
EnumerableEx.IndexOffor null sources and null elements - [Base] Hardened
SubRange<T>constructor, indexer, and null-value search behavior - [Base] Fixed
Text.IndexOfto handle empty text and clamped forward search ranges safely - [Base] Hardened
IList.FirstIndexOfargument validation for null inputs and invalid start indices - [Introspection] Added
IntrospectionProperties.AssemblyLoadContext
5.3.24
- [Base] Fixed
Text.LastIndexOfto search backward within sliced text ranges - [Base] Fixed Julian day conversion to round-trip millisecond-precision
DateTimevalues - [Base] Disposed enumerators created by enumerable min/max helpers
- [Base] Hardened enumerable take/index helpers with explicit argument validation
- [Base] Made
PairSequenceandTripleSequenceenumerate inputs once and dispose enumerators - [Base] Fixed
C4fcolor averaging to preserve green and blue channel order - [Base] Made
SetEqualshandle two null inputs and enumerate inputs only once - [Base] Disposed enumerators created by sequence take/index helpers
- [Base] Fixed quadratic double roots at zero in polynomial real-root solvers
- [Base] Disposed enumerators created by enumerable zip helpers
- [IO] Hardened
UberStreamconstructor and read/write argument validation - [Base] Made
EnumerableEx.AllDistinctandAllEqualenumerate inputs only once - [PixImage] Fixed save-parameter validation messages to report numeric values without a leading dollar sign
- [Base] Hardened
Stream.ReadBytesargument validation before reading - [Random] Fixed
TakeRandomlyto reject NaN probabilities - [Base] Fixed
SingleValueSymbolDictvalue-only construction and shared-value setter/add behavior - [Essentials] Fixed
EventSourceSlim<T>next-value awaitables and non-genericIEventmembers - [Base] Completed
SingleEntryDictlookup, removal, and re-add behavior - [Geometry] Fixed
Plane3.Projectarray-slice validation for ranges ending at the array length - [Base] Fixed
EnumerableEx.SelectToListoverloads for arrays and lists - [Base] Fixed
StringFun.Pluralfor empty and one-character words - [Base] Fixed
ListFun.Map3to truncate to the shortest input list when the third list is shortest - [Base] Hardened
Adler32input validation for null inputs and invalid array ranges - [Random] Fixed
RandomSystemboundary handling for inclusive integer and open/closed floating-point samples - [Geometry] Implemented
Quad2.Contains(...)overloads for lines, triangles, quads, and circles - [FSharp] Fixed null-argument validation for custom
Seqhelpers - [FSharp] Fixed
Seq.foldito pass the correct element index - [Essentials] Fixed
Task.WithCancellationfor already-canceled tokens - [FSharp] Added
MVar.TryTake() - [FSharp] Added shared memory utilities
5.3.23
- [CI] Added a publish workflow early exit when release notes already match the latest GitHub Release
5.3.22
- [Telemetry] Fixed
WallClockTimertimer disposal so repeatedDisposecalls do not corrupt timer state - [Introspection] Fixed native library loading on Windows using netstandard2.0 (#86)
- [Base] Fixed
Dict.Contains(key, value)for collided entries in hash buckets - [Base] Fixed reentrant
Dict.GetOrCreate - [Base] Fixed linear polynomial real roots
- [Base] Fixed special dict setter behavior
- [Base] Added fast values enumerator API for dict types
- [PixImage] Improved reporting of inner exceptions thrown by loaders and processors
- [FSharp] Added
Array.chooseVandArray.chooseiV - [FSharp] Added
Array.zipVandArray.unzipV - [FSharp] Added intersection methods using
ValueOptionforBvhTreeandKdTree
5.3.21
- [Base] Simplified computation of Constant.MachineEpsilon
- [FSharp] Fixed MapExt.choose2 and MapExt.map2
5.3.20
- [Base] Improved native library loading and symlink creation
- [FSharp] Added utilities for copying streams
- [Fonts] Added Font.LoadFromAssembly for loading embedded fonts
- [Fonts] Improved error reporting by font resolver
- [Fonts] Added missing Symbola font
- [Fonts] Implemented font resolver for Linux
- [Base] Added hashing extensions for typed arrays in NET Standard 2.0 to improve binary compatibility with .NET 8 build.
5.3.19
- [Color] Added missing over- and underflow checks
- [PixCube] Added null- and length checks for input arrays
- [PixCube] Added IsEmpty
5.3.18
- Added ReadOnlySpan overloads for Cell, Cell2d, and range types
- [Tensors] Added and improved XML documentation
- [Tensors] Added PixImage and PixVolume constructors for data arrays
- [Color] Added over- and underflow checks for integer-based arithmetic operators
- [Color] Deprecated addition and subtraction of different types
- [Color] Deprecated integer-based multiplication and division
- [FSharpMath] Added min, max overloads for uint vectors
- [Introspection] Added overloads for unpacking native dependencies for a specific platform
5.3.17
- [FSharp] Added non-generic isNull and notNull
- [FSharp] Added generic inc and dec
- [FSharp] Fixed generic constraint of NativePtr.stackUseArr
5.3.16
- Fixed Cell.XYZ bug and improved doc comments
- [FSharp] Added PinnedValue and PinnedValue<'T> utility for pinning values and arrays with IDisposable semantics
- [FSharp] Added explicit type parameters to NativePtr functions
- [PixImage] Improved error messages regarding image loaders