POMDPModels.jl
POMDPModels.jl copied to clipboard
printing output of `EpsGreedyPolicy(mdp, LinearDecaySchedule)` fails
if the output is muted with ;
everything works as expected, but if not then error is thrown.
MWE
julia> using POMDPs, POMDPModels, POMDPTools
julia> mdp = SimpleGridWorld();
julia> exploration = EpsGreedyPolicy(mdp, 0.9); # works
julia> exploration = EpsGreedyPolicy(mdp, LinearDecaySchedule(start=1.0, stop=0.01, steps=10000/2)); # works
julia> exploration = EpsGreedyPolicy(mdp, LinearDecaySchedule(start=1.0, stop=0.01, steps=10000/2)) # problem with printing
EpsGreedyPolicy{LinearDecaySchedule{Float64}, Random.TaskLocalRNG, SimpleGridWorld}(Error showing value of type EpsGreedyPolicy{LinearDecaySchedule{Float64}, Random.TaskLocalRNG, SimpleGridWorld}:
ERROR: StackOverflowError:
Stacktrace:
[1] print(::IOContext{Base.TTY}, ::Function, ::String, ::Vararg{Any})
@ Base ./strings/io.jl:46
[2] dump(io::IOContext{Base.TTY}, x::Any, n::Int64, indent::String)
@ Base ./show.jl:2862
[3] dump(io::IOContext{Base.TTY}, x::Any; maxdepth::Int64)
@ Base ./show.jl:2964
[4] show(io::IOContext{Base.TTY}, p::LinearDecaySchedule{Float64})
@ POMDPTools.Policies ~/.julia/packages/Parameters/MK0O4/src/Parameters.jl:586
[5] show_function(io::IOContext{Base.TTY}, f::Function, compact::Bool, fallback::typeof(show))
@ Base ./show.jl:525
[6] print(io::IOContext{Base.TTY}, f::Function)
@ Base ./show.jl:543
--- the last 6 lines are repeated 1995 more times ---
[11977] print(::IOContext{Base.TTY}, ::Function, ::String, ::Vararg{Any})
@ Base ./strings/io.jl:46
[11978] dump(io::IOContext{Base.TTY}, x::Any, n::Int64, indent::String)
@ Base ./show.jl:2862
[11979] dump(io::IOContext{Base.TTY}, x::Any; maxdepth::Int64)
@ Base ./show.jl:2964
[11980] show(io::IOContext{Base.TTY}, p::LinearDecaySchedule{Float64})
@ POMDPTools.Policies ~/.julia/packages/Parameters/MK0O4/src/Parameters.jl:586
[11981] _show_default(io::IOContext{Base.TTY}, x::Any)
@ Base ./show.jl:479
[11982] show_default
@ Base ./show.jl:462 [inlined]
[11983] show
@ Base ./show.jl:457 [inlined]
[11984] show(io::IOContext{…}, ::MIME{…}, x::EpsGreedyPolicy{…})
@ Base.Multimedia ./multimedia.jl:47
[11985] (::REPL.var"#55#56"{REPL.REPLDisplay{REPL.LineEditREPL}, MIME{Symbol("text/plain")}, Base.RefValue{Any}})(io::Any)
@ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:273
[11986] with_repl_linfo(f::Any, repl::REPL.LineEditREPL)
@ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:569
[11987] display(d::REPL.REPLDisplay, mime::MIME{Symbol("text/plain")}, x::Any)
@ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:259
[11988] display
@ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:278 [inlined]
[11989] display(x::Any)
@ Base.Multimedia ./multimedia.jl:340
[11990] #invokelatest#2
@ Base ./essentials.jl:887 [inlined]
[11991] invokelatest
@ Base ./essentials.jl:884 [inlined]
[11992] print_response(errio::IO, response::Any, show_value::Bool, have_color::Bool, specialdisplay::Union{…})
@ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:315
[11993] (::REPL.var"#57#58"{REPL.LineEditREPL, Pair{Any, Bool}, Bool, Bool})(io::Any)
@ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:284
[11994] with_repl_linfo(f::Any, repl::REPL.LineEditREPL)
@ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:569
[11995] print_response(repl::REPL.AbstractREPL, response::Any, show_value::Bool, have_color::Bool)
@ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:282
[11996] (::REPL.var"#do_respond#80"{…})(s::REPL.LineEdit.MIState, buf::Any, ok::Bool)
@ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:911
[11997] #invokelatest#2
@ Base ./essentials.jl:887 [inlined]
[11998] invokelatest
@ Base ./essentials.jl:884 [inlined]
[11999] run_interface(terminal::REPL.Terminals.TextTerminal, m::REPL.LineEdit.ModalInterface, s::REPL.LineEdit.MIState)
@ REPL.LineEdit ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/LineEdit.jl:2656
[12000] run_frontend(repl::REPL.LineEditREPL, backend::REPL.REPLBackendRef)
@ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:1312
Some type information was truncated. Use `show(err)` to see complete types.
julia> show(err)
1-element ExceptionStack:
StackOverflowError:
Stacktrace:
[1] dump(io::IOContext{Base.TTY}, x::Any; maxdepth::Int64)
@ Base ./show.jl:2964
[2] show(io::IOContext{Base.TTY}, p::LinearDecaySchedule{Float64})
@ POMDPTools.Policies ~/.julia/packages/Parameters/MK0O4/src/Parameters.jl:586
[3] show_function(io::IOContext{Base.TTY}, f::Function, compact::Bool, fallback::typeof(show))
@ Base ./show.jl:525
[4] print(io::IOContext{Base.TTY}, f::Function)
@ Base ./show.jl:543
[5] print(::IOContext{Base.TTY}, ::Function, ::String, ::Vararg{Any})
@ Base ./strings/io.jl:46
[6] dump(io::IOContext{Base.TTY}, x::Any, n::Int64, indent::String)
@ Base ./show.jl:2862
--- the last 6 lines are repeated 1994 more times ---
[11971] dump(io::IOContext{Base.TTY}, x::Any; maxdepth::Int64)
@ Base ./show.jl:2964
[11972] show(io::IOContext{Base.TTY}, p::LinearDecaySchedule{Float64})
@ POMDPTools.Policies ~/.julia/packages/Parameters/MK0O4/src/Parameters.jl:586
[11973] _show_default(io::IOContext{Base.TTY}, x::Any)
@ Base ./show.jl:479
[11974] show_default
@ Base ./show.jl:462 [inlined]
[11975] show
@ Base ./show.jl:457 [inlined]
[11976] show(io::IOContext{Base.TTY}, ::MIME{Symbol("text/plain")}, x::EpsGreedyPolicy{LinearDecaySchedule{Float64}, Random.TaskLocalRNG, SimpleGridWorld})
@ Base.Multimedia ./multimedia.jl:47
[11977] (::REPL.var"#55#56"{REPL.REPLDisplay{REPL.LineEditREPL}, MIME{Symbol("text/plain")}, Base.RefValue{Any}})(io::Any)
@ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:273
[11978] with_repl_linfo(f::Any, repl::REPL.LineEditREPL)
@ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:569
[11979] display(d::REPL.REPLDisplay, mime::MIME{Symbol("text/plain")}, x::Any)
@ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:259
[11980] display
@ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:278 [inlined]
[11981] display(x::Any)
@ Base.Multimedia ./multimedia.jl:340
[11982] #invokelatest#2
@ Base ./essentials.jl:887 [inlined]
[11983] invokelatest
@ Base ./essentials.jl:884 [inlined]
[11984] print_response(errio::IO, response::Any, show_value::Bool, have_color::Bool, specialdisplay::Union{Nothing, AbstractDisplay})
@ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:315
[11985] (::REPL.var"#57#58"{REPL.LineEditREPL, Pair{Any, Bool}, Bool, Bool})(io::Any)
@ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:284
[11986] with_repl_linfo(f::Any, repl::REPL.LineEditREPL)
@ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:569
[11987] print_response(repl::REPL.AbstractREPL, response::Any, show_value::Bool, have_color::Bool)
@ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:282
[11988] (::REPL.var"#do_respond#80"{Bool, Bool, REPL.var"#93#103"{REPL.LineEditREPL, REPL.REPLHistoryProvider}, REPL.LineEditREPL, REPL.LineEdit.Prompt})(s::REPL.LineEdit.MIState, buf::Any, ok::Bool)
@ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:911
[11989] (::REPL.var"#98#108"{Regex, Regex, Int64, Int64, REPL.LineEdit.Prompt, REPL.LineEdit.Prompt, REPL.LineEdit.Prompt})(::REPL.LineEdit.MIState, ::Any, ::Vararg{Any})
@ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:1248
[11990] #invokelatest#2
@ Base ./essentials.jl:887 [inlined]
[11991] invokelatest
@ Base ./essentials.jl:884 [inlined]
[11992] (::REPL.LineEdit.var"#27#28"{REPL.var"#98#108"{Regex, Regex, Int64, Int64, REPL.LineEdit.Prompt, REPL.LineEdit.Prompt, REPL.LineEdit.Prompt}, String})(s::Any, p::Any)
@ REPL.LineEdit ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/LineEdit.jl:1612
[11993] prompt!(term::REPL.Terminals.TextTerminal, prompt::REPL.LineEdit.ModalInterface, s::REPL.LineEdit.MIState)
@ REPL.LineEdit ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/LineEdit.jl:2749
[11994] run_interface(terminal::REPL.Terminals.TextTerminal, m::REPL.LineEdit.ModalInterface, s::REPL.LineEdit.MIState)
@ REPL.LineEdit ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/LineEdit.jl:2651
[11995] run_frontend(repl::REPL.LineEditREPL, backend::REPL.REPLBackendRef)
@ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:1312
julia> versioninfo()
Julia Version 1.10.0
Commit 3120989f39b (2023-12-25 18:01 UTC)
Build Info:
Official https://julialang.org/ release
Platform Info:
OS: Linux (x86_64-linux-gnu)
CPU: 12 × 12th Gen Intel(R) Core(TM) i5-1235U
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-15.0.7 (ORCJIT, alderlake)
Threads: 1 on 12 virtual cores
(jl_RMclTG) pkg> st
Status `/tmp/jl_RMclTG/Project.toml`
[355abbd5] POMDPModels v0.4.20
[7588e00f] POMDPTools v0.1.6
[a93abf59] POMDPs v0.9.6