Complete task002 through task016 across cache correctness, editor lifecycle, C boundaries, build and release governance, dictionary provenance, performance, interactive workflows, tests, documentation, and final cleanup.
1.7 KiB
1.7 KiB
Change Log: Property-Sensitive Paragraph Fast Path 2026-07-28
task016
-
Modify —
ekp.el- Store the complete structural paragraph key beside the most-recent string and paragraph.
- Compare the same key used by the paragraph hash cache before reusing the fast-path result.
- Delete six style-variable watchers that compensated for the former partial identity.
-
Modify —
tests/ekp-tests.el- Warm one string object, mutate its
ekp-no-breakproperty in place, and require the next lookup to match a fresh property-aware paragraph for CJK and Latin-with-space inputs. - Retain distinct-string property, language, style, and unchanged-key hit controls.
- Warm one string object, mutate its
-
Modify/Add — README, developer, audit, issue, phase, and postmortem records
- Document one cache-identity owner and close
issue010. - Record the wrong-layer compensation in
postmortem/20260728-paragraph-fast-path-identity.md.
- Document one cache-identity owner and close
Validation
- Same-object property mutation red/green: 0/1 → 1/1.
- Focused paragraph-cache matrix: 6/6.
- Default and seeded-permuted full ERT: 130/130 each.
- Fresh-process isolation: every one of 130 ERT tests passed.
- C/Elisp fuzz: 300/300.
- Warning-as-error production compilation, checkdoc, pinned package-lint, four C profiles, release/dictionary/static gates, and GUI matrix 7/7: pass.
- Independent architecture review:
CLEARfor the shared-key ownership.
Behavior and Risk
- Public APIs, saved-file formats, C ABI, and Emacs 29.1 baseline are unchanged.
- Cache hits now require the complete text/configuration identity already
owned by
ekp--para-key. - The change removes invalidation branches instead of adding watchers or a second identity model.