-
Structs with all isbits and isbitsunion fields are now stored inline in arrays ([#32448]).
-
import
now allows quoted symbols, e.g.import Base.:+
([#33158]). -
Function composition now supports multiple functions:
∘(f, g, h) = f ∘ g ∘ h
and splatting∘(fs...)
for composing an iterable collection of functions ([#33568]). -
Functions
gcd
,lcm
, andgcdx
now supportRational
arguments ([#33910]). -
a[begin]
can now be used to address the first element of an integer-indexed collectiona
. The index is computed byfirstindex(a)
([#33946]).
-
Calling
show
orrepr
on anundef
/UndefInitializer()
array initializer now shows valid Julia code ([#33211]). -
Calling
show
orrepr
on a 0-dimensionalAbstractArray
now shows valid code for creating an equivalent 0-dimensional array, instead of only showing the contained value. ([#33206]) -
The syntax
(;)
, which used to parse as an empty block expression, is deprecated. In the future it will indicate an empty named tuple ([#30115]).
- Windows build installer has switched to Inno Setup. Installer command line parameters have thus changed. For example, to extract the installer to a specific directory, the command line parameter is now
/DIR=x:\dirname
. Usejulia-installer.exe /?
to list all new command line parameters.
- The
splitpath
function now accepts anyAbstractString
whereas previously it only accepted paths of typeString
([#33012]). - The
tempname
function now takes an optionalparent::AbstractString
argument to give it a directory in which to attempt to produce a temporary path name ([#33090]). - The
tempname
function now takes acleanup::Bool
keyword argument defaulting totrue
, which causes the process to try to ensure that any file or directory at the path returned bytempname
is deleted upon process exit ([#33090]). - The
readdir
function now takes ajoin::Bool
keyword argument defaulting tofalse
, which when set causesreaddir
to join its directory argument with each listed name ([#33113]). readdir
output is now guaranteed to be sorted. Thesort
keyword allows opting out of sorting to get names in OS-native order ([#33542]).- The new
only(x)
function returns the one-and-only element of a collectionx
, and throws anArgumentError
ifx
contains zero or multiple elements. ([#33129]) takewhile
anddropwhile
have been added to the Iterators submodule ([#33437]).accumulate
has been added to the Iterators submodule.filter
can now act on aTuple
([#32968]).- There is a now an
evalpoly
(generated) function meant to take the role of the@evalpoly
macro. The function is just as efficient as the macro while giving added flexibility, so it should be preferred over@evalpoly
.evalpoly
takes a list of coefficients as a tuple, so where one might write@evalpoly(x, p1, p2, p3)
one would instead writeevalpoly(x, (p1, p2, p3))
.
-
The methods of
mktemp
andmktempdir
which take a function body to pass temporary paths to no longer throw errors if the path is already deleted when the function body returns ([#33091]). -
div
now accepts a rounding mode as the third argument, consistent with the corresponding argument torem
. Support for rounding division, by passing one of the RoundNearest modes to this function, was added. For future compatibility, library authors should now extend this function, rather than extending the two-argumentfld
/cld
/div
directly. ([#33040]) -
Verbose
display
ofChar
(text/plain
output) now shows the codepoint value in standard-conforming"U+XXXX"
format ([#33291]). -
Iterators.partition
now uses views (or smartly re-computed ranges) for partitions of allAbstractArray
s ([#33533]). -
Sets are now displayed less compactly in the REPL, as a column of elements, like vectors and dictionaries ([#33300]).
-
methods
now accepts passing a module (or a list thereof) to filter methods defined in it ([#33403]).
-
qr
andqr!
functions supportblocksize
keyword argument ([#33053]). -
dot
now admits a 3-argument methoddot(x, A, y)
to compute generalized dot productsdot(x, A*y)
, but without computing and storing the intermediate resultA*y
([#32739]). -
ldlt
and non-pivotedlu
now throw a newZeroPivotException
type ([#33372]). -
cond(A, p)
withp=1
orp=Inf
now computes the exact condition number instead of an estimate ([#33547]). -
UniformScaling
objects may now be exponentiated such that(a*I)^x = a^x * I
.
- Tables now have the
align
attribute set whenshow
n as HTML ([#33849]).
-
AbstractRNG
s now behave like scalars when used in broadcasting ([#33213]). -
Products involving sparse arrays now allow more general sparse
eltype
s, such asStaticArrays
([#33205]) -
The performance of
rand(::Tuple)
is improved in some cases ([#32208]). As a consequence, the stream of generated values produced for a given seed has changed.
- The attributes of the implicit
IOContext
used by the REPL to display objects can be modified by the user (experimental feature) ([#29249]).