Closed
Description
So, I've been working on decreasing TTFX in a package of mine, and thought in the process I'd split the REPL functionality up into a package extension ... called REPLExt
.
Turns out this causes issues though, do package extension names need to be globally unique? That would be weird, but it kinda seems like it from this MWE.
This is just the results of ]generate pkg_ext_name_repo
+ a minimal REPL
-based package extension.
Reproduction instructions:
- Extract (and instantiate?)
pkg_ext_name_repo
- Run
julia +1.11 --startup-file=no --project=pkg_ext_name_repo
- Try
using Pkg
- Observe the below error message
julia> using Pkg
[ Info: Precompiling REPLExt [e5eb5ef1-03cf-53a7-ae1d-5a66b08e832b] (cache misses: wrong dep version loaded (2), wrong source (2), invalid header (8), mismatched flags (2))
ERROR: LoadError: ArgumentError: Package REPLExt does not have pkg_ext_name_repro in its dependencies:
- Note that the following manifests in the load path were resolved with a different
julia version, which may be the cause of the error:
/home/tec/pkg_ext_name_repro/Manifest.toml (vnothing)
- You may have a partially installed environment. Try `Pkg.instantiate()`
to ensure all packages in the environment are installed.
- Or, if you have REPLExt checked out for development and have
added pkg_ext_name_repro as a dependency but haven't updated your primary
environment's manifest file, try `Pkg.resolve()`.
- Otherwise you may need to report an issue with REPLExt
Stacktrace:
[1] macro expansion
@ ./loading.jl:2133 [inlined]
[2] macro expansion
@ ./lock.jl:273 [inlined]
[3] __require(into::Module, mod::Symbol)
@ Base ./loading.jl:2105
[4] #invoke_in_world#3
@ ./essentials.jl:1064 [inlined]
[5] invoke_in_world
@ ./essentials.jl:1061 [inlined]
[6] require(into::Module, mod::Symbol)
@ Base ./loading.jl:2098
[7] include
@ ./Base.jl:558 [inlined]
[8] 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:2721
[9] top-level scope
@ stdin:4
in expression starting at /home/tec/pkg_ext_name_repro/ext/REPLExt.jl:1
in expression starting at stdin:4
┌ Error: Error during loading of extension REPLExt of Pkg, use `Base.retry_load_extensions()` to retry.
│ exception =
│ 1-element ExceptionStack:
│ Failed to precompile REPLExt [e5eb5ef1-03cf-53a7-ae1d-5a66b08e832b] to "/home/tec/.julia/compiled/v1.11/REPLExt/jl_f6PsaY".
│ Stacktrace:
│ [1] error(s::String)
│ @ Base ./error.jl:35
│ ...
│ [41] _start()
│ @ Base ./client.jl:536
└ @ Base loading.jl:1437
Metadata
Metadata
Assignees
Labels
No labels