Skip to content

Commit cf729a1

Browse files
committed
update stdlib deprecations to be more user friendly
- New `deprecate_stdlib` macro that adds user friendly deprecation for bindings that have been moved to the stdlib, but are still in the sysimage. - Simplify `deprecate_moved` macro. - add deprecation for BLAS submodule Also-by: Jameson Nash <vtjnash@gmail.com>
1 parent 18be1f2 commit cf729a1

2 files changed

Lines changed: 290 additions & 285 deletions

File tree

base/deprecated.jl

Lines changed: 19 additions & 285 deletions
Original file line numberDiff line numberDiff line change
@@ -131,22 +131,29 @@ macro deprecate_binding(old, new, export_old=true, dep_message=nothing)
131131
Expr(:call, :deprecate, __module__, Expr(:quote, old)))
132132
end
133133

134-
macro deprecate_moved(old, new, export_old=true, default_package=false)
134+
macro deprecate_stdlib(old, mod, export_old=true)
135+
dep_message = """: it has been moved to the standard library package `$mod`.
136+
Add a `using $mod` to your imports."""
137+
new = GlobalRef(Base.root_module(Base, mod), old)
138+
return Expr(:toplevel,
139+
export_old ? Expr(:export, esc(old)) : nothing,
140+
Expr(:const, Expr(:(=), esc(Symbol(string("_dep_message_",old))), esc(dep_message))),
141+
Expr(:const, Expr(:(=), esc(old), esc(new))),
142+
Expr(:call, :deprecate, __module__, Expr(:quote, old)))
143+
end
144+
145+
macro deprecate_moved(old, new, export_old=true)
135146
eold = esc(old)
147+
emsg = string(old, " has been moved to the package ", new, ".jl.\n",
148+
"Run `Pkg.add(\"", new, "\")` to install it, restart Julia,\n",
149+
"and then run `using ", new, "` to load it.")
136150
return Expr(:toplevel,
137-
default_package ? :(function $eold(args...; kwargs...)
138-
error($eold, " has been moved to the standard library package ", $new, ".\n",
139-
"Restart Julia and then run `using ", $new, "` to load it.")
140-
end) :
141-
:(function $eold(args...; kwargs...)
142-
error($eold, " has been moved to the package ", $new, ".jl.\n",
143-
"Run `Pkg.add(\"", $new, "\")` to install it, restart Julia,\n",
144-
"and then run `using ", $new, "` to load it.")
145-
end),
146-
export_old ? Expr(:export, eold) : nothing,
147-
Expr(:call, :deprecate, __module__, Expr(:quote, old), 2))
151+
:($eold(args...; kwargs...) = error($emsg)),
152+
export_old ? Expr(:export, eold) : nothing,
153+
Expr(:call, :deprecate, __module__, Expr(:quote, old), 2))
148154
end
149155

156+
150157
# BEGIN 0.6 deprecations
151158

152159
# removing the .op deprecations breaks a few things. TODO: fix
@@ -302,75 +309,6 @@ deprecate(Base, :DSP, 2)
302309
using .DSP
303310
export conv, conv2, deconv, filt, filt!, xcorr
304311

