Skip to content

Commit 93e8eb1

Browse files
committed
deprecate srand(rng, filename::AbstractString)
`srand` should accept a seed as second argument; here `filename` is only an indirect seed, preventing the use a string object as a direct seed.
1 parent 0155f51 commit 93e8eb1

File tree

4 files changed

+44
-18
lines changed

4 files changed

+44
-18
lines changed

NEWS.md

+31
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,34 @@
1+
Julia v0.7.0 Release Notes
2+
==========================
3+
4+
New language features
5+
---------------------
6+
7+
8+
Language changes
9+
----------------
10+
11+
12+
Breaking changes
13+
----------------
14+
15+
This section lists changes that do not have deprecation warnings.
16+
17+
18+
Library improvements
19+
--------------------
20+
21+
22+
Compiler/Runtime improvements
23+
-----------------------------
24+
25+
26+
Deprecated or removed
27+
---------------------
28+
29+
* The method `srand(rng, filename, n=4)` has been deprecated ([#21359]).
30+
31+
132
Julia v0.6.0 Release Notes
233
==========================
334

base/deprecated.jl

+9
Original file line numberDiff line numberDiff line change
@@ -1324,5 +1324,14 @@ end
13241324

13251325
# END 0.6 deprecations
13261326

1327+
# BEGIN 0.7 deprecations
1328+
1329+
# PR #21359
1330+
@deprecate srand(r::MersenneTwister, filename::AbstractString, n::Integer=4) srand(r, read!(filename, Array{UInt32}(Int(n))))
1331+
@deprecate srand(filename::AbstractString, n::Integer=4) srand(read!(filename, Array{UInt32}(Int(n))))
1332+
@deprecate MersenneTwister(filename::AbstractString) srand(MersenneTwister(0), read!(filename, Array{UInt32}(Int(4))))
1333+
1334+
# END 0.7 deprecations
1335+
13271336
# BEGIN 1.0 deprecations
13281337
# END 1.0 deprecations

base/random.jl

+4-15
Original file line numberDiff line numberDiff line change
@@ -213,25 +213,19 @@ function make_seed(n::Integer)
213213
end
214214
end
215215

216-
function make_seed(filename::AbstractString, n::Integer)
217-
read!(filename, Vector{UInt32}(Int(n)))
218-
end
219-
220216
## srand()
221217

222218
"""
223-
srand([rng=GLOBAL_RNG], [seed]) -> rng
224-
srand([rng=GLOBAL_RNG], filename, n=4) -> rng
219+
srand([rng=GLOBAL_RNG], seed) -> rng
220+
srand([rng=GLOBAL_RNG]) -> rng
225221
226222
Reseed the random number generator. If a `seed` is provided, the RNG will give a
227223
reproducible sequence of numbers, otherwise Julia will get entropy from the system. For
228-
`MersenneTwister`, the `seed` may be a non-negative integer, a vector of `UInt32` integers
229-
or a filename, in which case the seed is read from a file (`4n` bytes are read from the file,
230-
where `n` is an optional argument). `RandomDevice` does not support seeding.
224+
`MersenneTwister`, the `seed` may be a non-negative integer or a vector of `UInt32` integers.
225+
`RandomDevice` does not support seeding.
231226
"""
232227
srand(r::MersenneTwister) = srand(r, make_seed())
233228
srand(r::MersenneTwister, n::Integer) = srand(r, make_seed(n))
234-
srand(r::MersenneTwister, filename::AbstractString, n::Integer=4) = srand(r, make_seed(filename, n))
235229

236230

237231
function dsfmt_gv_srand()
@@ -250,11 +244,6 @@ function srand(seed::Union{Integer, Vector{UInt32}})
250244
dsfmt_gv_srand()
251245
end
252246

253-
function srand(filename::AbstractString, n::Integer=4)
254-
srand(GLOBAL_RNG, filename, n)
255-
dsfmt_gv_srand()
256-
end
257-
258247
## Global RNG
259248

260249
const GLOBAL_RNG = MersenneTwister(0)

test/random.jl

-3
Original file line numberDiff line numberDiff line change
@@ -485,11 +485,8 @@ let g = Base.Random.GLOBAL_RNG,
485485
@test srand() === g
486486
@test srand(rand(UInt)) === g
487487
@test srand(rand(UInt32, rand(1:10))) === g
488-
@test srand(@__FILE__) === g
489-
@test srand(@__FILE__, rand(1:10)) === g
490488
@test srand(m) === m
491489
@test srand(m, rand(UInt)) === m
492490
@test srand(m, rand(UInt32, rand(1:10))) === m
493491
@test srand(m, rand(1:10)) === m
494-
@test srand(m, @__FILE__, rand(1:10)) === m
495492
end

0 commit comments

Comments
 (0)