Closed GlenHertz closed 11 months ago
Hi @GlenHertz , thanks for this report. I see similar errors but am not sure about how to debug this.
I found the problem.
Somewhere in your file you reference a Module
. This is a julia builtin and certainly can't be stored (among some other functions and such)
This should error - just not in the way it did. At least it no longer segfaults on julia 1.9
Here's a printout of the committed datatypes as reconstructed by JLD2DebugTools.jl
1) DataType
2) struct PixelFrontendTests.SimulationManager
name::Any
simulator::Any
parameters::Any
circuit::Any
analysis::Any
options::Any
probes::Any
signals::Any
measures::Any
metrics::Any
resim::Bool
reread::Bool
end
3) struct AnalogCircuitSimEnv.NgSpice
ng::Any
loaded_circuits::Any
current_circuit_idx::Int64
alters::Any
end
4) Module
5) Symbol
6) struct AnalogCircuitSimEnv.Parameter
name::Symbol
value::Float64
end
7) struct AnalogCircuitSimEnv.ParameterSet
_params::Any
end
8) Union
9) struct AnalogCircuitSimEnv.ParameterSweep
name::Symbol
values::Any
end
10) Nothing
11) #latency_probes
12) struct DataInterpolations.LinearInterpolation{Array{Float64, 1}, Array{Float64, 1}, true, Float64}
u::Any
t::Any
end
13) struct CedarWaves.#clippedx#16{Array{Float64, 1}}
x::Any
end
14) struct CedarWaves.SampledFunction{DataInterpolations.LinearInterpolation{Array{Float64, 1}, Array{Float64, 1}, true, Float64}, CedarWaves.#clippedx#16{Array{Float64, 1}}}
callable::DataInterpolations.LinearInterpolation{Array{Float64, 1}, Array{Float64, 1}, true, Float64}
clippediterable::CedarWaves.#clippedx#16{Array{Float64, 1}}
end
15) struct CedarWaves.Interval{Float64}
l::Float64
r::Float64
end
16) struct CedarWaves.Signal{CedarWaves.ContinuousSignal, CedarWaves.SampledFunction{DataInterpolations.LinearInterpolation{Array{Float64, 1}, Array{Float64, 1}, true, Float64}, CedarWaves.#clippedx#16{Array{Float64, 1}}}, CedarWaves.Interval{Float64}, CedarWaves.Interval{Float64}, CedarWaves.Interval{Float64}, Float64}
full_transform::CedarWaves.SampledFunction{DataInterpolations.LinearInterpolation{Array{Float64, 1}, Array{Float64, 1}, true, Float64}, CedarWaves.#clippedx#16{Array{Float64, 1}}}
base_x_interval::CedarWaves.Interval{Float64}
extrapolated_x_interval::CedarWaves.Interval{Float64}
clipped_x_interval::CedarWaves.Interval{Float64}
xscale::Float64
xshift::Float64
dir::Int64
end
17) struct NamedTuple{(:SF, :I0, :VPR), NTuple{3, CedarWaves.Signal{CedarWaves.ContinuousSignal, CedarWaves.SampledFunction{DataInterpolations.LinearInterpolation{Array{Float64, 1}, Array{Float64, 1}, true, Float64}, CedarWaves.#clippedx#16{Array{Float64, 1}}}, CedarWaves.Interval{Float64}, CedarWaves.Interval{Float64}, CedarWaves.Interval{Float64}, Float64}}}
SF::CedarWaves.Signal{CedarWaves.ContinuousSignal, CedarWaves.SampledFunction{DataInterpolations.LinearInterpolation{Array{Float64, 1}, Array{Float64, 1}, true, Float64}, CedarWaves.#clippedx#16{Array{Float64, 1}}}, CedarWaves.Interval{Float64}, CedarWaves.Interval{Float64}, CedarWaves.Interval{Float64}, Float64}
I0::CedarWaves.Signal{CedarWaves.ContinuousSignal, CedarWaves.SampledFunction{DataInterpolations.LinearInterpolation{Array{Float64, 1}, Array{Float64, 1}, true, Float64}, CedarWaves.#clippedx#16{Array{Float64, 1}}}, CedarWaves.Interval{Float64}, CedarWaves.Interval{Float64}, CedarWaves.Interval{Float64}, Float64}
VPR::CedarWaves.Signal{CedarWaves.ContinuousSignal, CedarWaves.SampledFunction{DataInterpolations.LinearInterpolation{Array{Float64, 1}, Array{Float64, 1}, true, Float64}, CedarWaves.#clippedx#16{Array{Float64, 1}}}, CedarWaves.Interval{Float64}, CedarWaves.Interval{Float64}, CedarWaves.Interval{Float64}, Float64}
end
18) struct NTuple{3, Symbol}
1::Symbol
2::Symbol
3::Symbol
end
19) struct NTuple{3, CedarWaves.Signal{CedarWaves.ContinuousSignal, CedarWaves.SampledFunction{DataInterpolations.LinearInterpolation{Array{Float64, 1}, Array{Float64, 1}, true, Float64}, CedarWaves.#clippedx#16{Array{Float64, 1}}}, CedarWaves.Interval{Float64}, CedarWaves.Interval{Float64}, CedarWaves.Interval{Float64}, Float64}}
1::CedarWaves.Signal{CedarWaves.ContinuousSignal, CedarWaves.SampledFunction{DataInterpolations.LinearInterpolation{Array{Float64, 1}, Array{Float64, 1}, true, Float64}, CedarWaves.#clippedx#16{Array{Float64, 1}}}, CedarWaves.Interval{Float64}, CedarWaves.Interval{Float64}, CedarWaves.Interval{Float64}, Float64}
2::CedarWaves.Signal{CedarWaves.ContinuousSignal, CedarWaves.SampledFunction{DataInterpolations.LinearInterpolation{Array{Float64, 1}, Array{Float64, 1}, true, Float64}, CedarWaves.#clippedx#16{Array{Float64, 1}}}, CedarWaves.Interval{Float64}, CedarWaves.Interval{Float64}, CedarWaves.Interval{Float64}, Float64}
3::CedarWaves.Signal{CedarWaves.ContinuousSignal, CedarWaves.SampledFunction{DataInterpolations.LinearInterpolation{Array{Float64, 1}, Array{Float64, 1}, true, Float64}, CedarWaves.#clippedx#16{Array{Float64, 1}}}, CedarWaves.Interval{Float64}, CedarWaves.Interval{Float64}, CedarWaves.Interval{Float64}, Float64}
end
20) PixelFrontendTests.#pixel_latency
21) struct NamedTuple{(:peak, :delay, :read_sec, :sim_sec), Tuple{CedarWaves.YMeasure, CedarWaves.DxMeasure, Float64, Float64}}
peak::Any
delay::Any
read_sec::Float64
sim_sec::Float64
end
22) struct NTuple{4, Symbol}
1::Symbol
2::Symbol
3::Symbol
4::Symbol
end
23) Tuple{CedarWaves.YMeasure, CedarWaves.DxMeasure, Float64, Float64}
24) Base.Dict{Symbol, Any}
25) struct Pair{Symbol, Any}
first::Symbol
second::Any
end
26) struct CedarWaves.MeasureOptions
dict::Base.Dict{Symbol, Any}
end
27) struct CedarWaves.YMeasure
name::Any
signal::Any
x::Any
options::CedarWaves.MeasureOptions
end
28) struct CedarWaves.#77#88{Float64}
n::Float64
end
29) struct Base.ComposedFunction{CedarWaves.#77#88{Float64}, CedarWaves.SampledFunction{DataInterpolations.LinearInterpolation{Array{Float64, 1}, Array{Float64, 1}, true, Float64}, CedarWaves.#clippedx#16{Array{Float64, 1}}}}
outer::CedarWaves.#77#88{Float64}
inner::CedarWaves.SampledFunction{DataInterpolations.LinearInterpolation{Array{Float64, 1}, Array{Float64, 1}, true, Float64}, CedarWaves.#clippedx#16{Array{Float64, 1}}}
end
30) struct CedarWaves.SampledFunction{Base.ComposedFunction{CedarWaves.#77#88{Float64}, CedarWaves.SampledFunction{DataInterpolations.LinearInterpolation{Array{Float64, 1}, Array{Float64, 1}, true, Float64}, CedarWaves.#clippedx#16{Array{Float64, 1}}}}, CedarWaves.#clippedx#16{Array{Float64, 1}}}
callable::Base.ComposedFunction{CedarWaves.#77#88{Float64}, CedarWaves.SampledFunction{DataInterpolations.LinearInterpolation{Array{Float64, 1}, Array{Float64, 1}, true, Float64}, CedarWaves.#clippedx#16{Array{Float64, 1}}}}
clippediterable::CedarWaves.#clippedx#16{Array{Float64, 1}}
end
31) struct CedarWaves.Signal{CedarWaves.ContinuousSignal, CedarWaves.SampledFunction{Base.ComposedFunction{CedarWaves.#77#88{Float64}, CedarWaves.SampledFunction{DataInterpolations.LinearInterpolation{Array{Float64, 1}, Array{Float64, 1}, true, Float64}, CedarWaves.#clippedx#16{Array{Float64, 1}}}}, CedarWaves.#clippedx#16{Array{Float64, 1}}}, CedarWaves.Interval{Float64}, CedarWaves.Interval{Float64}, CedarWaves.Interval{Float64}, Float64}
full_transform::CedarWaves.SampledFunction{Base.ComposedFunction{CedarWaves.#77#88{Float64}, CedarWaves.SampledFunction{DataInterpolations.LinearInterpolation{Array{Float64, 1}, Array{Float64, 1}, true, Float64}, CedarWaves.#clippedx#16{Array{Float64, 1}}}}, CedarWaves.#clippedx#16{Array{Float64, 1}}}
base_x_interval::CedarWaves.Interval{Float64}
extrapolated_x_interval::CedarWaves.Interval{Float64}
clipped_x_interval::CedarWaves.Interval{Float64}
xscale::Float64
xshift::Float64
dir::Int64
end
32) struct CedarWaves.DxMeasure
name::Any
pt1::Any
pt2::Any
options::CedarWaves.MeasureOptions
end
33) struct CedarWaves.XMeasure
name::Any
signal::Any
x::Any
options::CedarWaves.MeasureOptions
end
34) struct CedarWaves.CrossMeasure
name::Any
signal::Any
x::Any
yth::Any
options::CedarWaves.MeasureOptions
end
35) struct CedarWaves.either{Float64}
value::Float64
end
I get the following segfualt on Julia 1.7.2 (Linux) when loading a JLD2 file:
Here's the JLD2 file but I'm not sure if it will work for you as it may require some internal code:
latency_Cm1_Thr1.jld2.gz