From: Markus Triska Date: Wed, 19 Jan 2022 22:31:55 +0000 (+0100) Subject: ENHANCED: more specific warning when initialization/1 fails (#1149) X-Git-Tag: v0.9.0^2~50^2 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=0da9d1c036c9c377ce7e8f7eb332a9337bcad9a0;p=scryer-prolog.git ENHANCED: more specific warning when initialization/1 fails (#1149) --- diff --git a/src/loader.pl b/src/loader.pl index dd26bbb8..7c33d51e 100644 --- a/src/loader.pl +++ b/src/loader.pl @@ -92,16 +92,19 @@ run_initialization_goals(Module) :- % FIXME: failing here. also, see add_module. findall(Module:Goal, '$call'(builtins:retract(Module:'$initialization_goals'(Goal))), Goals), abolish(Module:'$initialization_goals'/1), - ( maplist(Module:call, Goals) -> - true - ; %% initialization goals can fail without thwarting the load. - write('Warning: initialization/1 failed for: '), - writeq(maplist(Module:call, Goals)), - nl - ) + maplist(loader:success_or_warning(Module), Goals) ; true ). +success_or_warning(Module, Goal) :- + ( Module:call(Goal) -> + true + ; %% initialization goals can fail without thwarting the load. + write('Warning: initialization/1 failed for: '), + writeq(Goal), + nl + ). + run_initialization_goals :- prolog_load_context(module, Module), run_initialization_goals(user),