Closed Datseris closed 9 months ago
Same here, I was developing BoundaryValueDiffEq.jl in julia 1.9.0, precompiling throws matrix contains Infs or Nans error.
Precompilation in Julia 1.10 is working fine.
Julia 1.10 is not released yet so that's not a solution for me. I want to use these packages for my day work...
What version of ArrayInterface.jl?
For me it is v7.5.1
.
If you patch in:
using LinearAlgebra
function NonlinearSolve.LinearSolve.ArrayInterface.lu_instance(A::Symmetric{T}) where {T}
noUnitT = typeof(zero(T))
luT = LinearAlgebra.lutype(noUnitT)
ipiv = Vector{LinearAlgebra.BlasInt}(undef, 0)
info = zero(LinearAlgebra.BlasInt)
return LU{luT}(similar(A, 0, 0), ipiv, info)
end
it goes away?
Should be solved by the latest ArrayInterface https://github.com/JuliaArrays/ArrayInterface.jl/pull/424
I've updated to Julia 1.10. Then compilation worked with ArrayInterface 7.5. Then, I updated to 7.6. Now precompilation does not work anymore again :( Error is:
ERROR: LoadError: Failed to precompile NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec] to "C:\\Users\\gd419\\.julia\\compiled\\v1.10\\NonlinearSolve\\jl_4A22.tmp".
Stacktrace:
[1] error(s::String)
@ Base .\error.jl:35
[2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool)
@ Base .\loading.jl:2462
[3] compilecache
@ Base .\loading.jl:2334 [inlined]
[4] (::Base.var"#968#969"{Base.PkgId})()
@ Base .\loading.jl:1968
[5] mkpidlock(f::Base.var"#968#969"{Base.PkgId}, at::String, pid::Int32; kwopts::@Kwargs{stale_age::Int64, wait::Bool})
@ FileWatching.Pidfile C:\Users\gd419\.julia\juliaup\julia-1.10.0-rc1+0.x64.w64.mingw32\share\julia\stdlib\v1.10\FileWatching\src\pidfile.jl:93
[6] #mkpidlock#6
@ FileWatching.Pidfile C:\Users\gd419\.julia\juliaup\julia-1.10.0-rc1+0.x64.w64.mingw32\share\julia\stdlib\v1.10\FileWatching\src\pidfile.jl:88 [inlined]
[7] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64})
@ FileWatching.Pidfile C:\Users\gd419\.julia\juliaup\julia-1.10.0-rc1+0.x64.w64.mingw32\share\julia\stdlib\v1.10\FileWatching\src\pidfile.jl:111
[8] #invokelatest#2
@ Base .\essentials.jl:889 [inlined]
[9] invokelatest
@ Base .\essentials.jl:884 [inlined]
[10] maybe_cachefile_lock(f::Base.var"#968#969"{Base.PkgId}, pkg::Base.PkgId, srcpath::String; stale_age::Int64)
@ Base .\loading.jl:2977
[11] maybe_cachefile_lock
@ Base .\loading.jl:2974 [inlined]
[12] _require(pkg::Base.PkgId, env::String)
@ Base .\loading.jl:1964
[13] __require_prelocked(uuidkey::Base.PkgId, env::String)
@ Base .\loading.jl:1806
[14] #invoke_in_world#3
@ Base .\essentials.jl:921 [inlined]
[15] invoke_in_world
@ Base .\essentials.jl:918 [inlined]
[16] _require_prelocked(uuidkey::Base.PkgId, env::String)
@ Base .\loading.jl:1797
[17] macro expansion
@ Base .\loading.jl:1784 [inlined]
[18] macro expansion
@ Base .\lock.jl:267 [inlined]
[19] __require(into::Module, mod::Symbol)
@ Base .\loading.jl:1747
[20] #invoke_in_world#3
@ Base .\essentials.jl:921 [inlined]
[21] invoke_in_world
@ Base .\essentials.jl:918 [inlined]
[22] require(into::Module, mod::Symbol)
@ Base .\loading.jl:1740
[23] include
@ Base .\Base.jl:489 [inlined]
[24] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::String)
@ Base .\loading.jl:2216
[25] top-level scope
@ stdin:3
in expression starting at C:\Users\gd419\.julia\packages\OrdinaryDiffEq\wz2EI\src\OrdinaryDiffEq.jl:1
in expression starting at stdin:3
Julia1.9 and ArrayInterface 7.6 also do not precompile... :(
7.6.1?
Yeeees!!! It works now!
I had this problem before, so I made sure that everything is in order.
and in my manifest
However, precompilation of
NonlinearSolve
, and hence all of my DiffEq stack, fails with: