run user-level and module-level initialization goals from loader.pl (#1012)

This commit is contained in:
Mark Thom
2021-08-01 09:25:55 -06:00
parent f42b7f4efa
commit 9a66a626f7
2 changed files with 9 additions and 4 deletions

2
Cargo.lock generated
View 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"

View 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.