JuliaIO / JLD.jl

Saving and loading julia variables while preserving native types
MIT License
278 stars 55 forks source link

anonymous function can't be saved, in Julia v1.6 #293

Closed norci closed 3 years ago

norci commented 3 years ago
(@v1.6) pkg> add JLD
    Updating registry at `~/.julia/registries/General`
   Resolving package versions...
Updating `~/.julia/environments/v1.6/Project.toml`
  [4138dd39] + JLD v0.12.1
Updating `~/.julia/environments/v1.6/Manifest.toml`
  [a74b3585] + Blosc v0.7.0
  [5789e2e9] + FileIO v1.4.5
  [f67ccb44] + HDF5 v0.15.2
  [4138dd39] + JLD v0.12.1
  [692b3bcd] + JLLWrappers v1.2.0
  [0b7ba130] + Blosc_jll v1.14.3+1
  [0234f1f7] + HDF5_jll v1.12.0+1
  [5ced341a] + Lz4_jll v1.9.2+2
  [458c3c95] + OpenSSL_jll v1.1.1+6
  [3161d3a3] + Zstd_jll v1.4.8+0

julia> using JLD

julia> @save "a.jld" x=()->1
ERROR: UndefVarError: isgeneric not defined
Stacktrace:
 [1] func2expr(fun::Function)
   @ JLD ~/.julia/packages/JLD/nQ9iW/src/JLD.jl:880
 [2] JLD.AnonymousFunctionSerializer(fun::Function)
   @ JLD ~/.julia/packages/JLD/nQ9iW/src/JLD.jl:887
 [3] writeas(fun::Function)
   @ JLD ~/.julia/packages/JLD/nQ9iW/src/JLD.jl:890
 [4] write(parent::JLD.JldFile, name::String, data::Function, wsession::JLD.JldWriteSession; kargs::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
   @ JLD ~/.julia/packages/JLD/nQ9iW/src/JLD.jl:542
 [5] write(parent::JLD.JldFile, name::String, data::Function, wsession::JLD.JldWriteSession)
   @ JLD ~/.julia/packages/JLD/nQ9iW/src/JLD.jl:542
 [6] top-level scope
   @ ~/.julia/packages/JLD/nQ9iW/src/JLD.jl:1195
jmert commented 3 years ago

This is caused by the issue already reported in #57. Closing this issue in favor of that one (which provides some more context on what changed in base Julia itself).