diff options
| author | Ralph Amissah <ralph.amissah@gmail.com> | 2026-08-28 19:07:05 -0400 |
|---|---|---|
| committer | Ralph Amissah <ralph.amissah@gmail.com> | 2026-08-28 20:15:35 -0400 |
| commit | 45a73e4464fb662d481d31ebf8d3ef204296159a (patch) | |
| tree | 0aa0ef5111f55a6ad6cfce4110fa961d9e2001b1 /src/sisudoc | |
| parent | test build .ssp requires --serial (--no-parallel) run (diff) | |
.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)
Diffstat (limited to 'src/sisudoc')
| -rw-r--r-- | src/sisudoc/ocda/meta/metadoc_from_src.d | 9 | ||||
| -rw-r--r-- | src/sisudoc/ocda/meta/metadoc_from_src_functions.d | 4 | ||||
| -rw-r--r-- | src/sisudoc/spine.d | 2 |
3 files changed, 7 insertions, 8 deletions
diff --git a/src/sisudoc/ocda/meta/metadoc_from_src.d b/src/sisudoc/ocda/meta/metadoc_from_src.d index e104c94..7fcf3bb 100644 --- a/src/sisudoc/ocda/meta/metadoc_from_src.d +++ b/src/sisudoc/ocda/meta/metadoc_from_src.d @@ -136,6 +136,11 @@ template docAbstraction() { "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, @@ -1506,10 +1511,6 @@ template docAbstraction() { 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 diff --git a/src/sisudoc/ocda/meta/metadoc_from_src_functions.d b/src/sisudoc/ocda/meta/metadoc_from_src_functions.d index 9824d61..cf46fda 100644 --- a/src/sisudoc/ocda/meta/metadoc_from_src_functions.d +++ b/src/sisudoc/ocda/meta/metadoc_from_src_functions.d @@ -90,10 +90,6 @@ template docAbstractionFunctions() { // ocn OCNset obj_cite_digits; int obj_cite_digit_, obj_cite_digit_off, obj_cite_digit_bkidx, obj_cite_digit_type; - int[] dom_structure_markedup_tags_status = [ 0, 0, 0, 0, 0, 0, 0, 0, 0,]; - int[] dom_structure_markedup_tags_status_buffer = [ 0, 0, 0, 0, 0, 0, 0, 0, 0,]; - int[] dom_structure_collapsed_tags_status = [ 0, 0, 0, 0, 0, 0, 0, 0, 0,]; - int[] dom_structure_collapsed_tags_status_buffer = [ 0, 0, 0, 0, 0, 0, 0, 0, 0,]; static auto obj_im = ObjInlineMarkup(); static auto obj_att = ObjAttributes(); auto object_citation_number = OCNemitter(); diff --git a/src/sisudoc/spine.d b/src/sisudoc/spine.d index c80814e..17950d0 100644 --- a/src/sisudoc/spine.d +++ b/src/sisudoc/spine.d @@ -821,6 +821,8 @@ string program_name = "spine"; @trusted bool meta_processing_xml_dom() { return ( opts["abstraction"] + || show_abstraction + || show_abstraction_db || html || epub || odt |