305-
@deprecate_moved SharedArray "SharedArrays" true true
306-
307-
@eval @deprecate_moved $(Symbol("@profile")) "Profile" true true
308-
309-
@deprecate_moved readdlm "DelimitedFiles" true true
310-
@deprecate_moved writedlm "DelimitedFiles" true true
311-
@deprecate_moved readcsv "DelimitedFiles" true true
312-
@deprecate_moved writecsv "DelimitedFiles" true true
313-
314-
@deprecate_moved base64encode "Base64" true true
315-
@deprecate_moved base64decode "Base64" true true
316-
@deprecate_moved Base64EncodePipe "Base64" true true
317-
@deprecate_moved Base64DecodePipe "Base64" true true
318-
319-
@deprecate_moved poll_fd "FileWatching" true true
320-
@deprecate_moved poll_file "FileWatching" true true
321-
@deprecate_moved PollingFileWatcher "FileWatching" true true
322-
@deprecate_moved watch_file "FileWatching" true true
323-
@deprecate_moved FileMonitor "FileWatching" true true
324-
325-
@eval @deprecate_moved $(Symbol("@spawn")) "Distributed" true true
326-
@eval @deprecate_moved $(Symbol("@spawnat")) "Distributed" true true
327-
@eval @deprecate_moved $(Symbol("@fetch")) "Distributed" true true
328-
@eval @deprecate_moved $(Symbol("@fetchfrom")) "Distributed" true true
329-
@eval @deprecate_moved $(Symbol("@everywhere")) "Distributed" true true
330-
@eval @deprecate_moved $(Symbol("@parallel")) "Distributed" true true
331-
332-
@deprecate_moved addprocs "Distributed" true true
333-
@deprecate_moved CachingPool "Distributed" true true
334-
@deprecate_moved clear! "Distributed" true true
335-
@deprecate_moved ClusterManager "Distributed" true true
336-
@deprecate_moved default_worker_pool "Distributed" true true
337-
@deprecate_moved init_worker "Distributed" true true
338-
@deprecate_moved interrupt "Distributed" true true
339-
@deprecate_moved launch "Distributed" true true
340-
@deprecate_moved manage "Distributed" true true
341-
@deprecate_moved myid "Distributed" true true
342-
@deprecate_moved nprocs "Distributed" true true
343-
@deprecate_moved nworkers "Distributed" true true
344-
@deprecate_moved pmap "Distributed" true true
345-
@deprecate_moved procs "Distributed" true true
346-
@deprecate_moved remote "Distributed" true true
347-
@deprecate_moved remotecall "Distributed" true true
348-
@deprecate_moved remotecall_fetch "Distributed" true true
349-
@deprecate_moved remotecall_wait "Distributed" true true
350-
@deprecate_moved remote_do "Distributed" true true
351-
@deprecate_moved rmprocs "Distributed" true true
352-
@deprecate_moved workers "Distributed" true true
353-
@deprecate_moved WorkerPool "Distributed" true true
354-
@deprecate_moved RemoteChannel "Distributed" true true
355-
@deprecate_moved Future "Distributed" true true
356-
@deprecate_moved WorkerConfig "Distributed" true true
357-
@deprecate_moved RemoteException "Distributed" true true
358-
@deprecate_moved ProcessExitedException "Distributed" true true
359-
360-
361-
@deprecate_moved crc32c "CRC32c" true true
362-
363-
@deprecate_moved DateTime "Dates" true true
364-
@deprecate_moved DateFormat "Dates" true true
365-
@eval @deprecate_moved $(Symbol("@dateformat_str")) "Dates" true true
366-
@deprecate_moved now "Dates" true true
367-
368-
@deprecate_moved eigs "IterativeEigensolvers" true true
369-
@deprecate_moved svds "IterativeEigensolvers" true true
370-
371-
@eval @deprecate_moved $(Symbol("@printf")) "Printf" true true
372-
@eval @deprecate_moved $(Symbol("@sprintf")) "Printf" true true
373-
374312
# PR #21709
375313
@deprecate cov(x::AbstractVector, corrected::Bool) cov(x, corrected=corrected)
376314
@deprecate cov(x::AbstractMatrix, vardim::Int, corrected::Bool) cov(x, vardim, corrected=corrected)
@@ -962,33 +900,6 @@ end
962900
# issue #24822
963901
@deprecate_binding Display AbstractDisplay
964902

965-
# PR #24874
966-
@deprecate_moved rand! "Random" true true
967-
@deprecate_moved srand "Random" true true
968-
@deprecate_moved AbstractRNG "Random" true true
969-
@deprecate_moved randcycle "Random" true true
970-
@deprecate_moved randcycle! "Random" true true
971-
@deprecate_moved randperm "Random" true true
972-
@deprecate_moved randperm! "Random" true true
973-
@deprecate_moved shuffle "Random" true true
974-
@deprecate_moved shuffle! "Random" true true
975-
@deprecate_moved randsubseq "Random" true true
976-
@deprecate_moved randsubseq! "Random" true true
977-
@deprecate_moved randstring "Random" true true
978-
@deprecate_moved MersenneTwister "Random" true true
979-
@deprecate_moved RandomDevice "Random" true true
980-
@deprecate_moved randn! "Random" true true
981-
@deprecate_moved randexp "Random" true true
982-
@deprecate_moved randexp! "Random" true true
983-
@deprecate_moved bitrand "Random" true true
984-
@deprecate_moved randjump "Random" true true
985-
@deprecate_moved GLOBAL_RNG "Random" false true
986-
987-
@deprecate_moved serialize "Serialization" true true
988-
@deprecate_moved deserialize "Serialization" true true
989-
@deprecate_moved AbstractSerializer "Serialization" true true
990-
@deprecate_moved SerializationState "Serialization" true true
991-
992903
# 24595
993904
@deprecate falses(A::AbstractArray) falses(size(A))
994905
@deprecate trues(A::AbstractArray) trues(size(A))
@@ -1238,183 +1149,6 @@ end
12381149
@deprecate_moved sum_kbn "KahanSummation"
12391150
@deprecate_moved cumsum_kbn "KahanSummation"
12401151

