-
Argument splatting (
x...
) can now be used in calls to thenew
pseudo-function in constructors (#30577). -
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). -
Support for Unicode 12.0.0 ([#31561]).
-
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]).
- It is possible to schedule and switch Tasks during
- Empty entries in
JULIA_DEPOT_PATH
are now expanded to default depot entries (#31009). 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]). - Added
⋆
(\star
) as unary operator ([#31604]).
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)
has been added for currying, similar to the existing==(x)
andisequal(x)
methods (#30915).
- 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).filter
now supportsSkipMissing
-wrapped arrays (#31235).- A no-argument construct to
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 accept multiple iterators, similar tomap
(#31532).
- 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)
- Fixed
repr
such that it displaysDateTime
as it would be entered in Julia (#30200).
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). -
Build system now prefers downloading prebuilt binary tarballs for most dependencies on supported systems, disable by setting
USE_BINARYBUILDER=0
atmake
time (#31441).