]> Repositorios git - scryer-prolog.git/commitdiff
run user-level and module-level initialization goals from loader.pl (#1012)
authorMark Thom <[email protected]>
Sun, 1 Aug 2021 15:25:55 +0000 (09:25 -0600)
committerMark Thom <[email protected]>
Sun, 1 Aug 2021 15:25:55 +0000 (09:25 -0600)
Cargo.lock
src/loader.pl

index e90a93eca2446161e59a84fdb65de7895dc4b0ac..7e94a23e58d237409f2f9f9d0514bac7a763e000 100644 (file)
@@ -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"
index f231ffd16bb05430a6fcbf78cb4f30defa1acb5e..0b725a409cc0ddd875043f02a6e738ea26dcc497 100644 (file)
@@ -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.