- Types written with
where
syntax can now be used to define constructors, e.g.(Foo{T} where T)(x) = ...
.
- All platforms can now use
@executable_path
withinjl_load_dynamic_library()
. This allows executable-relative paths to be embedded within executables on all platforms, not just MacOS, which the syntax is borrowed from. ([#35627])
- New function
Base.kron!
and corresponding overloads for various matrix types for performing Kronecker product in-place. ([#31069]). - New function
Base.Threads.foreach(f, channel::Channel)
for multithreadedChannel
consumption. ([#34543]).
- The
nextprod
function now accepts tuples and other array types for its first argument ([#35791]). - The function
isapprox(x,y)
now accepts thenorm
keyword argument also for numeric (i.e., non-array) argumentsx
andy
([#35883]). view
,@view
, and@views
now work onAbstractString
s, returning aSubString
when appropriate ([#35879]).- All
AbstractUnitRange{<:Integer}
s now work withSubString
,view
,@view
and@views
on strings ([#35879]).
- New method
LinearAlgebra.issuccess(::CholeskyPivoted)
for checking whether pivoted Cholesky factorization was successful ([#36002]). UniformScaling
can now be indexed into using ranges to return dense matrices and vectors ([#24359]).
- Display large sparse matrices with a Unicode "spy" plot of their nonzero patterns, and display small sparse matrices by an
Matrix
-like 2d layout of their contents.
- Change
uuid1
anduuid4
to useRandom.RandomDevice()
as default random number generator ([#35872]).