Skip to content

Commit 694d00a

Browse files
KristofferCvtjnash
authored andcommitted
Revert "Extensions: make loading of extensions independent of what packages are in the sysimage (JuliaLang#52841)"
This reverts commit 08d229f. (cherry picked from commit e3f2f6b)
1 parent 493bec0 commit 694d00a

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
@@ -602,7 +602,6 @@ function __init__()
602602
init_load_path()
603603
init_active_project()
604604
append!(empty!(_sysimage_modules), keys(loaded_modules))
605-
empty!(explicit_loaded_modules)
606605
empty!(loaded_precompiles) # If we load a packageimage when building the image this might not be empty
607606
for (mod, key) in module_keys
608607
push!(get!(Vector{Module}, loaded_precompiles, key), mod)

base/loading.jl

+3-6
Original file line numberDiff line numberDiff line change
@@ -1518,7 +1518,7 @@ function _insert_extension_triggers(parent::PkgId, extensions::Dict{String, Any}
15181518
uuid_trigger = UUID(totaldeps[trigger]::String)
15191519
trigger_id = PkgId(uuid_trigger, trigger)
15201520
push!(trigger_ids, trigger_id)
1521-
if !haskey(explicit_loaded_modules, trigger_id) || haskey(package_locks, trigger_id)
1521+
if !haskey(Base.loaded_modules, trigger_id) || haskey(package_locks, trigger_id)
15221522
trigger1 = get!(Vector{ExtensionId}, EXT_DORMITORY, trigger_id)
15231523
push!(trigger1, gid)
15241524
else
@@ -2390,9 +2390,8 @@ function __require_prelocked(uuidkey::PkgId, env=nothing)
23902390
insert_extension_triggers(uuidkey)
23912391
# After successfully loading, notify downstream consumers
23922392
run_package_callbacks(uuidkey)
2393-
elseif !haskey(explicit_loaded_modules, uuidkey)
2394-
explicit_loaded_modules[uuidkey] = m
2395-
run_package_callbacks(uuidkey)
2393+
else
2394+
newm = root_module(uuidkey)
23962395
end
23972396
return m
23982397
end
@@ -2405,7 +2404,6 @@ end
24052404
PkgOrigin() = PkgOrigin(nothing, nothing, nothing)
24062405
const pkgorigins = Dict{PkgId,PkgOrigin}()
24072406

2408-
const explicit_loaded_modules = Dict{PkgId,Module}() # Emptied on Julia start
24092407
const loaded_modules = Dict{PkgId,Module}() # available to be explicitly loaded
24102408
const loaded_precompiles = Dict{PkgId,Vector{Module}}() # extended (complete) list of modules, available to be loaded
24112409
const loaded_modules_order = Vector{Module}()
@@ -2445,7 +2443,6 @@ end
24452443
end
24462444
maybe_loaded_precompile(key, module_build_id(m)) === nothing && push!(loaded_modules_order, m)
24472445
loaded_modules[key] = m
2448-
explicit_loaded_modules[key] = m
24492446
module_keys[m] = key
24502447
end
24512448
nothing

test/loading.jl

-19
Original file line numberDiff line numberDiff line change
@@ -1119,25 +1119,6 @@ end
11191119
run(cmd_proj_ext)
11201120
end
11211121

1122-
# Sysimage extensions
1123-
# The test below requires that LinearAlgebra is in the sysimage and that it has not been loaded yet.
1124-
# if it gets moved out, this test will need to be updated.
1125-
# We run this test in a new process so we are not vulnerable to a previous test having loaded LinearAlgebra
1126-
sysimg_ext_test_code = """
1127-
uuid_key = Base.PkgId(Base.UUID("37e2e46d-f89d-539d-b4ee-838fcccc9c8e"), "LinearAlgebra")
1128-
Base.in_sysimage(uuid_key) || error("LinearAlgebra not in sysimage")
1129-
haskey(Base.explicit_loaded_modules, uuid_key) && error("LinearAlgebra already loaded")
1130-
using HasExtensions
1131-
Base.get_extension(HasExtensions, :LinearAlgebraExt) === nothing || error("unexpectedly got an extension")
1132-
using LinearAlgebra
1133-
haskey(Base.explicit_loaded_modules, uuid_key) || error("LinearAlgebra not loaded")
1134-
Base.get_extension(HasExtensions, :LinearAlgebraExt) isa Module || error("expected extension to load")
1135-
"""
1136-
cmd = `$(Base.julia_cmd()) --startup-file=no -e $sysimg_ext_test_code`
1137-
cmd = addenv(cmd, "JULIA_LOAD_PATH" => join([proj, "@stdlib"], sep))
1138-
run(cmd)
1139-
1140-
11411122
# Extensions in implicit environments
11421123
old_load_path = copy(LOAD_PATH)
11431124
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.SomeOtherPackage]]
4136
path = "../SomeOtherPackage"

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)