FRBNY-DSGE / DSGE.jl

Solve and estimate Dynamic Stochastic General Equilibrium models (including the New York Fed DSGE)
https://frbny-dsge.github.io/DSGE.jl/latest/
BSD 3-Clause "New" or "Revised" License
864 stars 225 forks source link

run_default.jl #182

Closed freizue closed 2 months ago

freizue commented 2 years ago

Hi everybody,

when I try to run the forecasting part of run_default.jl, I always get the following error:

forecast_one(m, :mode, :none, output_vars; check_empty_columns = false) | Error: type DataType has no field mutable

I use Visual Studio Code on Windows and somehow my colleague running the same code on Linux can't reproduce the error. Since I'm quite new to Julia and DSGE, I've only checked that the JLD2 package is up to date. Perhaps someone could help me with the issue? Thank you in advance!

The exact error description with stacktrace is:

Argument 5 of 4 in call to forecast_one

ERROR: type DataType has no field mutable Stacktrace:

getproperty at .\Base.jl

hasfielddata(T::Any) at C:\Users\Chiara.julia\packages\JLD2\4AJn8\src\data.jl

s61#23 at C:\Users\Chiara.julia\packages\JLD2\4AJn8\src\data.jl

var"#s61#23"(T::Any, ::Any, #unused#::Any, initialized::Any) at .\none

(::Core.GeneratedFunctionStub)(::Any, ::Vararg{Any}) at .\boot.jl

odr at C:\Users\Chiara.julia\packages\JLD2\4AJn8\src\data.jl

objodr at C:\Users\Chiara.julia\packages\JLD2\4AJn8\src\data.jl

write_dataset at C:\Users\Chiara.julia\packages\JLD2\4AJn8\src\datasets.jl

write(g::JLD2.Group{JLD2.JLDFile{IOStream}}, name::String, obj::Dict{Date, Int64}, wsession::JLD2.JLDWriteSession{Dict{UInt64, JLD2.RelOffset}}) at C:\Users\Chiara.julia\packages\JLD2\4AJn8\src\groups.jl

write(f::JLD2.JLDFile{IOStream}, name::String, obj::Dict{Date, Int64}, wsession::JLD2.JLDWriteSession{Dict{UInt64, JLD2.RelOffset}}) at C:\Users\Chiara.julia\packages\JLD2\4AJn8\src\JLD2.jl (repeats 2 times)

write_forecast_metadata(m::Model1002{Float64}, file::JLD2.JLDFile{IOStream}, var::Symbol) at C:\Users\Chiara.julia\packages\DSGE\tJSkz\src\forecast\io.jl

(::DSGE.var"#1639#1642"{Model1002{Float64}, Symbol})(file::JLD2.JLDFile{IOStream}) at C:\Users\Chiara.julia\packages\DSGE\tJSkz\src\forecast\io.jl

jldopen(::DSGE.var"#1639#1642"{Model1002{Float64}, Symbol}, ::String, ::Vararg{Any}; kws::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}) at C:\Users\Chiara.julia\packages\JLD2\4AJn8\src\loadsave.jl

jldopen at C:\Users\Chiara.julia\packages\JLD2\4AJn8\src\loadsave.jl

naivej commented 1 year ago

the old JLD2 used in DSGE package is not compatible with julia 1.7 and above. using julia 1.6.7 (the current long term support version) should fix it