1241-
# PR #25249: SparseArrays to stdlib
1242-
## the Base.SparseArrays module itself and exported types are deprecated in base/sysimg.jl
1243-
## functions that were re-exported from Base
1244-
@deprecate_moved nonzeros "SparseArrays" true true
1245-
@deprecate_moved permute "SparseArrays" true true
1246-
@deprecate_moved blkdiag "SparseArrays" true true
1247-
@deprecate_moved dropzeros "SparseArrays" true true
1248-
@deprecate_moved dropzeros! "SparseArrays" true true
1249-
@deprecate_moved issparse "SparseArrays" true true
1250-
@deprecate_moved sparse "SparseArrays" true true
1251-
@deprecate_moved sparsevec "SparseArrays" true true
1252-
@deprecate_moved spdiagm "SparseArrays" true true
1253-
@deprecate_moved sprand "SparseArrays" true true
1254-
@deprecate_moved sprandn "SparseArrays" true true
1255-
@deprecate_moved spzeros "SparseArrays" true true
1256-
@deprecate_moved rowvals "SparseArrays" true true
1257-
@deprecate_moved nzrange "SparseArrays" true true
1258-
@deprecate_moved nnz "SparseArrays" true true
1259-
@deprecate_moved findnz "SparseArrays" true true
1260-
## functions that were exported from Base.SparseArrays but not from Base
1261-
@deprecate_moved droptol! "SparseArrays" false true
1262-
## deprecated functions that are moved to stdlib/SparseArrays/src/deprecated.jl
1263-
@deprecate_moved spones "SparseArrays" true true
1264-
@deprecate_moved speye "SparseArrays" true true
1265-
1266-
# PR #25571: LinearAlgebra to stdlib
1267-
## the LinearAlgebra module itself is deprecated base/sysimg.jl
1268-
1269-
## functions that were re-exported from Base
1270-
@deprecate_moved bkfact! "LinearAlgebra" true true
1271-
@deprecate_moved bkfact "LinearAlgebra" true true
1272-
@deprecate_moved chol "LinearAlgebra" true true
1273-
@deprecate_moved cholfact! "LinearAlgebra" true true
1274-
@deprecate_moved cholfact "LinearAlgebra" true true
1275-
@deprecate_moved cond "LinearAlgebra" true true
1276-
@deprecate_moved condskeel "LinearAlgebra" true true
1277-
@deprecate_moved cross "LinearAlgebra" true true
1278-
@deprecate_moved adjoint! "LinearAlgebra" true true
1279-
# @deprecate_moved adjoint "LinearAlgebra" true true
1280-
@deprecate_moved det "LinearAlgebra" true true
1281-
@deprecate_moved diag "LinearAlgebra" true true
1282-
@deprecate_moved diagind "LinearAlgebra" true true
1283-
@deprecate_moved diagm "LinearAlgebra" true true
1284-
@deprecate_moved diff "LinearAlgebra" true true
1285-
@deprecate_moved dot "LinearAlgebra" true true
1286-
@deprecate_moved eig "LinearAlgebra" true true
1287-
@deprecate_moved eigfact! "LinearAlgebra" true true
1288-
@deprecate_moved eigfact "LinearAlgebra" true true
1289-
@deprecate_moved eigmax "LinearAlgebra" true true
1290-
@deprecate_moved eigmin "LinearAlgebra" true true
1291-
@deprecate_moved eigvals "LinearAlgebra" true true
1292-
@deprecate_moved eigvals! "LinearAlgebra" true true
1293-
@deprecate_moved eigvecs "LinearAlgebra" true true
1294-
@deprecate_moved factorize "LinearAlgebra" true true
1295-
@deprecate_moved givens "LinearAlgebra" true true
1296-
@deprecate_moved hessfact! "LinearAlgebra" true true
1297-
@deprecate_moved hessfact "LinearAlgebra" true true
1298-
@deprecate_moved isdiag "LinearAlgebra" true true
1299-
@deprecate_moved ishermitian "LinearAlgebra" true true
1300-
@deprecate_moved isposdef! "LinearAlgebra" true true
1301-
@deprecate_moved isposdef "LinearAlgebra" true true
1302-
@deprecate_moved issymmetric "LinearAlgebra" true true
1303-
@deprecate_moved istril "LinearAlgebra" true true
1304-
@deprecate_moved istriu "LinearAlgebra" true true
1305-
# @deprecate_moved kron "LinearAlgebra" true true
1306-
@deprecate_moved ldltfact "LinearAlgebra" true true
1307-
@deprecate_moved ldltfact! "LinearAlgebra" true true
1308-
@deprecate_moved linreg "LinearAlgebra" true true
1309-
@deprecate_moved logabsdet "LinearAlgebra" true true
1310-
@deprecate_moved logdet "LinearAlgebra" true true
1311-
@deprecate_moved lu "LinearAlgebra" true true
1312-
@deprecate_moved lufact! "LinearAlgebra" true true
1313-
@deprecate_moved lufact "LinearAlgebra" true true
1314-
@deprecate_moved lyap "LinearAlgebra" true true
1315-
@deprecate_moved norm "LinearAlgebra" true true
1316-
@deprecate_moved normalize "LinearAlgebra" true true
1317-
@deprecate_moved normalize! "LinearAlgebra" true true
1318-
@deprecate_moved nullspace "LinearAlgebra" true true
1319-
@deprecate_moved ordschur! "LinearAlgebra" true true
1320-
@deprecate_moved ordschur "LinearAlgebra" true true
1321-
@deprecate_moved peakflops "LinearAlgebra" true true
1322-
@deprecate_moved pinv "LinearAlgebra" true true
1323-
@deprecate_moved qr "LinearAlgebra" true true
1324-
@deprecate_moved qrfact! "LinearAlgebra" true true
1325-
@deprecate_moved qrfact "LinearAlgebra" true true
1326-
@deprecate_moved lq "LinearAlgebra" true true
1327-
@deprecate_moved lqfact! "LinearAlgebra" true true
1328-
@deprecate_moved lqfact "LinearAlgebra" true true
1329-
@deprecate_moved rank "LinearAlgebra" true true
1330-
@deprecate_moved scale! "LinearAlgebra" true true
1331-
@deprecate_moved schur "LinearAlgebra" true true
1332-
@deprecate_moved schurfact! "LinearAlgebra" true true
1333-
@deprecate_moved schurfact "LinearAlgebra" true true
1334-
@deprecate_moved svd "LinearAlgebra" true true
1335-
@deprecate_moved svdfact! "LinearAlgebra" true true
1336-
@deprecate_moved svdfact "LinearAlgebra" true true
1337-
@deprecate_moved svdvals! "LinearAlgebra" true true
1338-
@deprecate_moved svdvals "LinearAlgebra" true true
1339-
@deprecate_moved sylvester "LinearAlgebra" true true
1340-
@deprecate_moved trace "LinearAlgebra" true true
1341-
@deprecate_moved transpose! "LinearAlgebra" true true
1342-
# @deprecate_moved transpose "LinearAlgebra" true true
1343-
@deprecate_moved tril! "LinearAlgebra" true true
1344-
@deprecate_moved tril "LinearAlgebra" true true
1345-
@deprecate_moved triu! "LinearAlgebra" true true
1346-
@deprecate_moved triu "LinearAlgebra" true true
1347-
@deprecate_moved vecdot "LinearAlgebra" true true
1348-
@deprecate_moved vecnorm "LinearAlgebra" true true
1349-
# @deprecate_moved ⋅ "LinearAlgebra" true true
1350-
# @deprecate_moved × "LinearAlgebra" true true
1351-
1352-
## types that were re-exported from Base
1353-
@deprecate_moved Diagonal "LinearAlgebra" true true
1354-
@deprecate_moved Bidiagonal "LinearAlgebra" true true
1355-
@deprecate_moved Tridiagonal "LinearAlgebra" true true
1356-
@deprecate_moved SymTridiagonal "LinearAlgebra" true true
1357-
@deprecate_moved UpperTriangular "LinearAlgebra" true true
1358-
@deprecate_moved LowerTriangular "LinearAlgebra" true true
1359-
@deprecate_moved Symmetric "LinearAlgebra" true true
1360-
@deprecate_moved Hermitian "LinearAlgebra" true true
1361-
@deprecate_moved Factorization "LinearAlgebra" true true
1362-
@deprecate_moved UniformScaling "LinearAlgebra" true true
1363-
@deprecate_moved Adjoint "LinearAlgebra" true true
1364-
@deprecate_moved Transpose "LinearAlgebra" true true
1365-
1366-
## functions that were exported from Base.LinAlg but not from Base
1367-
@deprecate_moved axpy! "LinearAlgebra" false true
1368-
@deprecate_moved axpby! "LinearAlgebra" false true
1369-
@deprecate_moved copy_transpose! "LinearAlgebra" false true
1370-
@deprecate_moved issuccess "LinearAlgebra" false true
1371-
@deprecate_moved transpose_type "LinearAlgebra" false true
1372-
@deprecate_moved A_mul_B! "LinearAlgebra" false true
1373-
@deprecate_moved A_mul_Bt! "LinearAlgebra" false true
1374-
@deprecate_moved At_mul_B! "LinearAlgebra" false true
1375-
@deprecate_moved At_mul_Bt! "LinearAlgebra" false true
1376-
@deprecate_moved A_mul_Bc! "LinearAlgebra" false true
1377-
@deprecate_moved Ac_mul_B! "LinearAlgebra" false true
1378-
@deprecate_moved Ac_mul_Bc! "LinearAlgebra" false true
1379-
@deprecate_moved A_ldiv_B! "LinearAlgebra" false true
1380-
@deprecate_moved At_ldiv_B! "LinearAlgebra" false true
1381-
@deprecate_moved Ac_ldiv_B! "LinearAlgebra" false true
1382-
1383-
## types that were exported from Base.LinAlg but not from Base
1384-
@deprecate_moved BunchKaufman "LinearAlgebra" false true
1385-
@deprecate_moved Cholesky "LinearAlgebra" false true
1386-
@deprecate_moved CholeskyPivoted "LinearAlgebra" false true
1387-
@deprecate_moved Eigen "LinearAlgebra" false true
1388-
@deprecate_moved GeneralizedEigen "LinearAlgebra" false true
1389-
@deprecate_moved GeneralizedSVD "LinearAlgebra" false true
1390-
@deprecate_moved GeneralizedSchur "LinearAlgebra" false true
1391-
@deprecate_moved Hessenberg "LinearAlgebra" false true
1392-
@deprecate_moved LU "LinearAlgebra" false true
1393-
@deprecate_moved LDLt "LinearAlgebra" false true
1394-
@deprecate_moved QR "LinearAlgebra" false true
1395-
@deprecate_moved QRPivoted "LinearAlgebra" false true
1396-
@deprecate_moved LQ "LinearAlgebra" false true
1397-
@deprecate_moved Schur "LinearAlgebra" false true
1398-
@deprecate_moved SVD "LinearAlgebra" false true
1399-
1400-
## deprecated functions that are moved to stdlib/LinearAlgebra/src/deprecated.jl
1401-
@deprecate_moved eye "LinearAlgebra" true true
1402-
@deprecate_moved sqrtm "LinearAlgebra" true true
1403-
@deprecate_moved expm "LinearAlgebra" true true
1404-
@deprecate_moved expm! "LinearAlgebra" true true
1405-
@deprecate_moved logm "LinearAlgebra" true true
1406-
@deprecate_moved gradient "LinearAlgebra" true true
1407-
@deprecate_moved ConjArray "LinearAlgebra" true true
1408-
@deprecate_moved ConjVector "LinearAlgebra" true true
1409-
@deprecate_moved ConjMatrix "LinearAlgebra" true true
1410-
@deprecate_moved RowVector "LinearAlgebra" true true
1411-
1412-
1413-
# PR #25021
1414-
@deprecate_moved normalize_string "Unicode" true true
1415-
@deprecate_moved graphemes "Unicode" true true
1416-
@deprecate_moved is_assigned_char "Unicode" true true
1417-
14181152
@deprecate isalnum(c::Char) isalpha(c) || isnumeric(c)
14191153
@deprecate isgraph(c::Char) isprint(c) && !isspace(c)
14201154
@deprecate isnumber(c::Char) isnumeric(c)

0 commit comments

Comments
 (0)