diff --git a/README.md b/README.md index 5001f735e..a505ed9dd 100644 --- a/README.md +++ b/README.md @@ -79,6 +79,10 @@ Currently, the `@compat` macro supports the following syntaxes: `CartesianRange` now has two type parameters, so using them as fields in other `struct`s requires manual intervention. +* `@compat using Test`, `@compat using SharedArrays`, `@compat using Mmap`, and `@compat + using DelimitedFiles` are provided on versions older than 0.7, where these are not yet + part of the standard library. ([#23931]) + ## Module Aliases * In 0.6, some 0.5 iterator functions have been moved to the `Base.Iterators` @@ -296,6 +300,7 @@ includes this fix. Find the minimum version from there. [#18977]: https://github.com/JuliaLang/julia/issues/18977 [#19088]: https://github.com/JuliaLang/julia/issues/19088 [#19246]: https://github.com/JuliaLang/julia/issues/19246 +[#19331]: https://github.com/JuliaLang/julia/issues/19331 [#19449]: https://github.com/JuliaLang/julia/issues/19449 [#19635]: https://github.com/JuliaLang/julia/issues/19635 [#19784]: https://github.com/JuliaLang/julia/issues/19784 @@ -315,6 +320,7 @@ includes this fix. Find the minimum version from there. [#21257]: https://github.com/JuliaLang/julia/issues/21257 [#21346]: https://github.com/JuliaLang/julia/issues/21346 [#21378]: https://github.com/JuliaLang/julia/issues/21378 +[#21419]: https://github.com/JuliaLang/julia/issues/21419 [#21709]: https://github.com/JuliaLang/julia/issues/21709 [#22064]: https://github.com/JuliaLang/julia/issues/22064 [#22182]: https://github.com/JuliaLang/julia/issues/22182 @@ -331,3 +337,4 @@ includes this fix. Find the minimum version from there. [#23427]: https://github.com/JuliaLang/julia/issues/23427 [#23570]: https://github.com/JuliaLang/julia/issues/23570 [#23666]: https://github.com/JuliaLang/julia/issues/23666 +[#23931]: https://github.com/JuliaLang/julia/issues/23931 diff --git a/src/Compat.jl b/src/Compat.jl index c75ed0b7a..87094a9c4 100644 --- a/src/Compat.jl +++ b/src/Compat.jl @@ -86,6 +86,31 @@ function _compat(ex::Expr) end end end + if VERSION < v"0.7.0-DEV.2005" + if ex.head ∈ [:using, :import] && length(ex.args) == 1 + if ex.args[1] == :Test + ex = Expr(ex.head, :Base, :Test) + elseif ex.args[1] == :SharedArrays + ex = Expr(:toplevel, + :(module SharedArrays + if isdefined(Base, :Distributed) + using Base.Distributed.procs + else + using Base.procs + end + export SharedArray, SharedMatrix, SharedVector, indexpids, + localindexes, sdata, procs + end), + Expr(ex.head, :., :SharedArrays)) + elseif ex.args[1] == :Mmap + ex = Expr(ex.head, :Base, :Mmap) + elseif ex.args[1] == :DelimitedFiles + ex = Expr(:toplevel, + Expr(ex.head, :Base, :DataFmt), + :(const DelimitedFiles = DataFmt)) + end + end + end return Expr(ex.head, map(_compat, ex.args)...) end diff --git a/test/runtests.jl b/test/runtests.jl index b9202dcf8..56a5ae9f3 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1,5 +1,5 @@ using Compat -using Base.Test +@compat using Test # Issue #291 # 0.6 @@ -513,7 +513,7 @@ module Test18839 using Compat using Compat.Iterators -using Base.Test +@compat using Test @test collect(take(countfrom(2), 3)) == [2, 3, 4] @test collect(take(cycle(5:8), 9)) == [5:8; 5:8; 5] @@ -627,7 +627,8 @@ b = Compat.collect(a) # PR 22064 module Test22064 -using Base.Test, Compat +using Compat +@compat using Test @test (@__MODULE__) === Test22064 end @@ -823,6 +824,19 @@ end # 0.7 @test isconcrete(Int) +# 0.7 +module Test23876 + using Compat + @compat using Test + @compat import DelimitedFiles + @compat using Mmap, SharedArrays + @test isdefined(@__MODULE__, :DelimitedFiles) + @test isdefined(SharedArrays, :SharedArray) + @test isdefined(@__MODULE__, :SharedArray) + @test isdefined(@__MODULE__, :procs) + @test isdefined(Mmap, :mmap) +end + if VERSION < v"0.6.0" include("deprecated.jl") end