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.3 KiB
1.3 KiB
Plan: Complete DP Cache Signature
Scope
Fix issue001 P1-01 only: DP results must not alias when any
algorithm/cost parameter changes. The auto-CWS paragraph-key defect remains
open for a separate atomic task.
Resolution Path
- Drive the public
ekp-dp-cachepath with cached-then-changed parameters. - Prove each scenario differs from its baseline and matches a fresh computation.
- Replace the width/looseness special-case key with one complete flat signature.
- Use structural equality for DP-cache keys and prove identical signatures still hit the cache.
- Run focused tests, the complete suite, C/Elisp fuzz, byte compilation, checkdoc, and diff/static checks.
Data Ownership
The ekp-para DP cache owns reuse. Its key must therefore contain every
runtime value read by the DP that is not already frozen into that paragraph:
- line width and looseness;
- line, hyphen, adjacent-fitness, and consecutive-hyphen penalties;
- last-line minimum ratio and short-line penalty.
Paragraph-construction inputs remain owned by ekp--para-key.
Non-goals
- No cache watchers or eager cache clearing.
- No C ABI change.
- No save/copy integration changes.
- No fix for the separate auto-CWS paragraph cache.
Rollback
Revert the key/table change and the associated regression tests. No stored file format or public API changes.