Core dump in dev release 9.3.24 (original) (raw)
OK, so I ran my program with debug(_)
and it seems this was the last predicate that was called before the core dump:
verify_program(Cs,W,Es):-
PM = experiment_file
,debug_clauses(verify_program_full,'Verifying program:',Cs)
,S = (assert_program(PM,Cs,Rs)
,table_untable_predicates(table,PM,Cs)
)
,( poker_configuration:multithreading(W)
-> G = (concurrent_forall(member(E,Es)
,(debug(examples,'Verifying Example: ~w', [E])
,call(PM:E)
)
)
)
; G = forall(member(E,Es)
,(debug(examples,'Verifying Example: ~w', [E])
,call(PM:E)
)
)
)
,C = (erase_program_clauses(Rs)
,table_untable_predicates(untable,PM,Cs)
)
,setup_call_cleanup(S,G,C)
,debug(verify_program,'Verified program accepts all examples',[]).
%! table_untable_predicates(+What,+Module,+Clauses) is det.
%
% Table or untable the predicates defined in a set of Clauses.
%
% What is one of: [table, untable].
%
% Module is the module where the programs that are to be tabled or
% untabled are defined.
%
% Clauses is a list of clauses that potentially use the predicates
% to table or untable in their body literals.
%
table_untable_predicates(W,M,Cs):-
program_symbols(Cs,Ss)
,forall(member(S,Ss)
,table_untable(W,M,S)
).
%! table_untable(+What,+Module,+Symbol) is det.
%
% Table or untable a predicate Symbol.
%
table_untable(_,_M,F/A):-
% Attempt to identify BK predicates. Those are already defined with
% their own properties, and trying to table them raises a permission
% error.
functor(T,F,A)
,poker_configuration:experiment_file(_P,M)
,predicate_property(M:T,static)
,!.
table_untable(table,M,S):-
M:table(S)
,!.
table_untable(untable,M,S):-
M:untable(S).
I know you’ve said before not to use table/untable that way. I’ve been bad, sorry :0
Is that what’s possibly causing the core dump?
P.S. Also running again now with:
leash(-all)
visible(+all)
trace.
Will let you know if anything else shows up.