Skip to content

Remove the JIT-fuzzing subsystem (superseded by lafleur)#140

Merged
devdanzin merged 1 commit into
mainfrom
remove-jit-subsystem
Jun 29, 2026
Merged

Remove the JIT-fuzzing subsystem (superseded by lafleur)#140
devdanzin merged 1 commit into
mainfrom
remove-jit-subsystem

Conversation

@devdanzin

Copy link
Copy Markdown
Owner

Summary

  • lafleur now owns JIT fuzzing end-to-end (it re-implemented the reusable core natively in lafleur/jit_seeds.py + lafleur/jit_bug_patterns.py and no longer shells out to fusil for seeds), so fusil's JIT subsystem was dead weight — ~4,800 LOC, 14 --jit-* options, a broken test, and a soft dependency on lafleur.mutator.
  • Removed: fusil/python/jit/ (write_jit_code.py, ast_pattern_generator.py, bug_patterns.py); the "JIT Fuzzing" option group; the WriteJITCode wiring + --jit-fuzz-gated call sites + dead jit_harness/no_jit_harness generated-code helpers in write_python_code.py; README_JIT.md; the already-broken tests/python/test_write_jit_code.py.
  • Preserved (general options misfiled under the JIT group): --source-output-path and --stdout-path moved to the Fuzzing group; --no-jit-external-references--no-external-references (dest external_references, a general ArgumentGenerator knob). jit_config.py stays (standalone build helper for lafleur's threshold-patched JIT CPython).
  • Net diff: +43 / −5,573.

Test plan

  • Full suite: 314 tests OK (the broken test_write_jit_code is gone; test_oom_fuzz updated for the renamed option).
  • ruff check + ruff format --check clean on changed files.
  • --help smoke: no --jit* options remain; --no-external-references present; parser builds cleanly.

Closes #139

lafleur now owns JIT fuzzing end-to-end: it re-implemented the reusable core
natively (lafleur/jit_seeds.py + lafleur/jit_bug_patterns.py: the uop-recipe
seed table, the curated bug patterns, and a synthesize grammar) and no longer
shells out to fusil for seeds. The fusil JIT subsystem was therefore dead
weight (~4,800 LOC of unmaintained code, 14 --jit-* options, a broken test, a
soft dependency on lafleur.mutator).

Removed:
- fusil/python/jit/ (write_jit_code.py, ast_pattern_generator.py, bug_patterns.py)
- the "JIT Fuzzing" option group (14 --jit-* options) in fusil/python/__init__.py
- the WriteJITCode import + construction + --jit-fuzz-gated call sites and the
  dead jit_harness/no_jit_harness generated-code helpers in write_python_code.py
- README_JIT.md and the already-broken tests/python/test_write_jit_code.py

Preserved (general options that were misfiled under the JIT group): moved
--source-output-path and --stdout-path to the Fuzzing group, and renamed
--no-jit-external-references -> --no-external-references (dest external_references,
a general ArgumentGenerator knob). jit_config.py stays (a standalone build helper
for the threshold-patched JIT CPython lafleur targets, unrelated to the subsystem).

Full suite green (314 tests); ruff check + format clean. Analysis/decision:
doc/jit-seed-generation.md + doc/jit-decision-memo.md.

Closes #139

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@devdanzin devdanzin merged commit 216fa02 into main Jun 29, 2026
2 checks passed
@devdanzin devdanzin deleted the remove-jit-subsystem branch June 29, 2026 20:07
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.

Remove the fusil JIT-fuzzing subsystem (superseded by lafleur)

1 participant