Skip to content

doc: analyze JIT seed generation + scope the lafleur MVP#138

Merged
devdanzin merged 1 commit into
mainfrom
jit-seed-generation-analysis
Jun 28, 2026
Merged

doc: analyze JIT seed generation + scope the lafleur MVP#138
devdanzin merged 1 commit into
mainfrom
jit-seed-generation-analysis

Conversation

@devdanzin

Copy link
Copy Markdown
Owner

Adds doc/jit-seed-generation.md — an empirical trace of what lafleur actually uses from fusil to generate JIT seeds, and the exact MVP port list. Companion to jit-decision-memo.md (which gets a Refinement note narrowing the recommended scope).

Why

We're deciding how to pay down the fusil/python/jit/ tech debt and move seed generation into lafleur. This doc answers the prerequisites empirically: what each JIT option generates, whether it's lafleur-usable, and exactly which fusil code lafleur depends on.

Key findings

  • JIT fuzzing emits hot-loop harnesses, not classic call-spray scripts. lafleur zeroes the classic knobs, so its seeds are one uop harness.
  • lafleur uses fusil only as a subprocess, only via --jit-target-uop=ALL — which overrides --jit-mode, so synthesize/variational/legacy are never exercised and bug_patterns.py is unused by seeding.
  • The evil/stateful object generators already live in lafleur.mutator (fusil imports them back via HAS_MUTATOR); only the simple argument generators are fusil-side.
  • MVP = port UOP_RECIPES + generate_uop_targeted_pattern + _generate_uop_targeted_scenario + a trimmed simple-value generator; wire the object branch to lafleur.mutator. bug_patterns.py / the synthesize grammar are a later quality step (better seeds).

Docs only — no code changes.

🤖 Generated with Claude Code

Add doc/jit-seed-generation.md: an empirical trace of what lafleur actually uses
from fusil to generate JIT seeds, and the exact MVP port list.

Key findings:
- JIT fuzzing emits hot-loop harnesses, not classic call-spray scripts.
- lafleur uses fusil ONLY as a subprocess, ONLY via --jit-target-uop=ALL (which
  overrides --jit-mode), so synthesize/variational/legacy are never exercised and
  bug_patterns.py is unused by seeding.
- The evil/stateful object generators already live in lafleur.mutator (fusil
  imports them back via HAS_MUTATOR); only the simple argument generators are
  fusil-side.
- MVP = port UOP_RECIPES + generate_uop_targeted_pattern + _generate_uop_targeted_
  scenario + a trimmed simple-value generator; wire the object branch to
  lafleur.mutator. bug_patterns.py / the synthesize grammar are a later quality step.

Also adds a Refinement note to jit-decision-memo.md narrowing the recommended scope
and pointing at the new doc.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@devdanzin devdanzin merged commit 0c9c7c1 into main Jun 28, 2026
2 checks passed
@devdanzin devdanzin deleted the jit-seed-generation-analysis branch June 28, 2026 21:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant