Skip to content

Test: fuzz exact semantics across every execution tier and backend #491

Description

@chrisbbreuer

Parent: #459
Depends on: #465#490 as their surfaces land

Goal

Continuously prove that interpreter, VM, baseline JIT, optimizer, and Wasm native tiers are semantically identical across optimization plans, GC timing, no-GIL schedules, and declared architectures.

Scope

  • Build owned seeded generators for JavaScript source/bytecode shapes, Wasm modules/functions, objects/arrays/typed data, closures/environments, exceptions/finally, async/generators, modules, GC roots, atomics, and host callbacks.
  • Execute the same case with tree-walker, VM, baseline, optimizer, Wasm interpreter/baseline/optimizer, GC modes, serialized/no-GIL, and applicable backend feature sets forced on/off.
  • Compare result bits/types, exception name/message/metadata, observable mutations/order, output, steps/watchdog, jobs/microtasks, tier counters, GC relocation, memory bytes, and teardown.
  • Randomize tier thresholds, invalidation/deopt timing, collection/safepoints, allocation failure, thread schedule points, CPU features, and code-cache pressure deterministically.
  • Shrink failures to one reproducible seed/source/module and retain corpus regressions.

No-workaround rules

  • No permanent suppressions, flaky retry-until-pass, result-only comparison, unsupported path counted as a tier success, or seed blacklist without a terminal documented semantic disposition.
  • The generator and shrinker remain owned code with no external fuzz runtime dependency.

Acceptance

  • Every new native/optimizer opcode, IR operation, backend, recovery outcome, and runtime fast path adds generator coverage before release.
  • Normal, ReleaseSafe, TSan, moving-GC, no-GIL, OOM/fault, debugger/termination, and lifecycle profiles have bounded deterministic CI witnesses.
  • Longer scheduled runs publish seed/rate/coverage inventories and retain every actionable minimized failure.
  • Cross-architecture traces can be compared without claiming emulated performance.
  • Zero unexplained skips/suppressions and exact denominator sanity checks are enforced.

Foundation

Existing threadfuzz, seeded optimizer differentials, test262, PR-249, Wasm corpus inventories, and forced enable_jit controls.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestjitBytecode, baseline JIT, optimizer, and code generationperformanceMeasured runtime, memory, scaling, or build performance

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions