This project follows semantic versioning (semver) 2.0. Any new features, or breaking changes, will be written in this file. Bugfixes, internal refactors, documentation improvements and style changes will not be mentioned here, because they do not impact how the package is to be used.
-
Removed the
Unsafetrait type:- Instead of
MutableMemoryView(::Unsafe, ::MemoryView), useunsafe_from_parts(::MemoryRef, ::Int) - Using the inner constructor
MemoryView{T, M}(::Unsafe, ::MemoryRef{T}, ::Int)was never documented API and is now removed.
- Instead of
-
Matrixand otherArraytypes with a different dimensionality than 1 is nowNotMemory, since it is not equal to its own memory view, due to shape mismatch. -
Out of bounds access now throws a
LightBoundsErrorfrom the LightBoundsErrors package, instead ofBase.BoundsError. This improves codegen slightly, as it enables escape analysis of the array, and outlines error paths slightly more aggressively. -
MemoryView(::SubArray)now accepts fewer subarray types. However, it is unlikely that any instance that is now no longer accepted worked previously, so it is unlikely to be breaking in practice.
parentindicesnow works correctly for zero-sized structs.Base.memoryref(::MemoryView)obtains theMemoryRefin aMemoryView.
- Add method
MemoryKind{::Type{<:MemoryView}} - Add package extension for LibDeflate.jl
- Add new function
unsafe_from_partsto construct a memory view from aMemoryRef.
- Add a new
split_eachfunction, which iterates over memory views delimited by a single element delimiter.
- Add some more fast methods for Memory/Vector/MemoryView interop
- Add a fast method for
Base.readbytes!reading into a memory view
- Support FixedSizeArrays
- Various bugfixes and optimisations
- Format with Runic
- Fix a bug in parentindices, where it returned the wrong type
- Make
similarreturn a mutable array always - Various bugfixes and optimisations
- Change the bounds checking behaviour of the find* functions to match those of
Vector. In particular, previously,findnext(pred, mem, -5)would be equivalent to searching from index 1, and similarly,findprev(pred, mem, lastindex(mem) + 10)would be equialent to searching fromlastindex(mem). Now, searching from an index before the first valid index throws aBoundsError. Findfirst searching fromi > lastindex(mem), and findlast searching fromi < 1will still simply returnnothing, just like searching vectors.
- Add optimised versions of
findprevandfindlast, searching bytes - Add optimised version of
find*(iszero, bytes)methods - Add optimised generic
find*methods - Add functions
split_first,split_last,split_atandsplit_unaligned - Add a more correct implementation of
Base.mightaliasfor memory views and some types of arrays