Description
I think NEWS.md is getting quite large and could do with more structure. I took a section and added a tag to each of the (currently 143) items, then sorted by tag. I think it looks better — but the section names await the enthusiastic "bikeshedding" that we all love so much!
Each item got one of the following tags (sometimes I did struggle to assign just one):
##array
##date
##env (environment)
##io
##lang (language)
##linalg (linear algebra)
##math
##random
##string
##type
then after sorting (and removing the tags, making titles) we get this:
========================================
Deprecated
Array
-
Indexing into multidimensional arrays with more than one index but fewer indices than there are dimensions is no longer permitted when those trailing dimensions have lengths greater than 1. Instead, reshape the array or add trailing indices so the dimensionality and number of indices match ([deprecate (then remove) generalized linear indexing #14770], [Deprecate the omission of trailing indices over non-singleton dimensions #23628]).
-
indices(a)
andindices(a,d)
have been deprecated in favor ofaxes(a)
andaxes(a, d)
([RFC: Renameindices
toaxes
#25057]). -
Uninitialized
Array
constructors of the formArray[{T,N}](shape...)
have been deprecated in favor of equivalents acceptingundef
(an alias forUndefInitializer()
) as their first argument, as inArray[{T,N}](undef, shape...)
. For example,Vector(3)
is nowVector(undef, 3)
,Matrix{Int}((2, 4))
is now,Matrix{Int}(undef, (2, 4))
, andArray{Float32,3}(11, 13, 17)
is nowArray{Float32,3}(undef, 11, 13, 17)
([deprecate Array(shape...)-like constructors to Array(uninitialized, shape...) #24781]). -
Using Bool values directly as indices is now deprecated and will be an error in the future. Convert them to
Int
before indexing if you intend to access index1
fortrue
and0
forfalse
. -
slicedim(A, d, i)
has been deprecated in favor ofcopy(selectdim(A, d, i))
. The newselectdim
function now always returns a view intoA
; in many cases thecopy
is not necessary. Previously,slicedim
on a vectorV
over dimensiond=1
and scalar indexi
would return the just selected element (unlessV
was aBitVector
). This has now been made consistent:selectdim
now always returns a view into the original array, with a zero-dimensional view in this specific case ([Deprecate slicedim(…) to copy(selectdim(…)); always return a view #26009]). -
Uninitialized
RowVector
constructors of the formRowVector{T}(shape...)
have been deprecated in favor of equivalents acceptingundef
(an alias forUndefInitializer()
) as their first argument, as inRowVector{T}(undef, shape...)
. For example,RowVector{Int}(3)
is nowRowVector{Int}(undef, 3)
, andRowVector{Float32}((1, 4))
is nowRowVector{Float32}(undef, (1, 4))
([replace RowVector(shape...) constructors/calls with RowVector(uninitialized, shape...) #24786]). -
ones(A::AbstractArray[, opts...])
andzeros(A::AbstractArray[, opts...])
methods have been deprecated. Forzeros(A)
, considerzero(A)
. Forones(A)
orzeros(A)
, considerones(size(A))
,zeros(size(A))
,fill(v, size(A))
forv
an appropriate one or zero,fill!(copy(A), {1|0})
,fill!(similar(A), {1|0})
, or any of the preceding with different element type and/or shape depending onopts...
. Where strictly necessary, considerfill!(similar(A[, opts...]), {one(eltype(A)) | zero(eltype(A))})
. For an algebraic multiplicative identity, considerone(A)
([deprecate {ones|zeros}(A::AbstractArray[, opts...]) methods #24656]). -
rol
,rol!
,ror
, andror!
have been deprecated in favor of specialized methods forcircshift
/circshift!
([Deprecate rol and ror in favor of circshift methods #23404]). -
The ability of
reinterpret
to yieldArray
s of different type than the underlying storage has been removed. Thereinterpret
function is still available, but now returns aReinterpretArray
. The three argument form ofreinterpret
that implicitly reshapes has been deprecated ([Implement ReinterpretArray #23750]). -
Base.parentindexes
andSharedArrays.localindexes
have been renamed toparentindices
andlocalindices
, respectively. Similarly, theindexes
field in theSubArray
type has been renamed toindices
without deprecation ([Replace all use of 'indexes' with 'indices' #25088]). -
CartesianRange
has been renamedCartesianIndices
([Make CartesianRange an AbstractArray #24715]). -
sub2ind
andind2sub
are deprecated in favor of usingCartesianIndices
andLinearIndices
([Make CartesianRange an AbstractArray #24715]). -
getindex(F::Factorization, s::Symbol)
(usually seen as e.g.F[:Q]
) is deprecated in favor of dot overloading (getproperty
) so factors should now be accessed as e.g.F.Q
instead ofF[:Q]
([Deprecate getindex(::Factorization, ::Symbol) in favor of dot overloading #25184]). -
The generic implementations of
strides(::AbstractArray)
andstride(::AbstractArray, ::Int)
have been deprecated. Subtypes ofAbstractArray
that implement the newly introduced strided array interface should define their ownstrides
method ([Deprecate generic stride implementation (#17812), allow AbstractArrays to use BLAS/LAPACK routines (#25247) #25321]). -
endof(a)
has been renamed tolastindex(a)
, and theend
keyword in indexing expressions now lowers to eitherlastindex(a)
(in the case with only one index) orlastindex(a, d)
(in cases where there is more than one index andend
appears at dimensiond
) ([Add field docs for Diffopts #23554], [Simplify A[1, end] lowering with lastindex(A, n) #25763]).
Date
-
Vectorized
DateTime
,Date
, andformat
methods have been deprecated in favor of dot-syntax ([deprecate vectorized methods hiding in Dates #23207]). -
a:b
is deprecated for constructing aStepRange
whena
andb
have physical units (Dates and Times). Usea:s:b
, wheres = Dates.Day(1)
ors = Dates.Second(1)
. -
DateTime()
,Date()
, andTime()
have been deprecated, instead useDateTime(1)
,Date(1)
andTime(0)
respectively ([Deprecate DateTime() Date() Time() #23724]).
Env
-
The
JULIA_HOME
environment variable has been renamed toJULIA_BINDIR
andBase.JULIA_HOME
has been moved toSys.BINDIR
([rename JULIA_HOME? #20899]). -
EnvHash
has been renamed toEnvDict
([EnvHash should be immutable and be called EnvDict #24167]). -
whos
has been renamedvarinfo
, and now returns a markdown table instead of printing output (["whos" is a bad name for the functionality #12131]). -
The function
current_module
is deprecated and replaced with@__MODULE__
. This caused the deprecation of some reflection methods (such asmacroexpand
andisconst
), which now require a module argument. And it caused the bugfix of other default arguments to use the Main module (includingwhos
,which
) ([replace current_module() with @__MODULE__ #22064]). -
The operating system identification functions:
is_linux
,is_bsd
,is_apple
,is_unix
, andis_windows
, have been deprecated in favor ofSys.islinux
,Sys.isbsd
,Sys.isapple
,Sys.isunix
, andSys.iswindows
, respectively ([RFC: Deprecate is_<os> functions in favor of is<os> #22182]). -
The default
startup.jl
file on Windows has been removed. Now must explicitly include the full path if you need access to executables or libraries in theSys.BINDIR
directory, e.g.joinpath(Sys.BINDIR, "7z.exe")
for7z.exe
([Remove windows specific juliarc.jl #21540]). -
Constructors for
LibGit2.UserPasswordCredentials
andLibGit2.SSHCredentials
which take aprompt_if_incorrect
argument are deprecated. Instead, prompting behavior is controlled using theallow_prompt
keyword in theLibGit2.CredentialPayload
constructor ([Add settings to CredentialPayload #23690]). -
The timing functions
tic
,toc
, andtoq
are deprecated in favor of@time
and@elapsed
([Deprecate tic and toc #17046]). -
workspace
is discontinued, check out Revise.jl for an alternative workflow ([remove workspace #25046]).
Io
-
writecsv(io, a; opts...)
has been deprecated in favor ofwritedlm(io, a, ','; opts...)
([deprecate writecsv in favor of writedlm #23529]). -
readcsv(io[, T::Type]; opts...)
has been deprecated in favor ofreaddlm(io, ','[, T]; opts...)
([deprecate readcsv in favor of readdlm #23530]). -
read(io, type, dims)
is deprecated toread!(io, Array{type}(undef, dims))
([deprecateread(io, type, dims)
#21450]). -
read(::IO, ::Ref)
is now a method ofread!
, since it mutates itsRef
argument ([read(::IO, ::Ref)
should be a method ofread!
#21592]). -
nb_available
is nowbytesavailable
([Rename nb_available to bytesavailable #25634]). -
The forms of
read
,readstring
, andeachline
that accepted both aCmd
object and an input stream are deprecated. Use e.g.read(pipeline(stdin, cmd))
instead ([RFC: deprecate reading functions that accept both a cmd and stdin #22762]). -
The unexported type
AbstractIOBuffer
has been renamed toGenericIOBuffer
([Rename AbstractIOBuffer, it's not an abstract type #17360] [rename AbstractIOBuffer => GenericIOBuffer (close #17360) #22796]). -
IOBuffer(data::AbstractVector{UInt8}, read::Bool, write::Bool, maxsize::Integer)
,IOBuffer(read::Bool, write::Bool)
, andIOBuffer(maxsize::Integer)
are deprecated in favor of constructors taking keyword arguments ([add keyword arguments to IOBuffer's constructors #25872]). -
Display
has been renamed toAbstractDisplay
([rename Display -> AbstractDisplay #24831]). -
The function
showall
is deprecated. Showing entire values is the default, unless anIOContext
specifying:limit=>true
is in use ([RFC: deprecateshowall
#22847]). -
Calling
write
on non-isbits arrays is deprecated in favor of explicit loops orserialize
([makewrite(io, Any[...])
an error #6466]). -
@printf
and@sprintf
have been moved to thePrintf
standard library ([should we move printf code out of Base? #23929],[at-[s]printf to Printf stdlib #25056]). -
print_shortest
has been discontinued, but is still available in theBase.Grisu
submodule ([deprecate print_shortest? #25745]). -
The
remove_destination
keyword argument tocp
,mv
, and the unexportedcptree
has been renamed toforce
([mv: renameremove_destination
keyword toforce
#25979]). -
DevNull
,STDIN
,STDOUT
, andSTDERR
have been renamed todevnull
,stdin
,stdout
, andstderr
, respectively ([Capitalization ofDevNull
#25786]). -
showcompact(io, x...)
has been deprecated in favor ofshow(IOContext(io, :compact => true), x...)
([Deprecate showcompact() #26080]). Usesprint(show, x..., context=:compact => true)
instead ofsprint(showcompact, x...)
.
Lang
-
expand(ex)
andexpand(module, ex)
have been deprecated in favor ofMeta.lower(module, ex)
([replace current_module() with @__MODULE__ #22064], [deprecate expand(module, ex) to Meta.lower(module, ex) #24278]). -
Omitting spaces around the
?
and the:
tokens in a ternary expression has been deprecated. Ternaries must now include some amount of whitespace, e.g.x ? a : b
rather thanx?a:b
([Deprecate no space between expression and ? in ternaries #22523] and [Sanitize the ternary operator and question mark parsing situation (deprecations only) #22712]). -
?
can no longer be used as an identifier name ([Sanitize the ternary operator and question mark parsing situation (deprecations only) #22712]) -
Calling
nfields
on a type to find out how many fields its instances have is deprecated. Usefieldcount
instead. Usenfields
only to get the number of fields in a specific object ([RFC: some type reflection improvements #22350]). -
fieldnames
now operates only on types. To get the names of fields in an object, usefieldnames(typeof(x))
([RFC: some type reflection improvements #22350]). -
issubtype
has been deprecated in favor of<:
(which used to be an alias forissubtype
). -
Calling
union
with no arguments is deprecated; construct an empty set with an appropriate element type usingSet{T}()
instead ([deprecateunion()
#23144]). -
filter
andfilter!
on dictionaries now pass a singlekey=>value
pair to the argument function, instead of two arguments ([filter(f, ::Dict)
inconsistency #17886]). -
The tuple-of-types form of
cfunction
,cfunction(f, returntype, (types...))
, has been deprecated in favor of the tuple-type formcfunction(f, returntype, Tuple{types...})
([Add cfunction tuple of types deprecation #23066]). -
select
,select!
,selectperm
andselectperm!
have been renamed respectively topartialsort
,partialsort!
,partialsortperm
andpartialsortperm!
([Rename select* functions to partialsort* and various related fixes #23051]). -
The
Range
abstract type has been renamed toAbstractRange
([Rename Range to AbstractRange #23570]). -
map
on dictionaries previously operated onkey=>value
pairs. This behavior is deprecated, and in the futuremap
will operate only on values ([map for Dict #5794]). -
Automatically broadcasted
+
and-
forarray + scalar
,scalar - array
, and so-on have been deprecated due to inconsistency with linear algebra. Use.+
and.-
for these operations instead ([Deprecate broadcast behaviour of+
in favour of adding identity matrices #22880], [Deprecate+
/-
methods forarray+scalar
etc #22932]). -
contains(eq, itr, item)
is deprecated in favor ofany
with a predicate ([deprecatecontains(eq, itr, item)
#23716]). -
Methods of
findfirst
,findnext
,findlast
, andfindprev
that accept a value to search for are deprecated in favor of passing a predicate ([Inconsistent order of arguments in variants of 'find' #19186], [Unifying search & find functions #10593]). -
find
functions now operate only on booleans by default. To look for non-zeros, usex->x!=0
or!iszero
([Makefind
's default predicate beidentity
#23120]). -
bits
has been deprecated in favor ofbitstring
([deprecate bits to bitstring #24281], [renamebits
tobitstring
? #24263]). -
copy!
is deprecated forAbstractSet
andAbstractDict
, with the intention to re-enable it with a cleaner meaning in a future version ([deprecate copy! for sets and dicts (part of #24808) #24844]). -
copy!
(resp.unsafe_copy!
) is deprecated forAbstractArray
and is renamedcopyto!
(resp.unsafe_copyto!
); it will be re-introduced with a different meaning in a future version ([deprecate some copy! methods #24808]). -
trues(A::AbstractArray)
andfalses(A::AbstractArray)
are deprecated in favor oftrues(size(A))
andfalses(size(A))
respectively ([design of array constructors #24595]). -
The
Libdl
module has moved to theLibdl
standard library module ([moveLibdl
to stdlib #25459]). -
Associative
has been deprecated in favor ofAbstractDict
([RFC: RenameAssociative
toAbstractDict
#25012]). -
Void
has been renamed back toNothing
with an aliasCvoid
for use when calling C with a return type ofCvoid
or a return or argument type ofPtr{Cvoid}
([a more earnest attempt at renaming Void #25162]). -
Nullable{T}
has been deprecated and moved to the Nullables package ([Replace Nullable{T} with Union{Some{T}, Void} #23642]). UseUnion{T, Nothing}
instead, orUnion{Some{T}, Nothing}
ifnothing
is a possible value (i.e.Nothing <: T
).isnull(x)
can be replaced withx === nothing
andunsafe_get
/get
can be dropped or replaced withcoalesce
.NullException
has been removed. -
unshift!
andshift!
have been renamed topushfirst!
andpopfirst!
([Renameshift!
andunshift!
? #23902]) -
ipermute!
has been deprecated in favor ofinvpermute!
([deprecate ipermute! in favor of invpermute! #25168]). -
search
andrsearch
have been deprecated in favor offindfirst
/findnext
andfindlast
/findprev
respectively, in combination with curriedisequal
andin
predicates for some methods ([Clean up search and find API #24673] -
similar(::Associative)
has been deprecated in favor ofempty(::Associative)
, andsimilar(::Associative, ::Pair{K, V})
has been deprecated in favour ofempty(::Associative, K, V)
([Addempty
and changesimilar(::Associative)
#24390]). -
findin(a, b)
has been deprecated in favor offindall(in(b), a)
([Clean up search and find API #24673]). -
module_name
has been deprecated in favor of a new, generalnameof
function. Similarly, the unexportedBase.function_name
andBase.datatype_name
have been deprecated in favor ofnameof
methods ([Deprecate module_name in favor of nameof(::Module) #25622]). -
module_parent
,Base.datatype_module
, andBase.function_module
have been deprecated in favor ofparentmodule
([#TODO]). -
The
assert
function (and@assert
macro) have been documented that they are not guaranteed to run under various optimization levels and should therefore not be used to e.g. verify passwords. -
ObjectIdDict
has been deprecated in favor ofIdDict{Any,Any}
([RFC: IdDict replaces ObjectIdDict #25210]). -
gc
andgc_enable
have been deprecated in favor ofGC.gc
andGC.enable
([Move gc and gc_enable to their own module #25616]). -
Base.@gc_preserve
has been deprecated in favor ofGC.@preserve
([Move gc and gc_enable to their own module #25616]). -
scale!
has been deprecated in favor ofmul!
,lmul!
, andrmul!
([Deprecate scale! in favor of mul!, mul1!, and mul2! #25701], [Change mul1! and mul2! to rmul! and lmul! #25812]). -
The methods of
range
based on positional arguments have been deprecated in favor of keyword arguments ([Fold linspace into range, add keyword arguments, deprecate logspace #25896]). -
linspace
has been deprecated in favor ofrange
withstop
andlength
keyword arguments ([Fold linspace into range, add keyword arguments, deprecate logspace #25896]). -
wait
andfetch
onTask
now resemble the interface ofFuture
.
Linalg
-
LinAlg.fillslots!
has been renamedLinAlg.fillstored!
([LinAlg.fillslots! -> LinAlg.fillstored! #25030]). -
fill!(A::Diagonal, x)
andfill!(A::AbstractTriangular, x)
have been deprecated in favor ofBase.LinAlg.fillstored!(A, x)
([deprecate fill!(A::[Diagonal|AbstractTriangular], x) = fillslots!(A, x) methods #24413]). -
eye
has been deprecated in favor ofI
andMatrix
constructors. Please see the deprecation warnings for replacement details ([eye see deprecated methods #24438]). -
zeros(D::Diagonal[, opts...])
has been deprecated ([deprecate zeros(D::Diagonal[, opts...]) methods #24654]). -
sparse(s::UniformScaling, m::Integer)
has been deprecated in favor of the three-argument equivalentsparse(s::UniformScaling, m, n)
([deprecate sparse(s::UniformScaling, m::Integer) in favor of three-arg equivalent #24472]). -
The
cholfact
/cholfact!
methods that accepted anuplo
symbol have been deprecated in favor of usingHermitian
(orSymmetric
) views ([cholfact[!] does not respect the uplo character #22187], [deprecate cholfact[!](A, uplo) #22188]). -
The
thin
keyword argument for orthogonal decomposition methods has been deprecated in favor offull
, which has the opposite meaning:thin == true
if and only iffull == false
([deprecate orthogonal decomposition keyword "thin" to "full" #24279]). -
isposdef(A::AbstractMatrix, UL::Symbol)
andisposdef!(A::AbstractMatrix, UL::Symbol)
have been deprecated in favor ofisposdef(Hermitian(A, UL))
andisposdef!(Hermitian(A, UL))
respectively ([isposdef rewrite with help of cholfact #22245]). -
The
bkfact
/bkfact!
methods that accepteduplo
andissymmetric
symbols have been deprecated in favor of usingHermitian
(orSymmetric
) views ([Adjust signatures for bkfact to use Symmetric and Hermitian #22605]). -
Bidiagonal
constructors now use aSymbol
(:U
or:L
) for the upper/lower argument, instead of aBool
or aChar
([Use Symbol for uplo in Bidiagonal constructors #22703]). -
Bidiagonal
,Tridiagonal
andSymTridiagonal
constructors that automatically converted the input vectors to the same type are deprecated in favor of explicit conversion ([parametrize Bidiagonal on wrapped vector type #22925], [parametrize SymTridiagonal on the wrapped vector type #23035], [parametrize Tridiagonal on the wrapped vector type #23154]. -
Remaining vectorized methods over
SparseVector
s, particularlyfloor
,ceil
,trunc
,round
, and most common transcendental functions such asexp
,log
, andsin
variants, have been deprecated in favor of dot-syntax ([crush the vectorized method resistance #22961]). -
full
has been deprecated in favor of more specific, better defined alternatives. On structured matricesA
, consider insteadMatrix(A)
,Array(A)
,SparseMatrixCSC(A)
, orsparse(A)
. On sparse arraysS
, consider insteadVector(S)
,Matrix(S)
, orArray(S)
as appropriate. On factorizationsF
, consider insteadMatrix(F)
,Array(F)
,AbstractMatrix(F)
, orAbstractArray(F)
. On implicit orthogonal factorsQ
, consider insteadMatrix(Q)
orArray(Q)
; for implicit orthogonal factors that can be recovered in square or truncated form, see the deprecation message for square recovery instructions. OnSymmetric
,Hermitian
, orAbstractTriangular
matricesA
, consider insteadMatrix(S)
,Array(S)
,SparseMatrixCSC(S)
, orsparse(S)
. OnSymmetric
matricesA
particularly, consider insteadLinAlg.copytri!(copy(parent(A)), A.uplo)
. OnHermitian
matricesA
particularly, consider insteadLinAlg.copytri!(copy(parent(A)), A.uplo, true)
. OnUpperTriangular
matricesA
particularly, consider insteadtriu!(copy(parent(A)))
. OnLowerTriangular
matricesA
particularly, consider insteadtril!(copy(parent(A)))
([go gentle into that good night, full #24250]). -
speye
has been deprecated in favor ofI
,sparse
, andSparseMatrixCSC
constructor methods ([eye speye deprecated methods #24356]). -
ctranspose
andctranspose!
have been deprecated in favor ofadjoint
andadjoint!
, respectively ([Renamectranspose
toadjoint
#23235]). -
Base.SparseArrays.SpDiagIterator
has been removed ([diag of SparseMatrixCSC should always return SparseVector #23261]). -
diagm(v::AbstractVector, k::Integer=0)
has been deprecated in favor ofdiagm(k => v)
([rewrite diagm with Pair's #24047]). -
diagm(x::Number)
has been deprecated in favor offill(x, 1, 1)
([rewrite diagm with Pair's #24047]). -
diagm(A::SparseMatrixCSC)
has been deprecated in favor ofspdiagm(sparsevec(A))
([deprecate diagm(A::SparseMatrixCSC) in favor of spdiagm(sparsevec(A)) #23341]). -
diagm(A::BitMatrix)
has been deprecated, usediagm(0 => vec(A))
orBitMatrix(Diagonal(vec(A)))
instead ([deprecate diagm(A::BitMatrix) #23373], [rewrite diagm with Pair's #24047]). -
GMP.gmp_version()
,GMP.GMP_VERSION
,GMP.gmp_bits_per_limb()
, andGMP.GMP_BITS_PER_LIBM
have been renamed toGMP.version()
,GMP.VERSION
,GMP.bits_per_libm()
, andGMP.BITS_PER_LIBM
, respectively. Similarly,MPFR.get_version()
, has been renamed toMPFR.version()
([Unify the method name to get library versions #23323]). Also,LinAlg.LAPACK.laver()
has been renamed toLinAlg.LAPACK.version()
and now returns aVersionNumber
. -
spdiagm(x::AbstractVector)
has been deprecated in favor ofsparse(Diagonal(x))
alternativelyspdiagm(0 => x)
([Rewrite spdiagm with pairs #23757]). -
spdiagm(x::AbstractVector, d::Integer)
andspdiagm(x::Tuple{<:AbstractVector}, d::Tuple{<:Integer})
have been deprecated in favor ofspdiagm(d => x)
andspdiagm(d[1] => x[1], d[2] => x[2], ...)
respectively. The newspdiagm
implementation now always returns a square matrix ([Rewrite spdiagm with pairs #23757]). -
spones(A::AbstractSparseArray)
has been deprecated in favor ofLinAlg.fillstored!(copy(A), 1)
([deprecate spones #25037]). -
The functions
eigs
andsvds
have been moved to theIterativeEigensolvers
standard library module ([RFC: Move iterative eigensolvers to the stdlib #24714]). -
Sparse array functionality has moved to the
SparseArrays
standard library module ([move SparseArrays to stdlib #25249]). -
Linear algebra functionality, and specifically the
LinAlg
module has moved to theLinearAlgebra
standard library module ([Base.LinAlg to LinearAlgebra stdlib #25571]).
Math
-
The
Operators
module is deprecated. Instead, import required operators explicitly fromBase
, e.g.import Base: +, -, *, /
([remove Operators module #22251]). -
Bindings to the FFTW library have been removed from Base. The DFT framework for building FFT implementations is now in AbstractFFTs.jl, the bindings to the FFTW library are in FFTW.jl, and the Base signal processing functions which used FFTs are now in DSP.jl ([Remove the FFTW bindings from Base #21956]).
-
The
corrected
positional argument tocov
has been deprecated in favor of a keyword argument with the same name ([Makecov
's corrected argument a keyword argument and cleanup docstrings forcov
andcor
#21709]). -
InexactError
,DomainError
, andOverflowError
now take arguments.InexactError(func::Symbol, type, -3)
now prints as "ERROR: InexactError: func(type, -3)",DomainError(val, [msg])
prints as "ERROR: DomainError with val:\nmsg", andOverflowError(msg)
prints as "ERROR: OverflowError: msg". ([Make InexactError more informative #20005], [Make DomainError more informative #22751], [Make OverflowError more informative #22761]) -
sqrtm
has been deprecated in favor ofsqrt
([deprecate sqrtm in favor of sqrt #23504]). -
expm
has been deprecated in favor ofexp
([deprecate expm in favor of exp #23233]). -
logm
has been deprecated in favor oflog
([deprecate logm in favor of log #23505]). -
ℯ
(written as\mscre<TAB>
or\euler<TAB>
) is now the only (by default) exported name for Euler's number, and the type has changed fromIrrational{:e}
toIrrational{:ℯ}
([Move irrational constants to its own module #23427]). -
The mathematical constants
π
,pi
,ℯ
,e
,γ
,eulergamma
,catalan
,φ
andgolden
have been moved fromBase
to a new module;Base.MathConstants
. Onlyπ
,pi
andℯ
are now exported by default fromBase
([Move irrational constants to its own module #23427]). -
eu
(previously an alias forℯ
) has been deprecated in favor ofℯ
(orMathConstants.e
) ([Move irrational constants to its own module #23427]). -
gradient
is deprecated and will be removed in the next release ([deprecate/remove gradient from base #23816]). -
cumsum
,cumprod
,accumulate
, their mutating versions, anddiff
all now require adim
argument instead of defaulting to using the first dimension unless there is only one dimension ([Deprecate cumsum, cumprod, cumsum_kbn, and accumulate when dim isn't specified #24684], [Deprecate diff(::AbstractMatrix), require a dim argument #25457]). -
The
sum_kbn
andcumsum_kbn
functions have been moved to the KahanSummation package ([Deprecate (cum)sum_kbn #24869]). -
isnumber
has been renamed toisnumeric
([Move Unicode-related functions to new Unicode stdlib package #25021]). -
The aliases
Complex32
,Complex64
andComplex128
have been deprecated in favor ofComplexF16
,ComplexF32
andComplexF64
respectively ([rename Complex{32,64,128} to ComplexF{16,32,64} #24647]). -
LinSpace
has been renamed toLinRange
([Fold linspace into range, add keyword arguments, deprecate logspace #25896]). -
logspace
has been deprecated to its definition ([Fold linspace into range, add keyword arguments, deprecate logspace #25896]). -
The fallback method
^(x, p::Integer)
is deprecated. If your type relied on this definition, add a method such as^(x::MyType, p::Integer) = Base.power_by_squaring(x, p)
([Deprecate^(x, p::Integer)
#23332]).
Random
-
The method
srand(rng, filename, n=4)
has been deprecated ([deprecate srand(rng, filename::AbstractString, n=4) #21359]). -
The module
Random.dSFMT
is renamedRandom.DSFMT
([rename module Random.dSFMT -> Random.DSFMT #25567]). -
Random.RandomDevice(unlimited::Bool)
(on non-Windows systems) is deprecated in favor ofRandom.RandomDevice(; unlimited=unlimited)
([change RandomDevice(unlimited::Bool) to RandomDevice(; unlimited::Bool) #25668]). -
rand(t::Tuple{Vararg{Int}})
is deprecated in favor ofrand(Float64, t)
orrand(t...)
;rand(::Tuple)
will have another meaning in the future ([deprecate rand(::Tuple) #25429], [add rand(::Tuple) #25278]).
String
-
The method
replace(s::AbstractString, pat, r, [count])
is deprecated in favor ofreplace(s::AbstractString, pat => r; [count])
([deprecate replace(s::String, pat, r, n) to replace(s, pat=>r, count=n) #25165]). Moreover,count
cannot be negative anymore (usetypemax(Int)
instead ([makereplace
with count=0 a no-op #22325]). -
skipchars(io::IO, predicate; linecomment=nothing)
is deprecated in favor ofskipchars(predicate, io::IO; linecomment=nothing)
([change skipchars(io, predicate) to skipchars(predicate, io) #25667]). -
The method
String(io::IOBuffer)
is deprecated toString(take!(copy(io)))
([deprecateString(::IOBuffer)
#21438]). -
The function
readstring
is deprecated in favor ofread(io, String)
([deprecatereadstring
toread(io, String)
#22793]) -
Base.cpad
has been removed; use an appropriate combination ofrpad
andlpad
instead ([deprecate cpad #23187]). -
num2hex
andhex2num
have been deprecated in favor ofreinterpret
combined withparse
/hex
([Deprecate hex2num and num2hex #22088]). -
is_assigned_char
andnormalize_string
have been renamed toisassigned
andnormalize
, and moved to the newUnicode
standard library module.graphemes
has also been moved to that module ([Move Unicode-related functions to new Unicode stdlib package #25021]). -
ismatch(regex, str)
has been deprecated in favor ofcontains(str, regex)
([Clean up search and find API #24673]). -
matchall
has been deprecated in favor ofcollect(m.match for m in eachmatch(r, s))
([Deprecate matchall #26071]). -
isupper
,islower
,ucfirst
andlcfirst
have been deprecated in favor ofisuppercase
,islowercase
,uppercasefirst
andlowercasefirst
, respectively ([Rename isupper, islower, ucfirst and lcfirst #26442]).
Type
-
The keyword
immutable
is fully deprecated tostruct
, andtype
is fully deprecated tomutable struct
([crazy idea: change thetype
keyword #19157], [useabstract|primitive type
,struct
,mutable struct
for type definitions #20418]). -
isleaftype
is deprecated in favor of the simpler predicatesisconcretetype
andisdispatchtuple
. Concrete types are those that might equaltypeof(x)
for somex
;isleaftype
included some types for which this is not true. Those are now categorized more precisely as "dispatch tuple types" and "!has_free_typevars" (not exported). ([Renameisleaftype
#17086], [killisleaftype
#25496])
========================================
I almost think it would be a good idea if each item was tagged permanently, to allow for searching/selection, and so on...