mirror of
https://github.com/Z3Prover/z3
synced 2025-06-27 00:18:45 +00:00
Centralize and document TRACE tags using X-macros (#7657)
* Introduce X-macro-based trace tag definition - Created trace_tags.def to centralize TRACE tag definitions - Each tag includes a symbolic name and description - Set up enum class TraceTag for type-safe usage in TRACE macros * Add script to generate Markdown documentation from trace_tags.def - Python script parses trace_tags.def and outputs trace_tags.md * Refactor TRACE_NEW to prepend TraceTag and pass enum to is_trace_enabled * trace: improve trace tag handling system with hierarchical tagging - Introduce hierarchical tag-class structure: enabling a tag class activates all child tags - Unify TRACE, STRACE, SCTRACE, and CTRACE under enum TraceTag - Implement initial version of trace_tag.def using X(tag, tag_class, description) (class names and descriptions to be refined in a future update) * trace: replace all string-based TRACE tags with enum TraceTag - Migrated all TRACE, STRACE, SCTRACE, and CTRACE macros to use enum TraceTag values instead of raw string literals * trace : add cstring header * trace : Add Markdown documentation generation from trace_tags.def via mk_api_doc.py * trace : rename macro parameter 'class' to 'tag_class' and remove Unicode comment in trace_tags.h. * trace : Add TODO comment for future implementation of tag_class activation * trace : Disable code related to tag_class until implementation is ready (#7663).
This commit is contained in:
parent
d766292dab
commit
0a93ff515d
583 changed files with 8698 additions and 7299 deletions
|
@ -136,7 +136,7 @@ namespace sat {
|
|||
// visited all successors
|
||||
if (lowlink[l_idx] == index[l_idx]) {
|
||||
// found new SCC
|
||||
CTRACE("scc_cycle", s.back() != l_idx, {
|
||||
CTRACE(scc_cycle, s.back() != l_idx, {
|
||||
tout << "cycle: ";
|
||||
unsigned j = s.size() - 1;
|
||||
unsigned l2_idx;
|
||||
|
@ -153,7 +153,7 @@ namespace sat {
|
|||
bool_var v = l.var();
|
||||
if (roots[v] != null_literal) {
|
||||
// variable was already assigned... just consume stack
|
||||
TRACE("scc_detail", tout << "consuming stack...\n";);
|
||||
TRACE(scc_detail, tout << "consuming stack...\n";);
|
||||
unsigned l2_idx;
|
||||
do {
|
||||
l2_idx = s.back();
|
||||
|
@ -164,7 +164,7 @@ namespace sat {
|
|||
}
|
||||
else {
|
||||
// check if the SCC has an external variable, and check for conflicts
|
||||
TRACE("scc_detail", tout << "assigning roots...\n";);
|
||||
TRACE(scc_detail, tout << "assigning roots...\n";);
|
||||
literal r = null_literal;
|
||||
unsigned j = s.size() - 1;
|
||||
unsigned l2_idx;
|
||||
|
@ -186,7 +186,7 @@ namespace sat {
|
|||
r = to_literal(l_idx);
|
||||
}
|
||||
|
||||
TRACE("scc_detail", tout << "r: " << r << "\n";);
|
||||
TRACE(scc_detail, tout << "r: " << r << "\n";);
|
||||
|
||||
do {
|
||||
l2_idx = s.back();
|
||||
|
@ -228,23 +228,23 @@ namespace sat {
|
|||
return 0;
|
||||
CASSERT("scc_bug", m_solver.check_invariant());
|
||||
report rpt(*this);
|
||||
TRACE("scc", m_solver.display(tout););
|
||||
TRACE("scc_details", m_solver.display_watches(tout););
|
||||
TRACE(scc, m_solver.display(tout););
|
||||
TRACE(scc_details, m_solver.display_watches(tout););
|
||||
literal_vector roots;
|
||||
bool_var_vector to_elim;
|
||||
if (!extract_roots(roots, to_elim))
|
||||
return 0;
|
||||
TRACE("scc", for (unsigned i = 0; i < roots.size(); i++) { tout << i << " -> " << roots[i] << "\n"; }
|
||||
TRACE(scc, for (unsigned i = 0; i < roots.size(); i++) { tout << i << " -> " << roots[i] << "\n"; }
|
||||
tout << "to_elim: "; for (unsigned v : to_elim) tout << v << " "; tout << "\n";);
|
||||
m_num_elim += to_elim.size();
|
||||
elim_eqs eliminator(m_solver);
|
||||
eliminator(roots, to_elim);
|
||||
TRACE("scc_detail", m_solver.display(tout););
|
||||
TRACE(scc_detail, m_solver.display(tout););
|
||||
CASSERT("scc_bug", m_solver.check_invariant());
|
||||
|
||||
if (m_scc_tr)
|
||||
reduce_tr();
|
||||
TRACE("scc_detail", m_solver.display(tout););
|
||||
TRACE(scc_detail, m_solver.display(tout););
|
||||
return to_elim.size();
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue