From 45a73e4464fb662d481d31ebf8d3ef204296159a Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Fri, 28 Aug 2026 19:07:05 -0400 Subject: .ssp: doc structure related fixes (& to epub toc_nav) for document abstraction and its .ssp output, removed the requirement of including --abstraction & --serial flags to produce correct output (for: .dom_status, .dom_status_collapsed & .last_descendant) - meta_processing_xml_dom() includes show_abstraction, so --pod2 and --show-abstraction run the dom pass; last_descendant is derived from that pass via after_doc_get_descendants() The accumulators are now verified as eight wide locals of docAbstraction(), so each document starts clean and no two threads share one. - bug: the four dom accumulators were template scope (shared) and nine wide, while their end of document reset was eight wide, so the first document of a run differed from the rest and parallel runs raced on one buffer, (which also mis-nested epub toc_nav) test/ reference .ssp regenerated: accelerando only, trailing zero dropped. test-abstraction-ssp.sh now runs parallel and diffs output against a serial run. (assisted by Claude-Code) --- org/ocda.org | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'org/ocda.org') diff --git a/org/ocda.org b/org/ocda.org index 1e9d79e..3a287e8 100644 --- a/org/ocda.org +++ b/org/ocda.org @@ -221,6 +221,11 @@ string[string] object_number_poem = [ "end" : "" ]; string[] lv_ancestors_txt = [ "", "", "", "", "", "", "", "", ]; +/+ ↓ dom structure state, per document (not shared, parallel safe) +/ +int[] dom_structure_markedup_tags_status = [ 0, 0, 0, 0, 0, 0, 0, 0,]; +int[] dom_structure_markedup_tags_status_buffer = [ 0, 0, 0, 0, 0, 0, 0, 0,]; +int[] dom_structure_collapsed_tags_status = [ 0, 0, 0, 0, 0, 0, 0, 0,]; +int[] dom_structure_collapsed_tags_status_buffer = [ 0, 0, 0, 0, 0, 0, 0, 0,]; int[string] lv = [ "lv" : eN.bi.off, "h0" : eN.bi.off, @@ -1619,10 +1624,6 @@ obj_cite_digit_ = 0; html_segnames_ptr = 0; html_segnames_ptr_cntr = 0; content_non_header = "8"; -dom_structure_markedup_tags_status = [ 0, 0, 0, 0, 0, 0, 0, 0,]; -dom_structure_markedup_tags_status_buffer = [ 0, 0, 0, 0, 0, 0, 0, 0,]; -dom_structure_collapsed_tags_status = [ 0, 0, 0, 0, 0, 0, 0, 0,]; -dom_structure_collapsed_tags_status_buffer = [ 0, 0, 0, 0, 0, 0, 0, 0,]; lev_anchor_tag = ""; anchor_tag = ""; // identify parts -- cgit v1.2.3