For a test case which uses predicate_property/2 size argument the size will change after running make. but there was no change to the code. I am just wondering what could cause this, or if I look into why, what should I pay attention?
Note: The predicates are used with meta_predicate/1.
This includes the memory of the predicate header, the combined memory of all clauses including erased but not yet garbage collected clauses (see garbage_collect_clauses/0 and clause_property/2) and the memory used by clause indexes (see the indexed(Indexes) property. Excluded are lingering data structures. These are garbage data structures that have been detached from the predicate but cannot yet be reclaimed because they may be in use by some thread.
Re-loading code may lead to erased (old) code being counted as well. Anything running code may lead to new indexes. The purpose of this property is to be able to write tools that show a breakdown of the memory used by SWI-Prolog.
I did read that (predicate_property/2 size) just before posting but could not relate what it means to what I am doing. So I will dissect the differences to learn more.
EDIT
Tried using clause/2 to identify the code change but no joy.
Did find chainMetaPredicateSupervisor at the C source code level which uses MA_NEEDS_TRANSPARENT . (ref)