Skip to content

Commit e3f2f6b

Browse files
KristofferCKristofferC
authored and
KristofferC
committed
Revert "Extensions: make loading of extensions independent of what packages are in the sysimage (#52841)"
This reverts commit 08d229f.
1 parent 04259da commit e3f2f6b

File tree

6 files changed

+4
-37
lines changed

6 files changed

+4
-37
lines changed

base/Base.jl

-1
Original file line numberDiff line numberDiff line change
@@ -646,7 +646,6 @@ function __init__()
646646
init_load_path()
647647
init_active_project()
648648
append!(empty!(_sysimage_modules), keys(loaded_modules))
649-
empty!(explicit_loaded_modules)
650649
empty!(loaded_precompiles) # If we load a packageimage when building the image this might not be empty
651650
for (mod, key) in module_keys
652651
push!(get!(Vector{Module}, loaded_precompiles, key), mod)

base/loading.jl

+3-6
Original file line numberDiff line numberDiff line change
@@ -1554,7 +1554,7 @@ function _insert_extension_triggers(parent::PkgId, extensions::Dict{String, Any}
15541554
# TODO: Better error message if this lookup fails?
15551555
uuid_trigger = UUID(totaldeps[trigger]::String)
15561556
trigger_id = PkgId(uuid_trigger, trigger)
1557-
if !haskey(explicit_loaded_modules, trigger_id) || haskey(package_locks, trigger_id)
1557+
if !haskey(Base.loaded_modules, trigger_id) || haskey(package_locks, trigger_id)
15581558
trigger1 = get!(Vector{ExtensionId}, EXT_DORMITORY, trigger_id)
15591559
push!(trigger1, gid)
15601560
else
@@ -2430,9 +2430,8 @@ function __require_prelocked(uuidkey::PkgId, env=nothing)
24302430
insert_extension_triggers(uuidkey)
24312431
# After successfully loading, notify downstream consumers
24322432
run_package_callbacks(uuidkey)
2433-
elseif !haskey(explicit_loaded_modules, uuidkey)
2434-
explicit_loaded_modules[uuidkey] = m
2435-
run_package_callbacks(uuidkey)
2433+
else
2434+
newm = root_module(uuidkey)
24362435
end
24372436
return m
24382437
end
@@ -2445,7 +2444,6 @@ end
24452444
PkgOrigin() = PkgOrigin(nothing, nothing, nothing)
24462445
const pkgorigins = Dict{PkgId,PkgOrigin}()
24472446

2448-
const explicit_loaded_modules = Dict{PkgId,Module}() # Emptied on Julia start
24492447
const loaded_modules = Dict{PkgId,Module}() # available to be explicitly loaded
24502448
const loaded_precompiles = Dict{PkgId,Vector{Module}}() # extended (complete) list of modules, available to be loaded
24512449
const loaded_modules_order = Vector{Module}()
@@ -2485,7 +2483,6 @@ end
24852483
end
24862484
maybe_loaded_precompile(key, module_build_id(m)) === nothing && push!(loaded_modules_order, m)
24872485
loaded_modules[key] = m
2488-
explicit_loaded_modules[key] = m
24892486
module_keys[m] = key
24902487
end
24912488
nothing

test/loading.jl

-19
Original file line numberDiff line numberDiff line change
@@ -1129,25 +1129,6 @@ end
11291129
run(cmd_proj_ext)
11301130
end
11311131

1132-
# Sysimage extensions
1133-
# The test below requires that LinearAlgebra is in the sysimage and that it has not been loaded yet.
1134-
# if it gets moved out, this test will need to be updated.
1135-
# We run this test in a new process so we are not vulnerable to a previous test having loaded LinearAlgebra
1136-
sysimg_ext_test_code = """
1137-
uuid_key = Base.PkgId(Base.UUID("37e2e46d-f89d-539d-b4ee-838fcccc9c8e"), "LinearAlgebra")
1138-
Base.in_sysimage(uuid_key) || error("LinearAlgebra not in sysimage")
1139-
haskey(Base.explicit_loaded_modules, uuid_key) && error("LinearAlgebra already loaded")
1140-
using HasExtensions
1141-
Base.get_extension(HasExtensions, :LinearAlgebraExt) === nothing || error("unexpectedly got an extension")
1142-
using LinearAlgebra
1143-
haskey(Base.explicit_loaded_modules, uuid_key) || error("LinearAlgebra not loaded")
1144-
Base.get_extension(HasExtensions, :LinearAlgebraExt) isa Module || error("expected extension to load")
1145-
"""
1146-
cmd = `$(Base.julia_cmd()) --startup-file=no -e $sysimg_ext_test_code`
1147-
cmd = addenv(cmd, "JULIA_LOAD_PATH" => join([proj, "@stdlib"], sep))
1148-
run(cmd)
1149-
1150-
11511132
# Extensions in implicit environments
11521133
old_load_path = copy(LOAD_PATH)
11531134
try

test/project/Extensions/HasDepWithExtensions.jl/Manifest.toml

+1-6
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,12 @@ deps = ["ExtDep3"]
2525
path = "../HasExtensions.jl"
2626
uuid = "4d3288b3-3afc-4bb6-85f3-489fffe514c8"
2727
version = "0.1.0"
28+
weakdeps = ["ExtDep", "ExtDep2"]
2829

2930
[deps.HasExtensions.extensions]
3031
Extension = "ExtDep"
3132
ExtensionDep = "ExtDep3"
3233
ExtensionFolder = ["ExtDep", "ExtDep2"]
33-
LinearAlgebraExt = "LinearAlgebra"
34-
35-
[deps.HasExtensions.weakdeps]
36-
ExtDep = "fa069be4-f60b-4d4c-8b95-f8008775090c"
37-
ExtDep2 = "55982ee5-2ad5-4c40-8cfe-5e9e1b01500d"
38-
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
3934

4035
[[deps.SomePackage]]
4136
path = "../SomePackage"

test/project/Extensions/HasExtensions.jl/Project.toml

-2
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,8 @@ ExtDep3 = "a5541f1e-a556-4fdc-af15-097880d743a1"
88
[weakdeps]
99
ExtDep = "fa069be4-f60b-4d4c-8b95-f8008775090c"
1010
ExtDep2 = "55982ee5-2ad5-4c40-8cfe-5e9e1b01500d"
11-
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
1211

1312
[extensions]
1413
Extension = "ExtDep"
1514
ExtensionDep = "ExtDep3"
1615
ExtensionFolder = ["ExtDep", "ExtDep2"]
17-
LinearAlgebraExt = "LinearAlgebra"

test/project/Extensions/HasExtensions.jl/ext/LinearAlgebraExt.jl

-3
This file was deleted.

0 commit comments

Comments
 (0)