Revise.jl icon indicating copy to clipboard operation
Revise.jl copied to clipboard

Revise won't compile with PackageCompiler on Julia 1.10.1

Open andyferris opened this issue 1 year ago • 6 comments

Since upgrading to Julia v1.10.1 (from v1.10.0) I now get the following during compilation with PackageCompiler.jl:

Failed to precompile Revise [295af30f-e4ad-537b-8983-00126c2a3abe] to "/app/.julia/compiled/v1.10/Revise/jl_mllOLx".
ERROR: LoadError: BoundsError: attempt to access 0-element Vector{Tuple{Module, String}} at index [1]
Stacktrace:
 [1] getindex(A::Vector{Tuple{Module, String}}, i1::Int64)
   @ Base ./essentials.jl:13
 [2] top-level scope
   @ /app/.julia/packages/Revise/FaTes/src/packagedef.jl:155
 [3] include(mod::Module, _path::String)
   @ Base ./Base.jl:495
 [4] include(x::String)
   @ Revise /app/.julia/packages/Revise/FaTes/src/Revise.jl:25
 [5] top-level scope
   @ /app/.julia/packages/Revise/FaTes/src/Revise.jl:44
 [6] include
   @ ./Base.jl:495 [inlined]
 [7] 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::Nothing)
   @ Base ./loading.jl:2222
 [8] top-level scope
   @ stdin:3
in expression starting at /app/.julia/packages/Revise/FaTes/src/packagedef.jl:148
in expression starting at /app/.julia/packages/Revise/FaTes/src/Revise.jl:1
in expression starting at stdin:3

I'm using the Julia 1.10.1 amd64 linux docker container, Revise 3.5.13, PackageCompiler 2.1.17 and I'm compiling a bunch of proprietary code. Sorry, I don't have a lot more to go on at this point!

andyferris avatar Feb 16 '24 03:02 andyferris

I was wondering if anyone had a moment to look at this?

This relates to this code:

const basebuilddir = begin
    sysimg = filter(x->endswith(x[2], "sysimg.jl"), Base._included_files)[1][2]
    dirname(dirname(sysimg))
end

while building a sysimg - the filter returns zero results. Is there some kind of fallback basebuilddir we should use while constructing a sysimg?

I'm not 100% sure what might have changed here. There was a recent change in PackageCompiler that might be somewhat relevant, but I have no idea? https://github.com/JuliaLang/PackageCompiler.jl/pull/912

andyferris avatar Mar 05 '24 03:03 andyferris

I have basically never used PackageCompiler, so I don't know. Can you insert a debugging statement to print every item in Base._included_files?

timholy avatar Jul 24 '24 07:07 timholy