I’m using: SWI-Prolog version 8.1.13
When I attempt to trace within one particular program, the process hangs. At the bottom it says, “Cross referencing buffer”. After about 10 minutes it finishes cross-referencing and I can see the trace.
I suspect the cause is goal_expansion stuff. Given that, I don’t know how to approach resolving the problem. The program won’t function without the rewrites.
:- module(plateOrder, [allowed_mold_base/1,
allowed_mold_base/4,
allowed_insertion/3,
named_plates/2
]).
:- include(loop_expansion).
:- include(goal_expansion).
allowed_mold_base(PlateList, CavReversed, Stack, CoreSidePlates) :-
%% divide full plate list into two halves
trace,
.... % really simple function.
… other code that involves this expansion stuff.
%loop_expansion.pl
% to use this, must include this file from within other *modules*.
:- include(ops).
:- module_transparent t00/2.
t00(Extra0, Extra1) :-
gen:transform_term(Extra0, [], [], [Extra1], [])
goal_expansion(loop X, Result) :-
gen:transform_hook(loop X, Extra0, [Result], [])
, maplist(t00, Extra0, Extras)
, compile_aux_clauses(Extras).
.
%goal_expansion.pl
% to use this, must include this file from within other *modules*.
goal_expansion(X, Result) :-
gen:transform_term(X, [], [], [Result], []).