nathanaelbosch / ProbNumDiffEq.jl

Probabilistic Numerical Differential Equation solvers via Bayesian filtering and smoothing
MIT License
118 stars 15 forks source link

JOSS review: installation error #324

Closed ranocha closed 2 weeks ago

ranocha commented 2 weeks ago

This is part of the review https://github.com/openjournals/joss-reviews/issues/7048. I get the following error when installing the package on Julia 1.10:

Precompiling project...
  ✗ ProbNumDiffEq
  ✗ ProbNumDiffEq → RecipesBaseExt
  71 dependencies successfully precompiled in 80 seconds. 173 already precompiled.
  1 dependency had output during precompilation:
┌ Espresso
│  WARNING: could not import Base.Slot into Espresso
└  
  2 dependencies errored.
  For a report of the errors see `julia> err`. To retry use `pkg> precompile`

julia> using ProbNumDiffEq
Precompiling ProbNumDiffEq
        Info Given ProbNumDiffEq was explicitly requested, output will be shown live 
ERROR: LoadError: MethodError: no method matching get_fsalfirstlast(::ProbNumDiffEq.EKCache{Nothing, ProbNumDiffEq.IsometricKroneckerCovariance{Float64}, ProbNumDiffEq.var"#Proj#121"{Float64, ProbNumDiffEq.IsometricKroneckerCovariance{Float64}}, ProbNumDiffEq.RightIsometricKroneckerProduct{Float64, Matrix{Float64}}, ProbNumDiffEq.RightIsometricKroneckerProduct{Float64, LinearAlgebra.Diagonal{Float64, Vector{Float64}}}, ProbNumDiffEq.RightIsometricKroneckerProduct{Float64, LinearAlgebra.Diagonal{Float64, Vector{Float64}}}, ProbNumDiffEq.RightIsometricKroneckerProduct{Float64, LinearAlgebra.Adjoint{Float64, Matrix{Float64}}}, Vector{Float64}, Vector{Float64}, ProbNumDiffEq.Gaussian{Vector{Float64}, PSDMatrices.PSDMatrix{Float64, ProbNumDiffEq.RightIsometricKroneckerProduct{Float64, Matrix{Float64}}}}, ProbNumDiffEq.IWP{Float64}, ProbNumDiffEq.RightIsometricKroneckerProduct{Float64, Matrix{Float64}}, PSDMatrices.PSDMatrix{Float64, ProbNumDiffEq.RightIsometricKroneckerProduct{Float64, Matrix{Float64}}}, ProbNumDiffEq.RightIsometricKroneckerProduct{Float64, Matrix{Float64}}, ProbNumDiffEq.RightIsometricKroneckerProduct{Float64, Matrix{Float64}}, Nothing, Nothing, ProbNumDiffEq.RightIsometricKroneckerProduct{Float64, Matrix{Float64}}, Vector{Float64}, Matrix{Float64}, ProbNumDiffEq.RightIsometricKroneckerProduct{Float64, Matrix{Float64}}, ProbNumDiffEq.AffineNormalKernel{ProbNumDiffEq.RightIsometricKroneckerProduct{Float64, Matrix{Float64}}, Vector{Float64}, PSDMatrices.PSDMatrix{Float64, ProbNumDiffEq.RightIsometricKroneckerProduct{Float64, Matrix{Float64}}}}, LinearAlgebra.Diagonal{Float64, FillArrays.Fill{Float64, 1, Tuple{Base.OneTo{Int64}}}}, ProbNumDiffEq.DynamicDiffusion, ProbNumDiffEq.StandardODEMeasurementModel{true, SciMLBase.ODEFunction{true, true, ProbNumDiffEq.var"#lorenz#148", LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing, Nothing, Nothing}}, ProbNumDiffEq.Gaussian{Vector{Float64}, ProbNumDiffEq.RightIsometricKroneckerProduct{Float64, Matrix{Float64}}}, ProbNumDiffEq.Gaussian{Vector{Float64}, PSDMatrices.PSDMatrix{Float64, ProbNumDiffEq.RightIsometricKroneckerProduct{Float64, Matrix{Float64}}}}, Float64, Float64, Vector{Float64}, SciMLBase.UJacobianWrapper{true, SciMLBase.ODEFunction{true, true, ProbNumDiffEq.var"#lorenz#148", LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing, Nothing, Nothing}, Float64, SciMLBase.NullParameters}, Nothing, Vector{Float64}}, ::Vector{Float64})

