mirror of
https://github.com/Z3Prover/z3
synced 2026-02-16 22:01: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:
parent
d766292dab
commit
0a93ff515d
583 changed files with 8698 additions and 7299 deletions
|
|
@ -48,18 +48,18 @@ namespace sat {
|
|||
}
|
||||
}
|
||||
}
|
||||
TRACE("sat", tout << "clause " << c << " not found in watch-list\n");
|
||||
TRACE("sat", s.display_watches(tout));
|
||||
TRACE(sat, tout << "clause " << c << " not found in watch-list\n");
|
||||
TRACE(sat, s.display_watches(tout));
|
||||
UNREACHABLE();
|
||||
return false;
|
||||
}
|
||||
|
||||
bool integrity_checker::check_clause(clause const & c) const {
|
||||
CTRACE("sat_bug", c.was_removed(), s.display(tout << "c: " << c.id() << ": " << c << "\n"));
|
||||
CTRACE(sat_bug, c.was_removed(), s.display(tout << "c: " << c.id() << ": " << c << "\n"));
|
||||
SASSERT(!c.was_removed());
|
||||
for (unsigned i = 0; i < c.size(); i++) {
|
||||
VERIFY(c[i].var() <= s.num_vars());
|
||||
CTRACE("sat_bug", s.was_eliminated(c[i].var()),
|
||||
CTRACE(sat_bug, s.was_eliminated(c[i].var()),
|
||||
tout << "l: " << c[i].var() << "\n";
|
||||
tout << "c: " << c << "\n";
|
||||
s.display(tout););
|
||||
|
|
@ -84,7 +84,7 @@ namespace sat {
|
|||
// the clause has been satisfied or all other literals are assigned to false.
|
||||
if (!on_prop_stack && s.status(c) != l_true) {
|
||||
for (unsigned i = 2; i < c.size(); i++) {
|
||||
CTRACE("sat_bug", s.value(c[i]) != l_false,
|
||||
CTRACE(sat_bug, s.value(c[i]) != l_false,
|
||||
tout << c << " status: " << s.status(c) << "\n";
|
||||
for (unsigned i = 0; i < c.size(); i++) tout << "val(" << i << "): " << s.value(c[i]) << "\n";);
|
||||
VERIFY(s.value(c[i]) == l_false);
|
||||
|
|
@ -151,7 +151,7 @@ namespace sat {
|
|||
switch (w.get_kind()) {
|
||||
case watched::BINARY:
|
||||
VERIFY(!s.was_eliminated(w.get_literal().var()));
|
||||
CTRACE("sat_watched_bug", !s.get_wlist(~(w.get_literal())).contains(watched(l, w.is_learned())),
|
||||
CTRACE(sat_watched_bug, !s.get_wlist(~(w.get_literal())).contains(watched(l, w.is_learned())),
|
||||
tout << "l: " << l << " l2: " << w.get_literal() << "\n";
|
||||
tout << "was_eliminated1: " << s.was_eliminated(l.var());
|
||||
tout << " was_eliminated2: " << s.was_eliminated(w.get_literal().var());
|
||||
|
|
@ -176,7 +176,7 @@ namespace sat {
|
|||
unsigned l_idx = 0;
|
||||
for (watch_list const& wlist : s.m_watches) {
|
||||
literal l = ~to_literal(l_idx++);
|
||||
CTRACE("sat_bug",
|
||||
CTRACE(sat_bug,
|
||||
s.was_eliminated(l.var()) && !wlist.empty(),
|
||||
tout << "l: " << l << "\n";
|
||||
s.display_watches(tout);
|
||||
|
|
@ -203,7 +203,7 @@ namespace sat {
|
|||
}
|
||||
for (clause* cp : s.m_learned) {
|
||||
if (ids.contains(cp->id())) {
|
||||
TRACE("sat", tout << "Repeated clause: " << cp->id() << "\n";);
|
||||
TRACE(sat, tout << "Repeated clause: " << cp->id() << "\n";);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue