JuliaIO / JLD2.jl

HDF5-compatible file format in pure Julia
Other
560 stars 92 forks source link

Broken in 1.7? #365

Closed gideonsimpson closed 2 years ago

gideonsimpson commented 2 years ago

Is JLD2 just completely broken in Julia 1.7? Trying the example off of the README.md:

julia> using JLD2

julia> save("example.jld2", Dict("hello" => "world", "foo" => :bar))
Error encountered while save File{DataFormat{:JLD2}, String}("example.jld2").

Fatal error:
ERROR: type DataType has no field mutable
Stacktrace:
  [1] getproperty
    @ ./Base.jl:37 [inlined]
  [2] ismutabletype(x::DataType)
    @ JLD2 ~/.julia/packages/JLD2/qncOK/src/datasets.jl:538
  [3] write_dataset(f::JLD2.JLDFile{JLD2.MmapIO}, dataspace::JLD2.WriteDataspace{0, Tuple{}}, datatype::JLD2.BasicDatatype, odr::JLD2.FixedLengthString{String}, data::String, wsession::JLD2.JLDWriteSession{Dict{UInt64, JLD2.RelOffset}})
    @ JLD2 ~/.julia/packages/JLD2/qncOK/src/datasets.jl:428
  [4] write_dataset
    @ ~/.julia/packages/JLD2/qncOK/src/datasets.jl:542 [inlined]
  [5] write(g::JLD2.Group{JLD2.JLDFile{JLD2.MmapIO}}, name::String, obj::String, wsession::JLD2.JLDWriteSession{Dict{UInt64, JLD2.RelOffset}})
    @ JLD2 ~/.julia/packages/JLD2/qncOK/src/groups.jl:119
  [6] write(f::JLD2.JLDFile{JLD2.MmapIO}, name::String, obj::String, wsession::JLD2.JLDWriteSession{Dict{UInt64, JLD2.RelOffset}})
    @ JLD2 ~/.julia/packages/JLD2/qncOK/src/JLD2.jl:347
  [7] (::JLD2.var"#59#60"{Dict{String, Any}})(file::JLD2.JLDFile{JLD2.MmapIO})
    @ JLD2 ~/.julia/packages/JLD2/qncOK/src/fileio.jl:11
  [8] jldopen(::JLD2.var"#59#60"{Dict{String, Any}}, ::String, ::Vararg{String}; kws::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ JLD2 ~/.julia/packages/JLD2/qncOK/src/loadsave.jl:4
  [9] jldopen
    @ ~/.julia/packages/JLD2/qncOK/src/loadsave.jl:2 [inlined]
 [10] #save#58
    @ ~/.julia/packages/JLD2/qncOK/src/fileio.jl:5 [inlined]
 [11] save(f::File{DataFormat{:JLD2}, String}, dict::Dict{String, Any})
    @ JLD2 ~/.julia/packages/JLD2/qncOK/src/fileio.jl:5
 [12] #invokelatest#2
    @ ./essentials.jl:716 [inlined]
 [13] invokelatest
    @ ./essentials.jl:714 [inlined]
 [14] action(call::Symbol, libraries::Vector{Union{Base.PkgId, Module}}, file::Formatted, args::Dict{String, Any}; options::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ FileIO ~/.julia/packages/FileIO/FUXWu/src/loadsave.jl:219
 [15] action
    @ ~/.julia/packages/FileIO/FUXWu/src/loadsave.jl:197 [inlined]
 [16] action(call::Symbol, libraries::Vector{Union{Base.PkgId, Module}}, sym::Symbol, file::String, args::Dict{String, Any}; options::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ FileIO ~/.julia/packages/FileIO/FUXWu/src/loadsave.jl:185
 [17] action
    @ ~/.julia/packages/FileIO/FUXWu/src/loadsave.jl:185 [inlined]
 [18] #save#20
    @ ~/.julia/packages/FileIO/FUXWu/src/loadsave.jl:129 [inlined]
 [19] save(file::String, args::Dict{String, Any})
    @ FileIO ~/.julia/packages/FileIO/FUXWu/src/loadsave.jl:126
 [20] top-level scope
    @ REPL[5]:1
Stacktrace:
 [1] handle_error(e::ErrorException, q::Base.PkgId, bt::Vector{Union{Ptr{Nothing}, Base.InterpreterIP}})
   @ FileIO ~/.julia/packages/FileIO/FUXWu/src/error_handling.jl:61
 [2] handle_exceptions(exceptions::Vector{Tuple{Any, Union{Base.PkgId, Module}, Vector}}, action::String)
   @ FileIO ~/.julia/packages/FileIO/FUXWu/src/error_handling.jl:56
 [3] action(call::Symbol, libraries::Vector{Union{Base.PkgId, Module}}, file::Formatted, args::Dict{String, Any}; options::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
   @ FileIO ~/.julia/packages/FileIO/FUXWu/src/loadsave.jl:228
 [4] action
   @ ~/.julia/packages/FileIO/FUXWu/src/loadsave.jl:197 [inlined]
 [5] action(call::Symbol, libraries::Vector{Union{Base.PkgId, Module}}, sym::Symbol, file::String, args::Dict{String, Any}; options::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
   @ FileIO ~/.julia/packages/FileIO/FUXWu/src/loadsave.jl:185
 [6] action
   @ ~/.julia/packages/FileIO/FUXWu/src/loadsave.jl:185 [inlined]
 [7] #save#20
   @ ~/.julia/packages/FileIO/FUXWu/src/loadsave.jl:129 [inlined]
 [8] save(file::String, args::Dict{String, Any})
   @ FileIO ~/.julia/packages/FileIO/FUXWu/src/loadsave.jl:126
 [9] top-level scope
   @ REPL[5]:1
gideonsimpson commented 2 years ago

Never mind. I had an outdated version running because of another package.