- Argument splatting (
x...
) can now be used in calls to thenew
pseudo-function in constructors (#30577). - Support for Unicode 12.0.0 (#31561).
- Added
⋆
(\star
) as unary operator (#31604).
- Empty entries in
JULIA_DEPOT_PATH
are now expanded to default depot entries (#31009).
- The
Condition
type now has a thread-safe replacement, accessed asThreads.Condition
. With that addition, task scheduling primitives such asReentrantLock
are now thread-safe (#30061). - It is possible to schedule and switch Tasks during
@threads
loops, and perform limited I/O (#31438).
- The build system now prefers downloading prebuilt binary tarballs for most dependencies on
supported systems, disable by setting
USE_BINARYBUILDER=0
atmake
time (#31441).
getipaddrs()
function returns all the IP addresses of the local machine, with IPv4 addresses sorting before IPv6 addresses ([#30349, #30604]).getipaddr(addr_type)
andgetipaddrs(addr_type)
functions returns an IP address(es) of the desired type of the local machine (#30604).- Added
Base.hasproperty
andBase.hasfield
(#28850). - One argument
!=(x)
,>(x)
,>=(x)
,<(x)
,<=(x)
have been added, returning partially-applied versions of the functions, similar to the existing==(x)
andisequal(x)
methods (#30915).
Enum
now behaves like a scalar when used in broadcasting (#30670).- If a
pipeline
is specified withappend=true
set, but no redirection, anArgumentError
is thrown, rather than aErrorException
(#27900). - Functions that invoke commands (e.g.
run(::Cmd)
) now throw aProcessFailedException
rather than anErrorException
, if those commands exit with non-zero exit code (#27900). - The
extrema
function now accepts a function argument in the same manner asminimum
andmaximum
(#30323). hasmethod
can now check for matching keyword argument names (#30712).startswith
andendswith
now accept aRegex
for the second argument (#29790).retry
supports arbitrary callable objects (#30382).- A no-argument constructor for
Ptr{T}
has been added which constructs a null pointer (#30919). strip
now accepts a function argument in the same manner aslstrip
andrstrip
(#31211).mktempdir
now accepts aprefix
keyword argument to customize the file name (#31230, #22922).keytype
andvaltype
now work onAbstractArray
, and return theeltype
ofkeys(...)
andvalues(...)
respectively (#27749).nextfloat(::BigFloat)
andprevfloat(::BigFloat)
now returns a value with the same precision as their argument, which means that (in particular)nextfloat(prevfloat(x)) == x
whereas previously this could result in a completely different value with a different precision (#31310).mapreduce
now accepts multiple iterators, similar tomap
(#31532).filter
now supportsSkipMissing
-wrapped arrays (#31235).- Objects created by calling
skipmissing
on an array can now be indexed using indices from the parent at non-missing positions. This allows functions such asfindall
,findfirst
,argmin
/argmax
andfindmin
/findmax
to work with these objects, returning the index of matching non-missing elements in the parent (#31008). inv(::Missing)
has now been added and returnsmissing
(#31451).nextfloat(::BigFloat, n::Integer)
andprevfloat(::BigFloat, n::Integer)
methods have been added (#31310).
- Added keyword arguments
rtol
,atol
topinv
andnullspace
(#29998). UniformScaling
instances are now callable such that e.g.I(3)
will produce aDiagonal
matrix (#30298).- Eigenvalues λ of general matrices are now sorted lexicographically by (Re λ, Im λ) (#21598).
one
for structured matrices (Diagonal
,Bidiagonal
,Tridiagonal
,Symtridiagonal
) now preserves structure and type (#29777).diagm(v)
is now a shorthand fordiagm(0 => v)
(#31125).
- Performance improvements for sparse matrix-matrix multiplication (#30372).
- Sparse vector outer products are more performant and maintain sparsity in products of the
form
kron(u, v')
,u * v'
, andu .* v'
whereu
andv
are sparse vectors or column views (#24980). - The
sprand
function is now 2 to 5 times faster (#30494). As a consequence of this change, the random stream of matrices produced withsprand
andsprandn
has changed.
getipaddrs
returns IP addresses in the order provided by libuv (#32260).getipaddr
prefers to return the firstIPv4
interface address provided by libuv (#32260).
quantile
now accepts in all cases collections whoseeltype
is not a subtype ofNumber
(#30938).
- Since environment variables on Windows are case-insensitive,
ENV
now converts its keys to uppercase for display, iteration, and copying (#30593).