JuliaManifolds / ManifoldDiff.jl

Differentiation on manifolds
https://juliamanifolds.github.io/ManifoldDiff.jl/
MIT License
10 stars 2 forks source link

default diff backends missing argument #26

Open lukas-weber opened 1 year ago

lukas-weber commented 1 year ago

When doing

using FiniteDifferences
using ManifoldDiff

I get the following error, seemingly caused by the code around ManifoldDiff.jl:206 missing some function arguments. Some other backends seem to have the same issue.


┌ Warning: Error requiring `FiniteDifferences` from `ManifoldDiff`
│   exception =
│    MethodError: no method matching ManifoldDiff.FiniteDifferencesBackend()
│
│    Closest candidates are:
│      ManifoldDiff.FiniteDifferencesBackend(::TM) where TM
│       @ ManifoldDiff ~/.production_depot/packages/ManifoldDiff/iL1ys/src/finite_differences.jl:7
│
│    Stacktrace:
│      [1] top-level scope
│        @ ~/.production_depot/packages/ManifoldDiff/iL1ys/src/ManifoldDiff.jl:206
│      [2] eval
│        @ ./boot.jl:370 [inlined]
│      [3] eval
│        @ ~/.production_depot/packages/ManifoldDiff/iL1ys/src/ManifoldDiff.jl:1 [inlined]
│      [4] (::ManifoldDiff.var"#36#51")()
│        @ ManifoldDiff ~/.production_depot/packages/Requires/Z8rfN/src/require.jl:101
│      [5] macro expansion
│        @ timing.jl:393 [inlined]
│      [6] err(f::Any, listener::Module, modname::String, file::String, line::Any)
│        @ Requires ~/.production_depot/packages/Requires/Z8rfN/src/require.jl:47
│      [7] (::ManifoldDiff.var"#35#50")()
│        @ ManifoldDiff ~/.production_depot/packages/Requires/Z8rfN/src/require.jl:100
│      [8] withpath(f::Any, path::String)
│        @ Requires ~/.production_depot/packages/Requires/Z8rfN/src/require.jl:37
│      [9] (::ManifoldDiff.var"#34#49")()
│        @ ManifoldDiff ~/.production_depot/packages/Requires/Z8rfN/src/require.jl:99
│     [10] listenpkg(f::Any, pkg::Base.PkgId)
│        @ Requires ~/.production_depot/packages/Requires/Z8rfN/src/require.jl:20
│     [11] macro expansion
│        @ ~/.production_depot/packages/Requires/Z8rfN/src/require.jl:98 [inlined]
│     [12] __init__()
│        @ ManifoldDiff ~/.production_depot/packages/ManifoldDiff/iL1ys/src/ManifoldDiff.jl:204
│     [13] register_restored_modules(sv::Core.SimpleVector, pkg::Base.PkgId, path::String)
│        @ Base ./loading.jl:1115
│     [14] _include_from_serialized(pkg::Base.PkgId, path::String, ocachepath::String, depmods::Vector{Any})
│        @ Base ./loading.jl:1061
│     [15] _tryrequire_from_serialized(modkey::Base.PkgId, path::String, ocachepath::String, sourcepath::String, depmods::Vector{Any})
│        @ Base ./loading.jl:1391
│     [16] _require_search_from_serialized(pkg::Base.PkgId, sourcepath::String, build_id::UInt128)
│        @ Base ./loading.jl:1494
│     [17] _require(pkg::Base.PkgId, env::String)
│        @ Base ./loading.jl:1783
│     [18] _require_prelocked(uuidkey::Base.PkgId, env::String)
│        @ Base ./loading.jl:1660
│     [19] macro expansion
│        @ ./loading.jl:1648 [inlined]
│     [20] macro expansion
│        @ ./lock.jl:267 [inlined]
│     [21] require(into::Module, mod::Symbol)
│        @ Base ./loading.jl:1611
│     [22] include(mod::Module, _path::String)
│        @ Base ./Base.jl:457
│     [23] exec_options(opts::Base.JLOptions)
│        @ Base ./client.jl:307
│     [24] _start()
│        @ Base ./client.jl:522
└ @ Requires ~/.production_depot/packages/Requires/Z8rfN/src/require.jl:51```
mateuszbaran commented 1 year ago

Hm, thanks for reporting, I will check that. For now a simple workaround is importing the packages in the reverse order:

using ManifoldDiff
using FiniteDifferences