hmorlon / PANDA.jl

Phylogenetic ANalyses of DiversificAtion (in Julia)
MIT License
10 stars 1 forks source link

Package Fails to Precompile in newer Versions of Julia #14

Closed tillepprecht closed 2 years ago

tillepprecht commented 2 years ago

We've could not get the PANDA package (v0.0.4 and v0.0.3) to precompile properly in Julia Versions 1.6.3 and 1.4.1, on Windows, Linux and MacOS. Every time it returns this error message:

julia> using PANDA
[ Info: Precompiling PANDA [57a71ab2-c1ee-420a-94e0-f42fd769768c]
ERROR: LoadError: LoadError: UndefVarError: alg_difftype not defined
Stacktrace:
 [1] getproperty(::Module, ::Symbol) at ./Base.jl:26
 [2] top-level scope at /home/ubuntu/.julia/packages/StochasticDiffEq/BKyQ3/src/alg_utils.jl:259
 [3] include(::Module, ::String) at ./Base.jl:377
 [4] include(::String) at /home/ubuntu/.julia/packages/StochasticDiffEq/BKyQ3/src/StochasticDiffEq.jl:4
 [5] top-level scope at /home/ubuntu/.julia/packages/StochasticDiffEq/BKyQ3/src/StochasticDiffEq.jl:100
 [6] include(::Module, ::String) at ./Base.jl:377
 [7] top-level scope at none:2
 [8] eval at ./boot.jl:331 [inlined]
 [9] eval(::Expr) at ./client.jl:449
 [10] top-level scope at ./none:3
in expression starting at /home/ubuntu/.julia/packages/StochasticDiffEq/BKyQ3/src/alg_utils.jl:259
in expression starting at /home/ubuntu/.julia/packages/StochasticDiffEq/BKyQ3/src/StochasticDiffEq.jl:100
ERROR: LoadError: Failed to precompile StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0] to /home/ubuntu/.julia/compiled/v1.4/StochasticDiffEq/36ZnY_AH2mt.ji.
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1272
 [3] _require(::Base.PkgId) at ./loading.jl:1029
 [4] require(::Base.PkgId) at ./loading.jl:927
 [5] require(::Module, ::Symbol) at ./loading.jl:922
 [6] include(::Module, ::String) at ./Base.jl:377
 [7] top-level scope at none:2
 [8] eval at ./boot.jl:331 [inlined]
 [9] eval(::Expr) at ./client.jl:449
 [10] top-level scope at ./none:3
in expression starting at /home/ubuntu/.julia/packages/DifferentialEquations/el96s/src/DifferentialEquations.jl:10
ERROR: LoadError: LoadError: Failed to precompile DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa] to /home/ubuntu/.julia/compiled/v1.4/DifferentialEquations/UQdwS_AH2mt.ji.
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1272
 [3] _require(::Base.PkgId) at ./loading.jl:1029
 [4] require(::Base.PkgId) at ./loading.jl:927
 [5] require(::Module, ::Symbol) at ./loading.jl:922
 [6] include(::Module, ::String) at ./Base.jl:377
 [7] include(::String) at /home/ubuntu/.julia/packages/PANDA/2ghWd/src/PANDA.jl:7
 [8] top-level scope at /home/ubuntu/.julia/packages/PANDA/2ghWd/src/PANDA.jl:19
 [9] include(::Module, ::String) at ./Base.jl:377
 [10] top-level scope at none:2
 [11] eval at ./boot.jl:331 [inlined]
 [12] eval(::Expr) at ./client.jl:449
 [13] top-level scope at ./none:3
in expression starting at /home/ubuntu/.julia/packages/PANDA/2ghWd/src/ESSE.jl:12
in expression starting at /home/ubuntu/.julia/packages/PANDA/2ghWd/src/PANDA.jl:19
ERROR: Failed to precompile PANDA [57a71ab2-c1ee-420a-94e0-f42fd769768c] to /home/ubuntu/.julia/compiled/v1.4/PANDA/tvYF4_AH2mt.ji.
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1272
 [3] _require(::Base.PkgId) at ./loading.jl:1029
 [4] require(::Base.PkgId) at ./loading.jl:927
 [5] require(::Module, ::Symbol) at ./loading.jl:922

It seems to boil down to some compatibility issues with the required StringDistances version. The pull request #12 is related to this. Making the proposed change of that pullrequest leads to successfull precompiling, but it seems to break something else, as running infer_ClaDS after installing the package like this doesn't work. It doesn't spit out an error but just seems to run in an endless loop, not completing any iterations.

The only way to get the package to work was using the LTS version of Julia, 1.0.5, in which the package installs and precompiles without needing to change anything and works without hiccups.

Steps to reproduce:

using PANDA

OdileMaliet commented 2 years ago

This should now be fixed