Open
Description
When the path that Julia lives under on the file system includes :
, Julia refuses to precompile many packages, even stdlibs:
$ pwd # contains `:`
/home/nsajko/tmp/jl/jl/pr_nsajko:any_all_vectorized_tuple_bool/julia-a6a6f6b074/bin
$ ./julia -e 'using Statistics'
✗ Statistics
Precompiling Statistics finished.
0 dependencies successfully precompiled in 0 seconds
ERROR: LOAD_PATH entries cannot contain ':'
Stacktrace:
[1] error(s::String)
@ Base ./error.jl:44
[2] create_expr_cache(pkg::Base.PkgId, input::String, output::String, output_o::String, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, flags::Cmd, cacheflags::Base.CacheFlags, internal_stderr::IO, internal_stdout::IO, loadable_exts::Nothing)
@ Base ./loading.jl:3058
[3] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool; flags::Cmd, cacheflags::Base.CacheFlags, reasons::Dict{String, Int64}, loadable_exts::Nothing)
@ Base ./loading.jl:3202
[4] (::Base.var"#__require_prelocked##0#__require_prelocked##1"{Base.PkgId})()
@ Base ./loading.jl:2676
[5] mkpidlock(f::Base.var"#__require_prelocked##0#__require_prelocked##1"{Base.PkgId}, at::String, pid::Int32; kwopts::@Kwargs{stale_age::Int64, wait::Bool})
@ FileWatching.Pidfile ~/tmp/jl/jl/pr_nsajko:any_all_vectorized_tuple_bool/julia-a6a6f6b074/share/julia/stdlib/v1.12/FileWatching/src/pidfile.jl:93
[6] #mkpidlock#7
@ ~/tmp/jl/jl/pr_nsajko:any_all_vectorized_tuple_bool/julia-a6a6f6b074/share/julia/stdlib/v1.12/FileWatching/src/pidfile.jl:88 [inlined]
[7] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64})
@ FileWatching.Pidfile ~/tmp/jl/jl/pr_nsajko:any_all_vectorized_tuple_bool/julia-a6a6f6b074/share/julia/stdlib/v1.12/FileWatching/src/pidfile.jl:114
[8] #invokelatest#1
@ ./essentials.jl:1058 [inlined]
[9] invokelatest
@ ./essentials.jl:1052 [inlined]
[10] maybe_cachefile_lock(f::Base.var"#__require_prelocked##0#__require_prelocked##1"{Base.PkgId}, pkg::Base.PkgId, srcpath::String; stale_age::Int64)
@ Base ./loading.jl:3853
[11] maybe_cachefile_lock
@ ./loading.jl:3850 [inlined]
[12] __require_prelocked(pkg::Base.PkgId, env::String)
@ Base ./loading.jl:2662
[13] _require_prelocked(uuidkey::Base.PkgId, env::String)
@ Base ./loading.jl:2487
[14] macro expansion
@ ./loading.jl:2415 [inlined]
[15] macro expansion
@ ./lock.jl:376 [inlined]
[16] __require(into::Module, mod::Symbol)
@ Base ./loading.jl:2372
[17] #invoke_in_world#2
@ ./essentials.jl:1091 [inlined]
[18] invoke_in_world
@ ./essentials.jl:1087 [inlined]
[19] require(into::Module, mod::Symbol)
@ Base ./loading.jl:2364
[20] eval(m::Module, e::Any)
@ Core ./boot.jl:485
[21] exec_options(opts::Base.JLOptions)
@ Base ./client.jl:295
[22] _start()
@ Base ./client.jl:558
To reproduce, one might need to delete $HOME/.julia/compiled
or similar, to force precompilation to be attempted again.
Not a recent regression, reproduced on all of v1.10, v1.11, v1.12.