Releases: BioJulia/MemoryViews.jl
v0.4.1
v0.4.0
Breaking changes
-
Removed the
Unsafetrait type.
Instead ofMutableMemoryView(::Unsafe, ::MemoryView), use
unsafe_from_parts(::MemoryRef, ::Int)
Using the inner constructorMemoryView{T, M}(::Unsafe, ::MemoryRef{T}, ::Int)
was never documented API and is now removed. -
Matrixand otherArraytypes with a different dimensionality than 1 is now
NotMemory, since it is not equal to its own memory view, due to shape mismatch.
The fact that it was previouslyIsMemorywas a bug. -
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. -
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.
Other
parentindicesnow works correctly for zero-sized structs.Base.memoryref(::MemoryView)obtains theMemoryRefin aMemoryView.
v0.3.7
Various internal bugfixes
v0.3.6
v0.3.5
0.3.5
- Add method
MemoryKind{::Type{<:MemoryView}} - Add package extension for LibDeflate.jl
v0.3.4
Add new function unsafe_from_parts to construct a memory view from a MemoryRef.
v0.3.3
New features
- Add a new
split_eachfunction, which iterates over memory views delimited
by a single element delimiter.
Other changes
- Add some more fast methods for Memory/Vector/MemoryView interop
- Add a fast method for
Base.readbytes!reading into a memory view
v0.3.2
New features
- FixedSizeArrays.jl is now supported through an extension
Other changes
- Various small bugfixes and optimisations
v0.3.1
Various bugfixes.
v0.3.0
Breaking changes
- 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 from
i < 1will still simply returnnothing, just like searching vectors.
Other changes
- 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