HermitCrab analysis: subsequence fallback and insertion classes for the root prune (v2)
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
調査の方向性
Read #562 and its shadow harness first, then inspect the root tries and the strata rules that determine infixation, reduplication, and inserted segment classes. Run the proposed shadow measurements across Mbugwe, Indonesian, Aweti, and Amharic, including the #562 stress fixture plus the stated rule cases. Done means zero violations, identical verdicts to PR #480’s conformance suite, and savings and probe counts meeting the kill criteria.
索引モデルが issue の本文から書いたものです。
説明
The root-substring prune (#562) turns itself off on strata with infixation, reduplication or segment-restoring rules, which are exactly Indonesian, Amharic, Mbugwe and Aweti. The trigger is any such stratum. The cost is that the census ceiling (Mbugwe 38.5%, Indonesian 29.6%, Aweti 14.8%, Amharic 13.6% of analysis events) stays unreached.
Depends on #562. Build only if #562 is sound in shadow and v1 pays on Sena or on its stress fixture; otherwise close this.
Problem (census, steps)
The H2 ceilings above come from the census, overlapped in part by required-slot look-ahead (#561) on Mbugwe and Aweti, so the net figure is lower and unmeasured. Expected value is uncertain: it depends on how weak the fallback predicates are, which only a shadow run shows.
Proposed change
Two weaker predicates for strata that fail #562's flag:
- Subsequence fallback for strata with order-preserving but non-contiguous removal (infixation, reduplication on Indonesian and Amharic): prune when no root allomorph is a subsequence of the shape's segments.
- Insertion classes for restoring rules (Mbugwe
n-1,n-2; Aweti's 30 slot subrules): treat each restorable segment class as a wildcard gap, so a root may match with gaps wherever a rule in or below the stratum can insert that class.
Soundness
(1) holds when every rule is order-preserving: any shape looked up below the node is a subsequence of the node's shape (a contiguous run is a special case). (2) holds when the set of segments any remaining rule can insert is known statically; each such class is allowed at any position, so the prune fires only when the root cannot be matched even with those gaps. Rules whose inserted material cannot be bounded statically turn the flag off. Re-argued in XML docs and checked in shadow (zero violations).
Memory bound
Per-stratum flags and per-stratum sets of insertable segment classes: grammar-sized, bytes to KB. Uses the existing root tries. No cache.
Measurement plan
Shadow first, reusing #562's harness mode. Report per grammar the share of analysis events below fired nodes for each predicate (contiguous, subsequence, gapped), violations (must be 0), and trie or subsequence probes beside the savings. Stress fixture: the #562 fixture plus infix, reduplication and nasal-substitution strata.
Kill criterion
Any shadow violation: stop. Close if the net saving after removing the overlap with #561 is under 5% on every one of Mbugwe, Indonesian, Aweti and Amharic, or if probes exceed events saved.
Related
- #562 (hard dependency), #561 (overlap on Mbugwe and Aweti), #485 and #512 (related search and memory issues).
- PR #490: research record, ledger row 27. PR #480: conformance suite (its nasal-substitution and restoration fixtures are the violation class); verdicts must be identical.
- Units: deterministic steps, never ms. Owner constraint: no memo or cache.
🤖 Generated with Claude Code
- 主要言語
- C#
- スター
- 29
- フォーク
- 16
- 平均マージ
- 6日 13時間
- マージ済み PR(30日)
- 12
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
sillsdev/machine のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
-
HermitCrab analysis: ordered and anchored required-slot look-ahead (v2)対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープンenhancement Hermit Crab
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
メンテナーはふだん 1 日以内に返信
-
enhancement Hermit Crab
難易度 5/5 1週間以上 初心者へのやさしさ 20/100
メンテナーはふだん 1 日以内に返信
-
enhancement Hermit Crab
難易度 5/5 1週間以上 初心者へのやさしさ 30/100
sillsdev/machine#565 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
HermitCrab analysis: port the edge-segment prefilter (time-only, 0 steps)対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープンenhancement Hermit Crab
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
メンテナーはふだん 1 日以内に返信
sillsdev/machine の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
メンテナーはふだん 1 日以内に返信
-
:watch: Not Triaged advanced-concepts/subsvc dotnet-csharp/svc
難易度 1/5 1〜3時間 初心者へのやさしさ 84/100
メンテナーはふだん 1 日以内に返信
-
[bug] Season images use the season's TMDB id as a TVDB series id対応中かも @ViKodex が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
-
enhancement no-stack-trace
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
greenshot/greenshot#1618 · コメント 3 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 67/100
microsoft/aspire.dev#1962 ·
メンテナーはふだん 1 日以内に返信