-
-
Notifications
You must be signed in to change notification settings - Fork 5.7k
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: Renameindicestoaxes#25057]). -
Uninitialized
Arrayconstructors 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
Intbefore indexing if you intend to access index1fortrueand0forfalse. -
slicedim(A, d, i)has been deprecated in favor ofcopy(selectdim(A, d, i)). The newselectdimfunction now always returns a view intoA; in many cases thecopyis not necessary. Previously,slicedimon a vectorVover dimensiond=1and scalar indexiwould return the just selected element (unlessVwas aBitVector). This has now been made consistent:selectdimnow 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
RowVectorconstructors 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))forvan 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
reinterpretto yieldArrays of different type than the underlying storage has been removed. Thereinterpretfunction is still available, but now returns aReinterpretArray. The three argument form ofreinterpretthat implicitly reshapes has been deprecated ([Implement ReinterpretArray #23750]). -
Base.parentindexesandSharedArrays.localindexeshave been renamed toparentindicesandlocalindices, respectively. Similarly, theindexesfield in theSubArraytype has been renamed toindiceswithout deprecation ([Replace all use of 'indexes' with 'indices' #25088]). -
CartesianRangehas been renamedCartesianIndices([Make CartesianRange an AbstractArray #24715]). -
sub2indandind2subare deprecated in favor of usingCartesianIndicesandLinearIndices([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.Qinstead 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 ofAbstractArraythat implement the newly introduced strided array interface should define their ownstridesmethod ([Deprecate generic stride implementation (#17812), allow AbstractArrays to use BLAS/LAPACK routines (#25247) #25321]). -
endof(a)has been renamed tolastindex(a), and theendkeyword 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 andendappears at dimensiond) ([Add field docs for Diffopts #23554], [Simplify A[1, end] lowering with lastindex(A, n) #25763]).
Date
-
Vectorized
DateTime,Date, andformatmethods have been deprecated in favor of dot-syntax ([deprecate vectorized methods hiding in Dates #23207]). -
a:bis deprecated for constructing aStepRangewhenaandbhave 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_HOMEenvironment variable has been renamed toJULIA_BINDIRandBase.JULIA_HOMEhas been moved toSys.BINDIR([rename JULIA_HOME? #20899]). -
EnvHashhas been renamed toEnvDict([EnvHash should be immutable and be called EnvDict #24167]). -
whoshas been renamedvarinfo, and now returns a markdown table instead of printing output (["whos" is a bad name for the functionality #12131]). -
The function
current_moduleis deprecated and replaced with@__MODULE__. This caused the deprecation of some reflection methods (such asmacroexpandandisconst), 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.jlfile on Windows has been removed. Now must explicitly include the full path if you need access to executables or libraries in theSys.BINDIRdirectory, e.g.joinpath(Sys.BINDIR, "7z.exe")for7z.exe([Remove windows specific juliarc.jl #21540]). -
Constructors for
LibGit2.UserPasswordCredentialsandLibGit2.SSHCredentialswhich take aprompt_if_incorrectargument are deprecated. Instead, prompting behavior is controlled using theallow_promptkeyword in theLibGit2.CredentialPayloadconstructor ([Add settings to CredentialPayload #23690]). -
The timing functions
tic,toc, andtoqare deprecated in favor of@timeand@elapsed([Deprecate tic and toc #17046]). -
workspaceis 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 itsRefargument ([read(::IO, ::Ref)should be a method ofread!#21592]). -
nb_availableis nowbytesavailable([Rename nb_available to bytesavailable #25634]). -
The forms of
read,readstring, andeachlinethat accepted both aCmdobject 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
AbstractIOBufferhas 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]). -
Displayhas been renamed toAbstractDisplay([rename Display -> AbstractDisplay #24831]). -
The function
showallis deprecated. Showing entire values is the default, unless anIOContextspecifying:limit=>trueis in use ([RFC: deprecateshowall#22847]). -
Calling
writeon non-isbits arrays is deprecated in favor of explicit loops orserialize([makewrite(io, Any[...])an error #6466]). -
@printfand@sprintfhave been moved to thePrintfstandard library ([should we move printf code out of Base? #23929],[at-[s]printf to Printf stdlib #25056]). -
print_shortesthas been discontinued, but is still available in theBase.Grisusubmodule ([deprecate print_shortest? #25745]). -
The
remove_destinationkeyword argument tocp,mv, and the unexportedcptreehas been renamed toforce([mv: renameremove_destinationkeyword toforce#25979]). -
DevNull,STDIN,STDOUT, andSTDERRhave 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 : brather 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
nfieldson a type to find out how many fields its instances have is deprecated. Usefieldcountinstead. Usenfieldsonly to get the number of fields in a specific object ([RFC: some type reflection improvements #22350]). -
fieldnamesnow operates only on types. To get the names of fields in an object, usefieldnames(typeof(x))([RFC: some type reflection improvements #22350]). -
issubtypehas been deprecated in favor of<:(which used to be an alias forissubtype). -
Calling
unionwith no arguments is deprecated; construct an empty set with an appropriate element type usingSet{T}()instead ([deprecateunion()#23144]). -
filterandfilter!on dictionaries now pass a singlekey=>valuepair 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!,selectpermandselectperm!have been renamed respectively topartialsort,partialsort!,partialsortpermandpartialsortperm!([Rename select* functions to partialsort* and various related fixes #23051]). -
The
Rangeabstract type has been renamed toAbstractRange([Rename Range to AbstractRange #23570]). -
mapon dictionaries previously operated onkey=>valuepairs. This behavior is deprecated, and in the futuremapwill 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 ([#22880], [Deprecate+/-methods forarray+scalaretc #22932]). -
contains(eq, itr, item)is deprecated in favor ofanywith a predicate ([deprecatecontains(eq, itr, item)#23716]). -
Methods of
findfirst,findnext,findlast, andfindprevthat 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]). -
findfunctions now operate only on booleans by default. To look for non-zeros, usex->x!=0or!iszero([Makefind's default predicate beidentity#23120]). -
bitshas been deprecated in favor ofbitstring([deprecate bits to bitstring #24281], [renamebitstobitstring? #24263]). -
copy!is deprecated forAbstractSetandAbstractDict, 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 forAbstractArrayand 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
Libdlmodule has moved to theLibdlstandard library module ([moveLibdlto stdlib #25459]). -
Associativehas been deprecated in favor ofAbstractDict([RFC: RenameAssociativetoAbstractDict#25012]). -
Voidhas been renamed back toNothingwith an aliasCvoidfor use when calling C with a return type ofCvoidor 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}ifnothingis a possible value (i.e.Nothing <: T).isnull(x)can be replaced withx === nothingandunsafe_get/getcan be dropped or replaced withcoalesce.NullExceptionhas 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]). -
searchandrsearchhave been deprecated in favor offindfirst/findnextandfindlast/findprevrespectively, in combination with curriedisequalandinpredicates 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)([Addemptyand changesimilar(::Associative)#24390]). -
findin(a, b)has been deprecated in favor offindall(in(b), a)([Clean up search and find API #24673]). -
module_namehas been deprecated in favor of a new, generalnameoffunction. Similarly, the unexportedBase.function_nameandBase.datatype_namehave been deprecated in favor ofnameofmethods ([Deprecate module_name in favor of nameof(::Module) #25622]). -
module_parent,Base.datatype_module, andBase.function_modulehave been deprecated in favor ofparentmodule([#TODO]). -
The
assertfunction (and@assertmacro) 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. -
ObjectIdDicthas been deprecated in favor ofIdDict{Any,Any}([RFC: IdDict replaces ObjectIdDict #25210]). -
gcandgc_enablehave been deprecated in favor ofGC.gcandGC.enable([Move gc and gc_enable to their own module #25616]). -
Base.@gc_preservehas 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
rangebased on positional arguments have been deprecated in favor of keyword arguments ([Fold linspace into range, add keyword arguments, deprecate logspace #25896]). -
linspacehas been deprecated in favor ofrangewithstopandlengthkeyword arguments ([Fold linspace into range, add keyword arguments, deprecate logspace #25896]). -
waitandfetchonTasknow 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]). -
eyehas been deprecated in favor ofIandMatrixconstructors. 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 anuplosymbol have been deprecated in favor of usingHermitian(orSymmetric) views ([cholfact[!] does not respect the uplo character #22187], [deprecate cholfact[!](A, uplo) #22188]). -
The
thinkeyword argument for orthogonal decomposition methods has been deprecated in favor offull, which has the opposite meaning:thin == trueif 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 accepteduploandissymmetricsymbols have been deprecated in favor of usingHermitian(orSymmetric) views ([Adjust signatures for bkfact to use Symmetric and Hermitian #22605]). -
Bidiagonalconstructors now use aSymbol(:Uor:L) for the upper/lower argument, instead of aBoolor aChar([Use Symbol for uplo in Bidiagonal constructors #22703]). -
Bidiagonal,TridiagonalandSymTridiagonalconstructors 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
SparseVectors, particularlyfloor,ceil,trunc,round, and most common transcendental functions such asexp,log, andsinvariants, have been deprecated in favor of dot-syntax ([crush the vectorized method resistance #22961]). -
fullhas 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, orAbstractTriangularmatricesA, consider insteadMatrix(S),Array(S),SparseMatrixCSC(S), orsparse(S). OnSymmetricmatricesAparticularly, consider insteadLinAlg.copytri!(copy(parent(A)), A.uplo). OnHermitianmatricesAparticularly, consider insteadLinAlg.copytri!(copy(parent(A)), A.uplo, true). OnUpperTriangularmatricesAparticularly, consider insteadtriu!(copy(parent(A))). OnLowerTriangularmatricesAparticularly, consider insteadtril!(copy(parent(A)))([go gentle into that good night, full #24250]). -
speyehas been deprecated in favor ofI,sparse, andSparseMatrixCSCconstructor methods ([eye speye deprecated methods #24356]). -
ctransposeandctranspose!have been deprecated in favor ofadjointandadjoint!, respectively ([Renamectransposetoadjoint#23235]). -
Base.SparseArrays.SpDiagIteratorhas 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_LIBMhave 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 newspdiagmimplementation 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
eigsandsvdshave been moved to theIterativeEigensolversstandard library module ([RFC: Move iterative eigensolvers to the stdlib #24714]). -
Sparse array functionality has moved to the
SparseArraysstandard library module ([move SparseArrays to stdlib #25249]). -
Linear algebra functionality, and specifically the
LinAlgmodule has moved to theLinearAlgebrastandard library module ([Base.LinAlg to LinearAlgebra stdlib #25571]).
Math
-
The
Operatorsmodule 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
correctedpositional argument tocovhas been deprecated in favor of a keyword argument with the same name ([Makecov's corrected argument a keyword argument and cleanup docstrings forcovandcor#21709]). -
InexactError,DomainError, andOverflowErrornow 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]) -
sqrtmhas been deprecated in favor ofsqrt([deprecate sqrtm in favor of sqrt #23504]). -
expmhas been deprecated in favor ofexp([deprecate expm in favor of exp #23233]). -
logmhas 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,φandgoldenhave been moved fromBaseto a new module;Base.MathConstants. Onlyπ,piandℯ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]). -
gradientis deprecated and will be removed in the next release ([deprecate/remove gradient from base #23816]). -
cumsum,cumprod,accumulate, their mutating versions, anddiffall now require adimargument 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_kbnandcumsum_kbnfunctions have been moved to the KahanSummation package ([Deprecate (cum)sum_kbn #24869]). -
isnumberhas been renamed toisnumeric([Move Unicode-related functions to new Unicode stdlib package #25021]). -
The aliases
Complex32,Complex64andComplex128have been deprecated in favor ofComplexF16,ComplexF32andComplexF64respectively ([rename Complex{32,64,128} to ComplexF{16,32,64} #24647]). -
LinSpacehas been renamed toLinRange([Fold linspace into range, add keyword arguments, deprecate logspace #25896]). -
logspacehas 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.dSFMTis 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,countcannot be negative anymore (usetypemax(Int)instead ([makereplacewith 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
readstringis deprecated in favor ofread(io, String)([deprecatereadstringtoread(io, String)#22793]) -
Base.cpadhas been removed; use an appropriate combination ofrpadandlpadinstead ([deprecate cpad #23187]). -
num2hexandhex2numhave been deprecated in favor ofreinterpretcombined withparse/hex([Deprecate hex2num and num2hex #22088]). -
is_assigned_charandnormalize_stringhave been renamed toisassignedandnormalize, and moved to the newUnicodestandard library module.graphemeshas 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]). -
matchallhas been deprecated in favor ofcollect(m.match for m in eachmatch(r, s))([Deprecate matchall #26071]). -
isupper,islower,ucfirstandlcfirsthave been deprecated in favor ofisuppercase,islowercase,uppercasefirstandlowercasefirst, respectively ([Rename isupper, islower, ucfirst and lcfirst #26442]).
Type
-
The keyword
immutableis fully deprecated tostruct, andtypeis fully deprecated tomutable struct([crazy idea: change thetypekeyword #19157], [useabstract|primitive type,struct,mutable structfor type definitions #20418]). -
isleaftypeis deprecated in favor of the simpler predicatesisconcretetypeandisdispatchtuple. Concrete types are those that might equaltypeof(x)for somex;isleaftypeincluded 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...