1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2025-11-14 04:37:10 +00:00

new system for debug logs

This commit is contained in:
Zeno Rogue
2025-10-19 15:47:01 +02:00
parent 94024dd5f1
commit 113e75d5e1
43 changed files with 601 additions and 447 deletions

View File

@@ -558,7 +558,7 @@ EX void shortcut_found(tcell *c, tcell *alt, vector<twalker> &walkers, vector<tw
return;
}
if(debugflags & DF_GEOM)
if(debug_geometry)
println(hlog, "new shortcut found, pre = ", pre, " post = ", post, " pre reaches ", walkers[wpos], " post reaches ", walkers2.back(), " of type ", walkers[wpos].at->id, " sample = ", c);
if(isize(pre) > max_shortcut_length) {
@@ -575,7 +575,7 @@ EX void shortcut_found(tcell *c, tcell *alt, vector<twalker> &walkers, vector<tw
sh->last_dir = c->any_nearer;
auto& sh1 = *sh;
if(debugflags & DF_GEOM) println(hlog, "exhaustive search:");
if(debug_geometry) println(hlog, "exhaustive search:");
indenter ind(2);
tcell* c1 = first_tcell;
while(c1) {
@@ -595,11 +595,11 @@ EX void find_new_shortcuts(tcell *c, int d, tcell *alt, int newdir, int delta) {
if(flags & w_known_distances) return;
ufindc(c);
if(debugflags & DF_GEOM)
if(debug_geometry)
println(hlog, "solid ", c, " changes ", c->dist, " to ", d, " alt=", alt);
if(newdir == c->any_nearer) {
if(debugflags & DF_GEOM)
if(debug_geometry)
println(hlog, "same direction");
return;
}
@@ -785,7 +785,7 @@ EX void be_solid(tcell *c) {
look_for_shortcuts(c);
ufindc(c);
if(c->dist == MYSTERY) {
if(debugflags & DF_GEOM)
if(debug_geometry)
println(hlog, "set solid but no dist ", c);
debuglist = { c };
throw rulegen_failure("set solid but no dist");
@@ -832,7 +832,7 @@ EX void look_for_shortcuts(tcell *c, shortcut& sh) {
process_fix_queue();
if(tw.at->dist < c->dist) {
if(debugflags & DF_GEOM)
if(debug_geometry)
println(hlog, "smart shortcut updated ", c->dist, " to ", tw.at->dist);
}
push_unify(tw, tw0);
@@ -1236,7 +1236,7 @@ int get_side(twalker what) {
cw = get_parent_dir(cw);
if(cw.peek()->dist >= cw.at->dist) {
handle_distance_errors();
if(debugflags & DF_GEOM)
if(debug_geometry)
println(hlog, "get_parent_dir error at ", cw, " and ", cw.at->move(cw.spin), ": ", cw.at->dist, "::", cw.at->move(cw.spin)->dist);
throw rulegen_failure("get_parent_dir error");
}
@@ -1513,7 +1513,7 @@ EX void rules_iteration_for(twalker& cw) {
else if(ts.rules != cids) {
handle_distance_errors();
auto& r = ts.rules;
if(debugflags & DF_GEOM) {
if(debug_geometry) {
println(hlog, "merging ", ts.rules, " vs ", cids);
}
int mismatches = 0;
@@ -1555,7 +1555,7 @@ EX void rules_iteration_for(twalker& cw) {
void minimize_rules() {
states_premini = isize(treestates);
if(debugflags & DF_GEOM)
if(debug_geometry)
println(hlog, "minimizing rules...");
int next_id = isize(treestates);
@@ -1599,7 +1599,7 @@ void minimize_rules() {
}
}
if(debugflags & DF_GEOM)
if(debug_geometry)
println(hlog, "final new_ids = ", new_ids, " / ", next_id);
if(1) {
@@ -1686,7 +1686,7 @@ void find_possible_parents() {
int pp = 0;
for(auto& ts: treestates) if(ts.is_possible_parent) pp++;
if(debugflags & DF_GEOM)
if(debug_geometry)
println(hlog, pp, " of ", isize(treestates), " states are possible_parents");
}
@@ -1756,10 +1756,10 @@ void verified_treewalk(twalker& tw, int id, int dir) {
if((flags & w_examine_all) || !branch_conflicts_seen.count(conflict_id)) {
branch_conflicts_seen.insert(conflict_id);
important.push_back(tw.at);
if(debugflags & DF_GEOM)
if(debug_geometry)
println(hlog, "branch conflict ", conflict_id, " found");
}
else if(debugflags & DF_GEOM)
else if(debug_geometry)
println(hlog, "branch conflict ", conflict_id, " found again");
debuglist = {tw, tw+wstep};
throw verify_advance_failed();
@@ -1772,7 +1772,7 @@ bool examine_branch(int id, int left, int right) {
if(WDIM == 3) return true;
auto rg = treestates[id].giver;
if(debugflags & DF_GEOM)
if(debug_geometry)
println(hlog, "need to examine branches ", tie(left, right), " of ", id, " starting from ", rg, " step = ", rg+left+wstep, " vs ", rg+right+wstep);
indenter ind(2);
@@ -1972,10 +1972,10 @@ EX void rules_iteration() {
}
handle_distance_errors();
if(debugflags & DF_GEOM)
if(debug_geometry)
println(hlog, "number of treestates = ", isize(treestates));
rule_root = get_treestate_id(t_origin[0]).second;
if(debugflags & DF_GEOM)
if(debug_geometry)
println(hlog, "rule_root = ", rule_root);
for(int id=0; id<isize(treestates); id++) {
@@ -2064,7 +2064,7 @@ EX void rules_iteration() {
}
if(qbranches == 2) double_live_branches++;
if((flags & w_slow_side) && first_live_branch == last_live_branch && treestates[id].is_root) {
if(debugflags & DF_GEOM)
if(debug_geometry)
println(hlog, "for id ", id, " we have a single live branch");
single_live_branches++;
indenter ind(2);
@@ -2074,7 +2074,7 @@ EX void rules_iteration() {
if(isize(single_live_branch_close_to_root) != q) {
vector<tcell*> v;
for(auto c: single_live_branch_close_to_root) v.push_back(c);
if(debugflags & DF_GEOM)
if(debug_geometry)
println(hlog, "changed single_live_branch_close_to_root from ", q, " to ", v);
debuglist = { treestates[id].giver };
clear_sidecache_and_codes();
@@ -2506,7 +2506,7 @@ EX bool prepare_rules() {
rules_known_for = arb::current.name;
rule_status = XLAT("rules generated successfully: %1 states using %2-%3 cells",
its(isize(treestates)), its(tcellcount), its(tunified));
if(debugflags & DF_GEOM) println(hlog, rule_status);
if(debug_geometry) println(hlog, rule_status);
return true;
}
catch(rulegen_retry& e) {
@@ -2518,7 +2518,7 @@ EX bool prepare_rules() {
catch(rulegen_failure& e) {
rule_status = XLAT("bug: %1", e.what());
}
if(debugflags & DF_GEOM) println(hlog, rule_status);
if(debug_geometry) println(hlog, rule_status);
return false;
}
@@ -2612,9 +2612,9 @@ EX void parse_treestate(arb::arbi_tiling& c, exp_parser& ep) {
if(qparent > 1) throw hr_parse_exception("multiple parent at " + ep.where());
if(qparent == 1) {
ts.parent_dir = sumparent;
if(debugflags & DF_GEOM) println(hlog, "before: ", ts.rules);
if(debug_geometry) println(hlog, "before: ", ts.rules);
std::rotate(ts.rules.begin(), ts.rules.begin() + sumparent, ts.rules.end());
if(debugflags & DF_GEOM) println(hlog, "after : ", ts.rules);
if(debug_geometry) println(hlog, "after : ", ts.rules);
}
ep.force_eat(")");
}