@@ -208,10 +208,15 @@ let mod = Base.include(Base.__toplevel__, inputfile)
208
208
end
209
209
210
210
# Additional method patches depending on whether user code loads certain stdlibs
211
+ let loaded = Base. loaded_modules_array ()
212
+ function find_loaded_module (name)
213
+ idx = findfirst ((m) -> Symbol (m) === name, loaded)
214
+ idx === nothing && return nothing
215
+ return loaded[idx]
216
+ end
211
217
212
- let loaded = Symbol .(Base. loaded_modules_array ()) # TODO better way to do this
213
- if :SparseArrays in loaded
214
- using SparseArrays
218
+ SparseArrays = find_loaded_module (:SparseArrays )
219
+ if SparseArrays != = nothing
215
220
@eval SparseArrays. CHOLMOD begin
216
221
function __init__ ()
217
222
ccall ((:SuiteSparse_config_malloc_func_set , :libsuitesparseconfig ),
@@ -225,8 +230,9 @@ let loaded = Symbol.(Base.loaded_modules_array()) # TODO better way to do this
225
230
end
226
231
end
227
232
end
228
- if :Artifacts in loaded
229
- using Artifacts
233
+
234
+ Artifacts = find_loaded_module (:Artifacts )
235
+ if Artifacts != = nothing
230
236
@eval Artifacts begin
231
237
function _artifact_str (__module__, artifacts_toml, name, path_tail, artifact_dict, hash, platform, _:: Val{lazyartifacts} ) where lazyartifacts
232
238
# If the artifact exists, we're in the happy path and we can immediately
@@ -241,26 +247,30 @@ let loaded = Symbol.(Base.loaded_modules_array()) # TODO better way to do this
241
247
end
242
248
end
243
249
end
244
- if :Pkg in loaded
245
- using Pkg
250
+
251
+ Pkg = find_loaded_module (:Pkg )
252
+ if Pkg != = nothing
246
253
@eval Pkg begin
247
254
__init__ () = rand () # TODO , methods that do nothing don't get codegened
248
255
end
249
256
end
250
- if :StyledStrings in loaded
251
- using StyledStrings
257
+
258
+ StyledStrings = find_loaded_module (:StyledStrings )
259
+ if StyledStrings != = nothing
252
260
@eval StyledStrings begin
253
261
__init__ () = rand ()
254
262
end
255
263
end
256
- if :Markdown in loaded
257
- using Markdown
264
+
265
+ Markdown = find_loaded_module (:Markdown )
266
+ if Markdown != = nothing
258
267
@eval Markdown begin
259
268
__init__ () = rand ()
260
269
end
261
270
end
262
- if :JuliaSyntaxHighlighting in loaded
263
- using JuliaSyntaxHighlighting
271
+
272
+ JuliaSyntaxHighlighting = find_loaded_module (:JuliaSyntaxHighlighting )
273
+ if JuliaSyntaxHighlighting != = nothing
264
274
@eval JuliaSyntaxHighlighting begin
265
275
__init__ () = rand ()
266
276
end
0 commit comments