- The
@pure
macro is now deprecated. UseBase.@assume_effects :foldable
instead ([#48682]).
tanpi
is now defined. It computes tan(πx) more accurately thantan(pi*x)
([#48575]).
- The
initialized=true
keyword assignment forsortperm!
andpartialsortperm!
is now a no-op ([#47979]). It previously exposed unsafe behavior ([#47977]). binomial(x, k)
now supports non-integerx
([#48124]).- A
CartesianIndex
is now treated as a "scalar" for broadcasting ([#47044]). printstyled
now supports italic output ([#45164]).
startswith
now supports seekableIO
streams ([#43055])
- "Package Extensions": support for loading a piece of code based on other packages being loaded in the Julia session. This has similar applications as the Requires.jl package but also supports precompilation and setting compatibility.
Pkg.precompile
now acceptstiming
as a keyword argument which displays per package timing information for precompilation (e.g.Pkg.precompile(timing=true)
)
AbstractQ
no longer subtypes toAbstractMatrix
. Moreover,adjoint(Q::AbstractQ)
no longer wrapsQ
in anAdjoint
type, but instead in anAdjointQ
, that itself subtypesAbstractQ
. This change accounts for the fact that typicallyAbstractQ
instances behave like function-based, matrix-backed linear operators, and hence don't allow for efficient indexing. Also, manyAbstractQ
types can act on vectors/matrices of different size, acting like a matrix with context-dependent size. With this change,AbstractQ
has a well-defined API that is described in detail in the Julia documentation ([#46196]).- Adjoints and transposes of
Factorization
objects are no longer wrapped inAdjoint
andTranspose
wrappers, respectively. Instead, they are wrapped inAdjointFactorization
andTranposeFactorization
types, which themselves subtypeFactorization
([#46874]). - New functions
hermitianpart
andhermitianpart!
for extracting the Hermitian (real symmetric) part of a matrix ([#31836]).
- Format specifiers now support dynamic width and precision, e.g.
%*s
and%*.*g
([#40105]).
- The
@test_broken
macro (or@test
withbroken=true
) now complains if the test expression returns a non-boolean value in the same way as a non-broken test. ([#47804])
code_native
and@code_native
now default to intel syntax instead of AT&T.