Skip to content

perry: soak test recent perf landings against real-world apps before tagging release #440

Closed

Description

@proggeramlug

Summary

The May-2026 release-readiness session landed several non-trivial perf changes that haven't been tested against shapes outside honest_bench + benchmarks/suite + ECS smoke tests. Each has a plausible regression risk we should de-risk before tagging a release.

Recent landings to soak

Commit Change Surface area
56818086 GC bytes-trigger bump after gc-suppressed parse Any workload calling JSON.parse on > 1 MB blobs
b3e93649 Inline ArrayPush fast path for local-bound arrays Any local-array-push hot loop
3f5c69a5 integer_locals forward-closure pass Any program with chained int-stable Lets (let x = a*b; let y = x+c; ...)
4f895dd8 Immutable i32-shadow + i32 init path Touches every const numeric Let — broad blast radius
cf540b92 Buffer-aware stmt_preserves_array_length Any for (let i = 0; i < buf.length; i++) shape
f02541a4 FuncRef + Math.* arms in preserves-length walker Any peephole that runs for (...; i < arr.length; i++) with a body containing function calls or Math methods
aed21292 Static trip-count for-loop unroll Any tight nested loop with literal bounds and ≤8 iters
817c4b56 >>> 0 correctness fix + channel-vector SIMD reduction All workloads (correctness); RGB-style image processing (perf)

Soak coverage gaps

What's needed

  1. Run cargo test --release --workspace (just landed: d826ace4 unblocks the perry crate's 101 tests). Verify all 571 tests pass.
  2. Run the parity test suite (or whichever Node-compat sweep exists) and diff against the pre-session baseline.
  3. Compile + run a representative set of customer/user TS apps and verify byte-for-byte output match against Bun for at least a 5-minute exercise of each.
  4. Document any new known-failures in tests/known_failures.json so CI doesn't surprise us.

Acceptance

  • All in-tree tests green.
  • Parity sweep delta vs pre-session baseline: zero new regressions.
  • 3-5 representative real-world apps verified against Bun.

Related

Related correctness issue: #435 (integer_locals overflow class) — soak should specifically check for the 14_closure shape.
Related perf issue: #436 (image_conv 5%-target).

Activity

  1. added
    performanceRuntime, compile-time, build-size, or memory performance
    on May 4, 2026
  2. proggeramlug commented on May 28, 2026

    @proggeramlug
    ContributorAuthor

    Closing as stale / overtaken by events.

    This was a one-time pre-release soak checklist filed 2026-05-04 to de-risk eight perf commits (5681808, b3e9364, 4f895dd, 817c4b5, aed2129, …) before tagging a release. All eight landed that same day and have shipped continuously since — we're now at v0.5.1028, ~24 days and hundreds of releases later. Any regression in the broad-blast-radius changes (i32-shadow, >>> 0) would have surfaced long ago.

    Specifically:

    No code action warranted; the value (soaking those specific commits before that specific release tag) expired when the release shipped. Ongoing soak now lives in #793/#799/#800.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    performanceRuntime, compile-time, build-size, or memory performance

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions