HermitCrab: no word reaches the MaxApplicationCount gate, and the mutant stack-overflow path has no end-to-end test

オープン
#616 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
18/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
csharp
領域
backend

調査の方向性

Start in the HermitCrab engine where MaxApplicationCount is checked during analysis and synthesis, and compare the cap sites in each pass. The open question is whether the synthesis cap sites are dead code or only lack a trace call, so the first step is the proposed mutation that removes the check and records whether any word's output changes. Done means either the dead sites are removed or a word is shown to hit the limit, with the stack-overflow path covered end to end.

索引モデルが issue の本文から書いたものです。

説明

Hermit Crab

Two conformance points stay in machine because they concern its engine and runner, not the grammars now in sillsdev/fieldworks-parser-conformance.

  1. MaxApplicationCount: no word reaches this gate. Analysis stops at the cap with a bare return and no trace call; synthesis re-applies only rules analysis un-applied, so the synthesis cap sites never see a count at the cap. Decide: remove the dead sites, or add the trace call so a word can witness the limit. The behaviour to witness is stated in sillsdev/fieldworks-parser-conformance#8.
  2. The mutant stack-overflow path is tested only at its classification, by unit tests. The real overflow reproduced only on a fixture that was deleted.

Not known: whether the synthesis cap sites are dead code or only lack a trace call.

Related: #613 (closed, origin); #615 (runner, open); sillsdev/fieldworks-parser-conformance#8.

Next: run a mutation that removes the cap check at the synthesis sites and record whether any word changes.

🤖 Generated with Claude Code

主要言語
C#
スター
29
フォーク
16
平均マージ
5日 20時間
マージ済み PR(30日)
11

環境構築

  • Dockerfile・Docker Compose ファイルなし
  • プルリクエストのテンプレートあり
  • コントリビューションガイドなし

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

sillsdev/machine のほかの issue

sillsdev/machine の issue をすべて見る

似ている issue

C# の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。