JLD2 load of MersenneTwister does not work

question

#1

Hello, I have the following problem:

I try to save a random number generator to a jld2 file and load it later.

Here is an example:

using Random
using FileIO
using JLD2

rng = Random.MersenneTwister(1)

jldopen("test_rng.jld2", true, true, true, IOStream) do file
	file["rng"] = rng
end

rng_load = load("test_rng.jld2", "rng")

@show typeof(rng)
@show typeof(rng_load)

The output is:

┌ Warning: type DSFMT.DSFMT.DSFMT_state does not exist in workspace; reconstructing
└ @ JLD2 ~/.julia/packages/JLD2/xpVxm/src/data.jl:1153
┌ Warning: saved type MersenneTwister has field state::getfield(JLD2.ReconstructedTypes, Symbol("##DSFMT.DSFMT.DSFMT_state#378")), but workspace type has field state::Random.DSFMT.DSFMT_state, and no applicable convert method exists; reconstructing
└ @ JLD2 ~/.julia/packages/JLD2/xpVxm/src/data.jl:420
typeof(rng) = MersenneTwister
typeof(rng_load) = getfield(JLD2.ReconstructedTypes, Symbol("##MersenneTwister#379"))

So obviosly this does not work. I would like to know why and ho to correct this.

Remark: I use this jldopen version for saving because the real code runs on a cluster and there where issues with the saving with @save macro.

Here I have a link to an issue I have opend for JLD2: https://github.com/simonster/JLD2.jl/issues/112