3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-02-16 13:51:44 +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:
LeeYoungJoon 2025-05-28 22:31:25 +09:00 committed by GitHub
parent d766292dab
commit 0a93ff515d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
583 changed files with 8698 additions and 7299 deletions

View file

@ -305,7 +305,7 @@ namespace dd {
goto go_down;
}
go_up:
TRACE("bdd", tout << "sift up " << lvl << "\n";);
TRACE(bdd, tout << "sift up " << lvl << "\n";);
while (lvl < max_lvl) {
sift_up(lvl++);
double cost = current_cost();
@ -326,7 +326,7 @@ namespace dd {
return;
}
go_down:
TRACE("bdd", tout << "sift down " << lvl << "\n";);
TRACE(bdd, tout << "sift down " << lvl << "\n";);
while (lvl > 0) {
sift_up(--lvl);
double cost = current_cost();
@ -370,7 +370,7 @@ namespace dd {
reorder_decref(h);
m_T.push_back(n);
}
TRACE("bdd", tout << "remove " << n << "\n";);
TRACE(bdd, tout << "remove " << n << "\n";);
m_node_table.remove(m_nodes[n]);
}
m_level2nodes[lvl + 1].reset();
@ -384,7 +384,7 @@ namespace dd {
m_to_free.push_back(n);
}
else {
TRACE("bdd", tout << "set level " << n << " to " << lvl + 1 << "\n";);
TRACE(bdd, tout << "set level " << n << " to " << lvl + 1 << "\n";);
m_node_table.insert(node);
m_level2nodes[lvl + 1].push_back(n);
}
@ -435,7 +435,7 @@ namespace dd {
m_nodes[n].m_hi = bd;
reorder_incref(ac);
reorder_incref(bd);
TRACE("bdd", tout << "transform " << n << " " << " " << a << " " << b << " " << c << " " << d << " " << ac << " " << bd << "\n";);
TRACE(bdd, tout << "transform " << n << " " << " " << a << " " << b << " " << c << " " << d << " " << ac << " " << bd << "\n";);
m_node_table.insert(m_nodes[n]);
}
unsigned v = m_level2var[lvl];
@ -467,7 +467,7 @@ namespace dd {
}
}
}
TRACE("bdd", tout << "sift " << lvl << "\n"; display(tout); );
TRACE(bdd, tout << "sift " << lvl << "\n"; display(tout); );
DEBUG_CODE(
for (unsigned i = 0; i < m_level2nodes.size(); ++i) {
for (unsigned n : m_level2nodes[i]) {
@ -476,7 +476,7 @@ namespace dd {
}
});
TRACE("bdd",
TRACE(bdd,
for (unsigned i = 0; i < m_nodes.size(); ++i) {
if (m_reorder_rc[i] != 0) {
tout << i << " " << m_reorder_rc[i] << "\n";
@ -503,7 +503,7 @@ namespace dd {
reorder_incref(n.m_lo);
reorder_incref(n.m_hi);
}
TRACE("bdd",
TRACE(bdd,
display(tout);
for (unsigned i = 0; i < sz; ++i) {
bdd_node const& n = m_nodes[i];