sillsdev / sillsdev/machine

HermitCrab: track exact analysis feature inversion and chained override parse loss

Open
#504 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C#
Stars
29
Forks
17
Avg merge
3d 2h
Merged PRs (30d)
8

Description

Valid words can lose their analyses when one affix overwrites features set by another. This issue tracks exact feature inversion: recovering valid derivations without admitting invalid ones.

Who is affected: HermitCrab users with chained feature-changing rules, and PanGloss maintainers using Machine as their correctness baseline.

The existing chained-output-feature-override-loss fixture reproduces the loss at conformance revision 8bad1934. Current master and PR #494 still need separate reruns. PanGloss has an Exact implementation; that alone does not establish general correctness.

Done when: the chosen fix has failing-before/passing-after evidence, preserves complete parse identities and multiplicities, rejects invalid neighbors, and covers nested features, absent paths, variables, and disjunctions. Reconcile it with #493's template-feature change and #505's merge investigation. Treat skips and timeouts as incomplete evidence.


Reproduction, evidence, and remaining checks

Reuse conformance/edge-cases/chained-output-feature-override-loss in #480; do not duplicate it.

For zudiua: ZUD + INNER writes tense=pres; OUTER overwrites it with past; OUTERMOST requires past. Forward synthesis justifies the parse. Negative control zudia lacks the overwrite.

The six-word check completed every row at 8bad193454a14422a3be59c3156513691ae3da3b: four positive controls and the rejection passed; valid zudiua still returned no parse.

Earlier Exact evidence and the post-#493 rerun request remain relevant. Historical Add/PriorityUnion losses are not substitutes for pinned current-head runs.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the conformance/edge-cases/chained-output-feature-override-loss fixture referenced in #480, then compare runs at revision 8bad1934, current master, and PR #494. Done means failing-before/passing-after evidence with complete parse identities and multiplicities, rejection of invalid neighbors, and coverage for nested features, absent paths, variables, and disjunctions; reconcile #493 and #505.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
compilers
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.