- Argument splatting (
x...) can now be used in calls to thenewpseudo-function in constructors (#30577). - Support for Unicode 12.0.0 (#31561).
- Added
⋆(\star) as unary operator (#31604).
- Empty entries in
JULIA_DEPOT_PATHare now expanded to default depot entries (#31009).
- The
Conditiontype now has a thread-safe replacement, accessed asThreads.Condition. With that addition, task scheduling primitives such asReentrantLockare now thread-safe (#30061). - It is possible to schedule and switch Tasks during
@threadsloops, 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=0atmaketime (#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.haspropertyandBase.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).
Enumnow behaves like a scalar when used in broadcasting (#30670).- If a
pipelineis specified withappend=trueset, but no redirection, anArgumentErroris thrown, rather than aErrorException(#27900). - Functions that invoke commands (e.g.
run(::Cmd)) now throw aProcessFailedExceptionrather than anErrorException, if those commands exit with non-zero exit code (#27900). - The
extremafunction now accepts a function argument in the same manner asminimumandmaximum(#30323). hasmethodcan now check for matching keyword argument names (#30712).startswithandendswithnow accept aRegexfor the second argument (#29790).retrysupports arbitrary callable objects (#30382).- A no-argument constructor for
Ptr{T}has been added which constructs a null pointer (#30919). stripnow accepts a function argument in the same manner aslstripandrstrip(#31211).mktempdirnow accepts aprefixkeyword argument to customize the file name (#31230, #22922).keytypeandvaltypenow work onAbstractArray, and return theeltypeofkeys(...)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)) == xwhereas previously this could result in a completely different value with a different precision (#31310).mapreducenow accepts multiple iterators, similar tomap(#31532).filternow supportsSkipMissing-wrapped arrays (#31235).- Objects created by calling
skipmissingon an array can now be indexed using indices from the parent at non-missing positions. This allows functions such asfindall,findfirst,argmin/argmaxandfindmin/findmaxto 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,atoltopinvandnullspace(#29998). UniformScalinginstances are now callable such that e.g.I(3)will produce aDiagonalmatrix (#30298).- Eigenvalues λ of general matrices are now sorted lexicographically by (Re λ, Im λ) (#21598).
onefor 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'whereuandvare sparse vectors or column views (#24980). - The
sprandfunction is now 2 to 5 times faster (#30494). As a consequence of this change, the random stream of matrices produced withsprandandsprandnhas changed.
getipaddrsreturns IP addresses in the order provided by libuv (#32260).getipaddrprefers to return the firstIPv4interface address provided by libuv (#32260).
quantilenow accepts in all cases collections whoseeltypeis not a subtype ofNumber(#30938).
- Since environment variables on Windows are case-insensitive,
ENVnow converts its keys to uppercase for display, iteration, and copying (#30593).