Hi all,
I recently tagged the v0.3.0 release for JLD2 that changed the internals to
allow for defining custom serialization.
Annoyingly I introduced a bug in the process.
Previously type instantiation was done within @generated functions with something like
Expr(:new, T, fields...).
To make custom serialization possible I had to remove the @generated
changed that to T(fields...) which of course can’t always work. Either the constructor might have been overloaded and e.g. functions can’t be instantiated like that either.
The relevant issue is https://github.com/JuliaIO/JLD2.jl/issues/258
and PR are https://github.com/JuliaIO/JLD2.jl/pull/261
https://github.com/JuliaIO/JLD2.jl/pull/260
The only thing that I could come up with so far that fixes most problems was to do eval(Expr(:new, T, fields))
but that feels wrong.
Any suggestions ?
Best, Jonas