mirror of
https://github.com/Z3Prover/z3
synced 2025-10-09 17:31:57 +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
|
@ -39,9 +39,9 @@ bool horner::row_has_monomial_to_refine(const T& row) const {
|
|||
// Returns true if the row has at least two monomials sharing a variable
|
||||
template <typename T>
|
||||
bool horner::row_is_interesting(const T& row) const {
|
||||
TRACE("nla_solver_details", c().print_row(row, tout););
|
||||
TRACE(nla_solver_details, c().print_row(row, tout););
|
||||
if (row.size() > c().params().arith_nl_horner_row_length_limit()) {
|
||||
TRACE("nla_solver_details", tout << "disregard\n";);
|
||||
TRACE(nla_solver_details, tout << "disregard\n";);
|
||||
return false;
|
||||
}
|
||||
SASSERT(row_has_monomial_to_refine(row));
|
||||
|
@ -68,7 +68,7 @@ bool horner::row_is_interesting(const T& row) const {
|
|||
}
|
||||
|
||||
bool horner::lemmas_on_expr(cross_nested& cn, nex_sum* e) {
|
||||
TRACE("nla_horner", tout << "e = " << *e << "\n";);
|
||||
TRACE(nla_horner, tout << "e = " << *e << "\n";);
|
||||
cn.run(e);
|
||||
return cn.done();
|
||||
}
|
||||
|
@ -81,7 +81,7 @@ bool horner::lemmas_on_row(const T& row) {
|
|||
create_sum_from_row(row, m_nex_creator, m_row_sum, dep);
|
||||
c().set_active_vars_weights(m_nex_creator); // without this call the comparisons will be incorrect
|
||||
nex* e = m_nex_creator.simplify(m_row_sum.mk());
|
||||
TRACE("nla_horner", tout << "e = " << * e << "\n";);
|
||||
TRACE(nla_horner, tout << "e = " << * e << "\n";);
|
||||
if (e->get_degree() < 2)
|
||||
return false;
|
||||
if (!e->is_sum())
|
||||
|
@ -99,7 +99,7 @@ bool horner::lemmas_on_row(const T& row) {
|
|||
|
||||
bool horner::horner_lemmas() {
|
||||
if (!c().params().arith_nl_horner()) {
|
||||
TRACE("nla_solver", tout << "not generating horner lemmas\n";);
|
||||
TRACE(nla_solver, tout << "not generating horner lemmas\n";);
|
||||
return false;
|
||||
}
|
||||
c().lp_settings().stats().m_horner_calls++;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue