mirror of
https://github.com/Z3Prover/z3
synced 2025-08-20 18:20:22 +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
|
@ -276,7 +276,7 @@ namespace smt {
|
|||
--i;
|
||||
expr * n = m_relevant_exprs.get(i);
|
||||
m_is_relevant.remove(n->get_id());
|
||||
TRACE("propagate_relevancy", tout << "unmarking:\n" << mk_ismt2_pp(n, get_manager()) << "\n";);
|
||||
TRACE(propagate_relevancy, tout << "unmarking:\n" << mk_ismt2_pp(n, get_manager()) << "\n";);
|
||||
}
|
||||
m_relevant_exprs.shrink(old_lim);
|
||||
m_qhead = m_relevant_exprs.size();
|
||||
|
@ -424,18 +424,18 @@ namespace smt {
|
|||
\brief Propagate relevancy for an ite-expression.
|
||||
*/
|
||||
void propagate_relevant_ite(app * n) {
|
||||
TRACE("propagate_relevant_ite", tout << "propagating relevancy for #" << n->get_id() << "\n" << mk_pp(n, get_manager()) << "\n";);
|
||||
TRACE(propagate_relevant_ite, tout << "propagating relevancy for #" << n->get_id() << "\n" << mk_pp(n, get_manager()) << "\n";);
|
||||
mark_as_relevant(n->get_arg(0));
|
||||
switch (m_context.find_assignment(n->get_arg(0))) {
|
||||
case l_false:
|
||||
TRACE("propagate_relevant_ite", tout << "marking as relevant: " << mk_pp(n->get_arg(2), get_manager()) << "\n";);
|
||||
TRACE(propagate_relevant_ite, tout << "marking as relevant: " << mk_pp(n->get_arg(2), get_manager()) << "\n";);
|
||||
mark_as_relevant(n->get_arg(2));
|
||||
break;
|
||||
case l_undef:
|
||||
TRACE("propagate_relevant_ite", tout << "ite c is unassigned\n";);
|
||||
TRACE(propagate_relevant_ite, tout << "ite c is unassigned\n";);
|
||||
break;
|
||||
case l_true:
|
||||
TRACE("propagate_relevant_ite", tout << "marking as relevant: " << mk_pp(n->get_arg(1), get_manager()) << "\n";);
|
||||
TRACE(propagate_relevant_ite, tout << "marking as relevant: " << mk_pp(n->get_arg(1), get_manager()) << "\n";);
|
||||
mark_as_relevant(n->get_arg(1));
|
||||
break;
|
||||
}
|
||||
|
@ -456,8 +456,8 @@ namespace smt {
|
|||
ast_manager & m = get_manager();
|
||||
while (m_qhead < m_relevant_exprs.size()) {
|
||||
expr * n = m_relevant_exprs.get(m_qhead);
|
||||
TRACE("propagate_relevancy_to_args", tout << "propagating relevancy to args of #" << n->get_id() << "\n";);
|
||||
TRACE("propagate_relevancy", tout << "marking as relevant:\n" << mk_bounded_pp(n, m) << "\n";);
|
||||
TRACE(propagate_relevancy_to_args, tout << "propagating relevancy to args of #" << n->get_id() << "\n";);
|
||||
TRACE(propagate_relevancy, tout << "marking as relevant:\n" << mk_bounded_pp(n, m) << "\n";);
|
||||
SASSERT(is_relevant_core(n));
|
||||
m_qhead++;
|
||||
if (is_app(n)) {
|
||||
|
@ -528,7 +528,7 @@ namespace smt {
|
|||
SASSERT(is_relevant(n));
|
||||
unsigned num_args = n->get_num_args();
|
||||
for (unsigned i = 0; i < num_args; i++) {
|
||||
CTRACE("relevancy_bug", !is_relevant(n->get_arg(i)), tout << "n: " << mk_ismt2_pp(n, get_manager()) << "\ni: " << i << "\n";);
|
||||
CTRACE(relevancy_bug, !is_relevant(n->get_arg(i)), tout << "n: " << mk_ismt2_pp(n, get_manager()) << "\ni: " << i << "\n";);
|
||||
SASSERT(is_relevant(n->get_arg(i)));
|
||||
}
|
||||
return true;
|
||||
|
@ -545,7 +545,7 @@ namespace smt {
|
|||
if (m_context.find_assignment(arg) == l_true && is_relevant(arg))
|
||||
return true;
|
||||
}
|
||||
TRACE("check_relevancy", tout << "failed:\n" << mk_ll_pp(n, get_manager()); display(tout););
|
||||
TRACE(check_relevancy, tout << "failed:\n" << mk_ll_pp(n, get_manager()); display(tout););
|
||||
UNREACHABLE();
|
||||
}
|
||||
return true;
|
||||
|
@ -572,7 +572,7 @@ namespace smt {
|
|||
switch (m_context.find_assignment(n->get_arg(0))) {
|
||||
case l_false:
|
||||
if (get_manager().is_bool(n)) {
|
||||
TRACE("ite_bug", tout << mk_bounded_pp(n, get_manager()) << "\n";);
|
||||
TRACE(ite_bug, tout << mk_bounded_pp(n, get_manager()) << "\n";);
|
||||
SASSERT(is_relevant(n->get_arg(2)));
|
||||
}
|
||||
else {
|
||||
|
@ -604,7 +604,7 @@ namespace smt {
|
|||
for (unsigned i = 0; i < sz; i++) {
|
||||
expr * n = v.get(i);
|
||||
if (is_relevant(n)) {
|
||||
TRACE("check_relevancy", tout << "checking:\n" << mk_ll_pp(n, get_manager()) << "internalized: " << m_context.find_enode(n) << "\n";);
|
||||
TRACE(check_relevancy, tout << "checking:\n" << mk_ll_pp(n, get_manager()) << "internalized: " << m_context.find_enode(n) << "\n";);
|
||||
if (m.is_or(n)) {
|
||||
SASSERT(check_relevancy_or(to_app(n), false));
|
||||
}
|
||||
|
@ -656,13 +656,13 @@ namespace smt {
|
|||
rp.mark_as_relevant(m_parent->get_arg(0));
|
||||
switch (rp.get_context().get_assignment(m_parent->get_arg(0))) {
|
||||
case l_false:
|
||||
TRACE("ite_term_relevancy", tout << "marking else: #" << m_else_eq->get_id() << "\n";);
|
||||
TRACE(ite_term_relevancy, tout << "marking else: #" << m_else_eq->get_id() << "\n";);
|
||||
rp.mark_as_relevant(m_else_eq);
|
||||
break;
|
||||
case l_undef:
|
||||
break;
|
||||
case l_true:
|
||||
TRACE("ite_term_relevancy", tout << "marking then: #" << m_then_eq->get_id() << "\n";);
|
||||
TRACE(ite_term_relevancy, tout << "marking then: #" << m_then_eq->get_id() << "\n";);
|
||||
rp.mark_as_relevant(m_then_eq);
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue