3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-15 15:25:26 +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

@ -833,7 +833,7 @@ lbool hilbert_basis::saturate_orig(num_vector const& ineq, bool is_eq) {
m_zero.reset();
m_index->reset(m_current_ineq+1);
int_table support;
TRACE("hilbert_basis", display_ineq(tout, ineq, is_eq););
TRACE(hilbert_basis, display_ineq(tout, ineq, is_eq););
iterator it = begin();
for (; it != end(); ++it) {
offset_t idx = *it;
@ -847,7 +847,7 @@ lbool hilbert_basis::saturate_orig(num_vector const& ineq, bool is_eq) {
support.insert(idx.m_offset);
}
}
TRACE("hilbert_basis", display(tout););
TRACE(hilbert_basis, display(tout););
// resolve passive into active
offset_t j = alloc_vector();
while (!m_passive->empty()) {
@ -855,7 +855,7 @@ lbool hilbert_basis::saturate_orig(num_vector const& ineq, bool is_eq) {
return l_undef;
}
offset_t idx = m_passive->pop();
TRACE("hilbert_basis", display(tout););
TRACE(hilbert_basis, display(tout););
if (is_subsumed(idx)) {
recycle(idx);
continue;
@ -886,7 +886,7 @@ lbool hilbert_basis::saturate_orig(num_vector const& ineq, bool is_eq) {
m_active.reset();
m_passive->reset();
m_zero.reset();
TRACE("hilbert_basis", display(tout););
TRACE(hilbert_basis, display(tout););
return m_basis.empty()?l_false:l_true;
}
@ -906,7 +906,7 @@ lbool hilbert_basis::saturate(num_vector const& ineq, bool is_eq) {
m_index->reset(m_current_ineq+1);
m_passive2->reset();
m_sos.reset();
TRACE("hilbert_basis", display_ineq(tout, ineq, is_eq););
TRACE(hilbert_basis, display_ineq(tout, ineq, is_eq););
unsigned init_basis_size = 0;
for (unsigned i = 0; i < m_basis.size(); ++i) {
offset_t idx = m_basis[i];
@ -937,12 +937,12 @@ lbool hilbert_basis::saturate(num_vector const& ineq, bool is_eq) {
}
}
TRACE("hilbert_basis", display(tout););
TRACE(hilbert_basis, display(tout););
// resolve passive into active
offset_t idx = alloc_vector();
while (checkpoint() && !m_passive2->empty()) {
offset_t sos, pas;
TRACE("hilbert_basis", display(tout); );
TRACE(hilbert_basis, display(tout); );
unsigned offset = m_passive2->pop(sos, pas);
SASSERT(can_resolve(sos, pas, true));
resolve(sos, pas, idx);
@ -978,7 +978,7 @@ lbool hilbert_basis::saturate(num_vector const& ineq, bool is_eq) {
m_basis.append(m_zero);
std::sort(m_basis.begin(), m_basis.end(), vector_lt_t(*this));
m_zero.reset();
TRACE("hilbert_basis", display(tout););
TRACE(hilbert_basis, display(tout););
return m_basis.empty()?l_false:l_true;
}
@ -1087,7 +1087,7 @@ void hilbert_basis::resolve(offset_t i, offset_t j, offset_t r) {
for (unsigned k = 0; k < m_current_ineq; ++k) {
u.weight(k) = v.weight(k) + w.weight(k);
}
TRACE("hilbert_basis_verbose",
TRACE(hilbert_basis_verbose,
display(tout, i);
display(tout, j);
display(tout, r);
@ -1115,7 +1115,7 @@ bool hilbert_basis::checkpoint() {
}
bool hilbert_basis::add_goal(offset_t idx) {
TRACE("hilbert_basis", display(tout, idx););
TRACE(hilbert_basis, display(tout, idx););
values v = vec(idx);
if (is_subsumed(idx)) {
return false;
@ -1308,7 +1308,7 @@ bool hilbert_basis::is_subsumed(offset_t i, offset_t j) const {
for (unsigned k = 0; r && k < m_current_ineq; ++k) {
r = v.weight(k) >= w.weight(k);
}
CTRACE("hilbert_basis", r,
CTRACE(hilbert_basis, r,
display(tout, i);
tout << " <= \n";
display(tout, j);