Release notes
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Version v1.4.2 - 2026-10-13
Added
- No public-facing changes in this version, only new FileCheck-based tests added (#204).
Version v1.4.1 - 2026-10-13
Fixed
- Improved performance on Julia v1.13 and later of loops after a check of the size of a
FixedSizeArrayargument, such asaxes(a) == axes(b) || throw(...):sizenow loads all dimensions at once, so that LLVM can use the checked dimensions in the loop instead of reloading them. (#201, #202)
Version v1.4.0 - 2026-10-13
Added
- New public function
FixedSizeArrays.wrapto construct aFixedSizeArrayaround an existing parentDenseVector(e.g. aMemoryor aVector) without copying it. (#196) - Package extension with
MPI.jl:FixedSizeArrays (andSubArrays of them) can now be used directly as communication buffers in MPI operations, e.g.MPI.Send,MPI.Recv!,MPI.Bcast!,MPI.Allreduce!andMPI.Gatherv!, by definingMPI.Buffer(::FixedSizeArray)and the conversion toMPI.MPIPtr. Requires MPI.jl v0.20.28 or later. (#198)
Changed
BoundsErrorLightis now an alias forLightBoundsErrorfrom theLightBoundsErrors.jlpackage, instead of being a type defined in this package. As a consequence, the properties of the exception object and the error message have changed. (#176)- All out-of-bounds accesses to a
FixedSizeArraygoing throughcheckboundsnow throwLightBoundsError, not only those indexing with a single integer; the other cases used to throwBoundsError. (#175, #176) - The validation of the dimensions when constructing a
FixedSizeArrayis now implemented with theCheckedSizeProduct.jlpackage. Invalid dimensions still throw anArgumentError, but with a single error message which includes the offending shape. (#89, #90)
Fixed
isassigned(::FixedSizeArray, ::Int)now checks the bounds on theFixedSizeArrayitself, instead of relying on the parent to do it, giving correct results also with underlying storage types which do not check bounds. (#188)copy!(::FixedSizeVector, ::AbstractVector)now throws a descriptiveArgumentErrorwhen the axes of the two arrays do not match, instead of aMethodErrorcaused by trying to callresize!on the destination. (#194, #195)
Version v1.3.0 - 2026-02-14
Changed
- The package extensions were renamed from
RandomExtandAdaptExttoFixedSizeArraysRandomExtandFixedSizeArraysAdaptExt, respectively, to avoid clashes with similarly named extensions in other packages. (#162) - Improved performance of iterating over a
FixedSizeArray: constant propagation throughiteratenow allows the compiler to unroll loops over arrays with statically known size. (#158) - Improved performance of destructuring a
FixedSizeArraywith a slurping pattern (e.g.a, rest... = array), by adding a method toBase.rest. (#166)
Fixed
- Indexing a multidimensional
FixedSizeArraywith a singleColon(A[:]) now always returns a vector, instead of an array with the same shape asA. (#161) - Fixed type inference of
collect_asin Julia v1.12 and later. (#160, #172)
Version v1.2.0 - 2025-08-07
Added
Version v1.1.0 - 2025-08-05
Added
Version v1.0.1 - 2025-06-08
Fixed
Version v1.0.0 - 2025-06-04
Initial release.