HermitCrab: establish discriminating conformance coverage for analysis-state and template/slot merges
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 52/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- csharp
- Domain
- compilers, testing-qa
Research direction
Start with the Machine fixture shared-template-unconstrained-suffix at commit f150e2a0 and the two direct state assertions described in the issue. Exercise stratum, template-battery, and slot merging with both template orders and memoization on and off; done means a minimal grammar distinguishes downstream continuations while preserving identities, multiplicities, and feature correlations.
Written by the indexing model from the issue text.
Description
Combining parser states must neither lose valid analyses nor create impossible combinations. This issue tracks the missing evidence for deciding when those states can safely share results.
Who is affected: Machine and PanGloss maintainers changing analysis-state merging, and users whose grammars have competing templates or feature constraints.
This is a research/coverage issue, not a claim that Machine still has the bug fixed by #493. PanGloss's narrow gate-only alignment is now implemented; broader merge and feature-correlation questions remain open.
Done when: a minimal, independently justified grammar reaches a same-key collision, distinguishes downstream continuations, and fails when the claimed fix is removed. Check stratum, template-battery, and slot merging separately, including reversed order and memoization on/off. Preserve full identities, multiplicities, and feature correlations—not just counts.
Implemented slice, evidence, and unresolved scope
#493 removed template-required-feature accumulation. PanGloss's alignment now uses those features only as an admission gate; widening and merge keys are unchanged. Two direct state assertions fail before the fix and pass afterward.
Machine fixture shared-template-unconstrained-suffix at f150e2a0 passes 40 C# comparisons: ten rows, both template orders, memoization on/off, no skips. Full-parse checks also pass PanGloss before the fix: preservation evidence, not a parse-level regression witness.
The template-category-sharing controls establish exclusivity and homophonous-root identity, not same-key collisions. Existing widening tests also pass with widening disabled.
Reconcile the remaining evidence with #494/Exact. Removing unnecessary Rust widening remains a possible outcome; adding it to Machine is not presumed correct. Sparse forests and memory work 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
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
nightscout/nocturne#1379 ·
-
priority-0
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Difficulty 1/5 Under an hour Newbie friendliness 78/100
StackExchange/StackExchange.Redis#3249 ·
-
[Feat] 조합 영역 구분선 개선 Open
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
documentation
Difficulty 2/5 1-3 hours Newbie friendliness 72/100