Closest candidates are:
  get_fsalfirstlast(::OrdinaryDiffEqCore.CompositeCache, ::Any)
   @ OrdinaryDiffEqCore ~/.julia/packages/OrdinaryDiffEqCore/4A2vD/src/caches/basic_caches.jl:16
  get_fsalfirstlast(::OrdinaryDiffEqTsit5.Tsit5Cache, ::Any)
   @ OrdinaryDiffEqTsit5 ~/.julia/packages/OrdinaryDiffEqTsit5/DHYtz/src/tsit_caches.jl:39
  get_fsalfirstlast(::OrdinaryDiffEqQPRK.QPRK98Cache, ::Any)
   @ OrdinaryDiffEqQPRK ~/.julia/packages/OrdinaryDiffEqQPRK/7AUMg/src/qprk_caches.jl:33
  ...

Stacktrace:
  [1] __init(prob::SciMLBase.ODEProblem{Vector{Float64}, Tuple{Float64, Float64}, true, SciMLBase.NullParameters, SciMLBase.ODEFunction{true, true, ProbNumDiffEq.var"#lorenz#148", LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing, Nothing, Nothing}, @Kwargs{}, SciMLBase.StandardODEProblem}, alg::ProbNumDiffEq.EK0{ProbNumDiffEq.IWP{Float64}, ProbNumDiffEq.DynamicDiffusion, ProbNumDiffEq.TaylorModeInit, Nothing, UnionAll}, timeseries_init::Tuple{}, ts_init::Tuple{}, ks_init::Tuple{}, recompile::Type{Val{true}}; saveat::Tuple{}, tstops::Tuple{}, d_discontinuities::Tuple{}, save_idxs::Nothing, save_everystep::Bool, save_on::Bool, save_start::Bool, save_end::Nothing, callback::Nothing, dense::Bool, calck::Bool, dt::Float64, dtmin::Float64, dtmax::Float64, force_dtmin::Bool, adaptive::Bool, gamma::Rational{Int64}, abstol::Nothing, reltol::Nothing, qmin::Rational{Int64}, qmax::Int64, qsteady_min::Int64, qsteady_max::Int64, beta1::Nothing, beta2::Nothing, qoldinit::Rational{Int64}, controller::Nothing, fullnormalize::Bool, failfactor::Int64, maxiters::Int64, internalnorm::typeof(DiffEqBase.ODE_DEFAULT_NORM), internalopnorm::typeof(LinearAlgebra.opnorm), isoutofdomain::typeof(DiffEqBase.ODE_DEFAULT_ISOUTOFDOMAIN), unstable_check::typeof(DiffEqBase.ODE_DEFAULT_UNSTABLE_CHECK), verbose::Bool, timeseries_errors::Bool, dense_errors::Bool, advance_to_tstop::Bool, stop_at_next_tstop::Bool, initialize_save::Bool, progress::Bool, progress_steps::Int64, progress_name::String, progress_message::typeof(DiffEqBase.ODE_DEFAULT_PROG_MESSAGE), progress_id::Symbol, userdata::Nothing, allow_extrapolation::Bool, initialize_integrator::Bool, alias_u0::Bool, alias_du0::Bool, initializealg::OrdinaryDiffEqCore.DefaultInit, kwargs::@Kwargs{})
    @ OrdinaryDiffEqCore ~/.julia/packages/OrdinaryDiffEqCore/4A2vD/src/solve.jl:472
  [2] __init(prob::SciMLBase.ODEProblem{Vector{Float64}, Tuple{Float64, Float64}, true, SciMLBase.NullParameters, SciMLBase.ODEFunction{true, true, ProbNumDiffEq.var"#lorenz#148", LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing, Nothing, Nothing}, @Kwargs{}, SciMLBase.StandardODEProblem}, alg::ProbNumDiffEq.EK0{ProbNumDiffEq.IWP{Float64}, ProbNumDiffEq.DynamicDiffusion, ProbNumDiffEq.TaylorModeInit, Nothing, UnionAll}, timeseries_init::Tuple{}, ts_init::Tuple{}, ks_init::Tuple{}, recompile::Type{Val{true}})
    @ OrdinaryDiffEqCore ~/.julia/packages/OrdinaryDiffEqCore/4A2vD/src/solve.jl:11
[...]
nathanaelbosch commented 2 weeks ago

Thanks for bringing this up. This is likely related to #322 and unfortunately I didn't have the time to keep up with the OrdinaryDiffEq.jl changes these last weeks. But I will do my best to resolve this as quickly as I can now.

nathanaelbosch commented 2 weeks ago

325 will resolve this. To use the package right away you could install this branch from github with

] add ProbNumDiffEq#hotfix/get_fsalfirstlast

But I will also make sure to get the PR merged with passing tests asap and then do a quick patch release.

ranocha commented 2 weeks ago

Thanks! I will wait for the patch release

nathanaelbosch commented 2 weeks ago

I just released 0.16.1 and checked that I can indeed install it in a fresh environment. I will close this for now, but if you still encounter some installation problem please feel free to reopen. And of course thank you a lot for taking the time to review this package!