HermitCrab: complete cross-engine correctness controls for final-template pruning
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Bug
- Clarity
- Needs clarification
- Activity status
- Active
- Tech stack
- csharp
- Domain
- compilers, testing-qa
Research direction
Start with conformance/edge-cases/final-template-partial-discriminators and conformance/docs/final-template-partial-discriminators.md, then compare the Machine and PanGloss paths related to #491 and #456. Determine how to observe pruning-branch hits and fix-removed evidence while covering invocation roles, partial roots, lower-stratum continuations, and memoization settings. Done means the stated identities and multiplicities hold with safe defaults separated from forced overrides.
Written by the indexing model from the issue text.
Description
Final-template pruning must skip only analysis paths that cannot lead to a valid parse. This issue tracks the controls needed to demonstrate that guarantee across Machine and PanGloss.
Who is affected: users with final/non-final templates, partial words or rules, and maintainers reviewing #491 or porting its optimization.
This is a coverage gap, not a newly established Machine regression. The ten-word final-template-partial-discriminators fixture is now on Machine's conformance branch, but its passing results do not demonstrate that analysis pruning executes.
Done when: exact positive/negative identities and multiplicities survive optimized/unoptimized runs; discriminators reach the pruning branch; and claimed fixes fail when removed. Cover actual invocation role for rules shared between a stratum and a template, partial roots, lower-stratum continuations, and memoization on/off. Keep safe defaults separate from forced experimental overrides.
Published controls and remaining evidence
Commit a20bce12, through #480, adds conformance/edge-cases/final-template-partial-discriminators. Its rationale is in conformance/docs/final-template-partial-discriminators.md.
The recorded check passes all ten rows with memoization on/off. Mutating the partial-rule flag, partial-word producer, and non-final-template flag produces the predicted 2/10, 1/10, and 2/10 disagreements.
These establish synthesis/grammar sensitivity, not prune hits or fix-removed engine evidence. A zero prune count is not optimization coverage. Finite agreement does not prove universal soundness or completeness.
Related: #491 and #456. No parser code changed in this fixture update. Sparse forests and memory containment are outside scope.
- Dominant language
- C#
- Stars
- 29
- Forks
- 17
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 8
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from sillsdev/machine
-
Environment matchers pay for captures they never read; key the traversal on what the caller consumes Open
Difficulty 5/5 Over a week Newbie friendliness 45/100
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 35/100
-
HermitCrab: Word.ExpandAlternatives discards Unify's success flag and can null the realizational FS Open
Difficulty 5/5 Over a week Newbie friendliness 38/100
-
Difficulty 4/5 3-5 days Newbie friendliness 45/100
-
Difficulty 5/5 Over a week Newbie friendliness 42/100
All issues in sillsdev/machine
Similar issues
-
type/automation type/tech-debt
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
t/bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
ci-failure-cause test-failure
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
area:auth FE mvp P3
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
klasolsson81/jobbliggaren#1788 ·