From 9a66a626f7147bb63e0305515d1be03b0f3cacdc Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Sun, 1 Aug 2021 09:25:55 -0600 Subject: [PATCH] run user-level and module-level initialization goals from loader.pl (#1012) --- Cargo.lock | 2 -- src/loader.pl | 11 +++++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e90a93ec..7e94a23e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,7 +1,5 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 - [[package]] name = "arrayvec" version = "0.5.2" diff --git a/src/loader.pl b/src/loader.pl index f231ffd1..0b725a40 100644 --- a/src/loader.pl +++ b/src/loader.pl @@ -87,8 +87,7 @@ unload_evacuable(Evacuable) :- '$pop_load_state_payload'(Evacuable), '$pop_load_context'. -run_initialization_goals :- - prolog_load_context(module, Module), +run_initialization_goals(Module) :- ( predicate_property(Module:'$initialization_goals'(_), dynamic) -> findall(Module:Goal, '$call'(builtins:retract(Module:'$initialization_goals'(Goal))), Goals), abolish(Module:'$initialization_goals'/1), @@ -99,6 +98,14 @@ run_initialization_goals :- ; true ). +run_initialization_goals :- + prolog_load_context(module, Module), + run_initialization_goals(user), + ( Module \== user -> + run_initialization_goals(Module) + ; true + ). + file_load(Stream, Path) :- file_load(Stream, Path, _), false. %% Clear the heap. -- 2.54.0