Skip to content

feat(core): supply the Grate bridge's index — the read stops being forged - #127

Merged
kryptt merged 2 commits into
mainfrom
feat/grate-witness-index
Oct 2, 2026
Merged

kryptt merged 2 commits into
mainfrom
feat/grate-witness-index

Conversation

@kryptt

@kryptt kryptt commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

What this changes

MultiFocus[Function1[X0, *]] (the Grate carrier) has exactly one read that no rule of the type
system can serve: the Direct → MultiFocus[Function1[X0, *]] bridge's product must turn a written
bundle X0 => B back into a T, and its own carrier stores only Unit. That read was a
null.asInstanceOf[X0] sentinel guarded by a documented constant-bundle contract. It is now a real,
caller-supplied index.

  • data.RepresentativeIndex[X0] (new) — the witness. Shipped instances for the index types the
    Grate factories fix with a canonical value (Int → 0, Boolean → false, Unit → ()), any
    singleton type via ValueOf, and RepresentativeIndex.at(i) for everything else.
  • Function1BroadcastOptic stores at and reads there; forgetful2multifocusFunction1 now
    takes the witness.
  • unobserved keeps its two remaining sites — both existential leftovers the write path
    discards — and its docstring now states the stronger invariant: neither site is an index.

⚠️ Stacked on an unpublished baseline

The first commit (f7065947) is the sibling baseline change "compose the Function1 (Grate)
carrier positionally"
(source branch fix/grate-positional-composition, commit 81a53d3d),
replayed onto main. It is not on main and has not been pushed anywhere; the second commit
cannot compile without its Function1BroadcastOptic / per-index-write kernel work.

If you'd rather review them separately I can push the baseline as its own branch and retarget this
PR onto it — say the word.

Behaviour: nothing user-observable changes (measured, not asserted)

Every shipped path hands that from a constant bundle (modify / replace / collect* map the
optic's own broadcast, and the kernel's fallback passes a constant), so the witness value cannot be
observed through them. The baseline's positional guarantee is also untouched: grate ∘ iso still
rebuilds per index through broadcastFrom, which needs no index at all.

A test pins the read rule itself on a hand-built varying bundle (-1000 at index 0 vs -990 at
index 1) — white-box, because outside eo the carrier's leftover X is abstract, so a caller cannot
even name such a bundle (Found: Unit, Required: bridged.X). That is the honest shape of this
change: it makes an unobservable read structural rather than contract-guarded.

Costs, honestly

  • A new public typeclass in implicit position on a shipped Composer. Call sites are unchanged for
    Int / Boolean / Unit / singleton index types (instances resolve off the companion — still no
    imports); a grate over an algebraic index needs given RepresentativeIndex[X] = RepresentativeIndex.at(v).
  • Uninhabited index types no longer bridge at all (Function1[Nothing, *], a phantom slot):
    there is no index to witness, so a read that has no answer is refused instead of forged. That is a
    capacity regression in an exotic corner, and it is deliberate.
  • The shipped Boolean → false instance does privilege a value. Dropping the shipped
    instances together is the stricter-consistency option: three composition cells go red and every
    caller writes a given.

Relationship to #123 (please read this before deciding)

#123 retired representableAt because "position is a read-time argument, never a property of the
optic"
— and its write-up records that giving repr0 runtime meaning would take "a field on the
optic class plus a runtime witness match (the Function1BroadcastOptic shape)"
. This PR is that
shape, so it has to be the deliberate exception, not a quiet contradiction:

  1. .at(i) subsumes a factory's index; nothing subsumes the bridge's. Every read of a built
    Grate optic is caller-driven. The bridge's from is the opposite: the kernel hands it a whole
    bundle and there is no caller to ask — real value at construction, or forged value at the read.
  2. A construction-time index is a claim about the optic; a bridge witness is not. repr0 said
    "this optic is at this index" (false — two calls built the same optic). The witness says "if you
    ever have to read a bundle this optic did not build, read it here" — unobservable on every shipped
    path.

If the line's answer is "hold #123's ruling consistently — no index on an optic, ever", then this PR
should be closed rather than merged, and the sentinel stays. Both are recorded in the design note
(§4 for the comparison, §7 for the recommendation with its cost).

Tests / evidence

Design note with the full analysis, the stand-in inventory, the measured candidate supplies
(Representable has no representative index; ValueOf does not cover Int / Boolean) and the
alternative designs: docs/research/2026-09-30-grate-witness-index.md.

  • core/testOnly dev.constructive.eo.MultiFocusFunction1Spec — 14 examples / 349 expectations:
    the witness read is observable on a varying bundle; the shipped path is witness-invariant (round
    trip equals identity, modify unaffected) for two different witnesses; grate ∘ iso stays
    positional under a deliberately wrong witness (at(2): (10,20,30) → (11,21,31)); an algebraic
    index bridges off a one-line given; the witness works on refactor(core): retire MultiFocus.representableAt — the repr0 index was unobservable #123's own permuted Tri / Slot
    fixture (index order ≠ field order) with modify still equal to the instance's map; an
    unwitnessed index does not bridge (typeChecks); the shipped instances name real values; the
    Boolean-indexed cell resolves import-free.
  • tests/testOnly dev.constructive.eo.{GrateShapeSpec, CompositionMatrixSpec, UnlawfulFixturesSpec}
    — 23 / 121 / 4 examples (the iso ∘ grate cell stays green; no cell moves).
  • Full CI gate set locally on JDK 25 (sbt 1.13.0 / Scala 3.9.0):
    scalafmtCheckAll scalafmtSbtCheck benchmarks/scalafmtCheck githubWorkflowCheck mimaReportBinaryIssues test
    → green, scalafixAll --check → green, sbt doc → clean (no new scaladoc warnings),
    docs/mdoc → 0 errors, docs/laikaSite → generated.
  • Docs updated in the same commits: multifocus.md (bridge row + the "carries no constraint"
    paragraph), the generated QA grate legend (script and page kept in sync), the Grate grid's header
    comment in GrateShapeSpec, mima.sbt (0.19 break entry per the line's convention), CHANGELOG.md,
    and the core row of the agent guide.

Not benchmarked, by construction: MultiFocusCollectBench drives MultiFocus.tuple directly and
never builds a bridge, so this change cannot appear on that measured path (neither win nor loss).

kryptt and others added 2 commits October 1, 2026 20:06
`mfAssocFunction1` sampled the outer rebuild once and broadcast the result, so
`grate ∘ iso` collapsed every position onto index 0 — silently, behind a matrix
cell that pins typing only. `MultiFocus.tuple`, `representable` and `apply` all
tabulate, so the sampled value was wrong for all three.

- `Function1BroadcastOptic[S, T, A, B, X0]` is the witness for the one inner kind
  whose write has exactly one value to build; the kernel writes it per index
  (`broadcastFrom`) and reads the inner's bundle per index for every inner.
- `Z = Xo`: the outer's leftover is threaded through the composition instead of
  being forged, so the outer's `from` receives what its own `to` produced.
- `unobserved[A]` names the two remaining stand-ins (an uninhabited index type, an
  inner leftover the kernel cannot produce); the class's own `from` is the only
  index site left and is guarded by the constant-bundle contract.
- `MultiFocusFunction1Spec`: positional read/modify/replace across all three Grate
  factories, the bundle-inner diagonal read, and the previously mis-titled
  `.andThen` block fixed.
- `GrateShapeSpec`: the Naperian sub-shape's 23-cell footprint (6 composing /
  18 structural voids), compile-pinned.
- QA page: generated Grate sub-table, a legend that states ✓ is a *typing* claim,
  and carrier-level caveats; `optics.md` + `multifocus.md` cross-link it and the
  stale `Z = (Xo, Xi)` claim is corrected.
…rged

The `Direct → MultiFocus[Function1[X0, *]]` bridge's product must read a
bundle it did not build (`Function1BroadcastOptic.from`), and its carrier
stores only `Unit`. Baseline 81a53d3d left that read at a
`null.asInstanceOf[X0]` sentinel guarded by the constant-bundle contract.

- `data.RepresentativeIndex[X0]` — the witness: a real index, with canonical
  instances for the index types the Grate factories fix with one (`Int` → 0
  for `tuple` and `apply` over `Function1[Int, *]`, `Boolean` → false,
  `Unit` → ()), singletons via `ValueOf`, and `at(i)` for everything else.
- `Function1BroadcastOptic` stores `at` and reads there; the bridge's given
  takes the witness, so `iso.andThen(grate)` stays import-free wherever an
  instance exists and is REFUSED for an uninhabited index type (there is no
  index to witness, so the read that has no answer is refused rather than
  forged).
- `unobserved` keeps its two remaining sites, both existential leftovers the
  write path discards; its docstring now states that neither is an index —
  an index witness cannot stand in for per-position data.
- Spec (13 blocks): the witness read is observable (a varying bundle at 0 vs
  1 gives -1000 vs -990, white-box), the shipped path is witness-invariant
  (round trip + `modify`), `grate ∘ iso` stays positional under a
  non-canonical witness, an algebraic index bridges via a one-line `given`,
  an unwitnessed index does not bridge (`typeChecks`), the shipped instances
  name real values, and the Boolean-indexed cell resolves off the companion.
- Docs: `multifocus.md` bridge row + composition-limits paragraph, the
  generated QA grate legend (script + page kept identical), the `core` row of
  the agent guide, and a CHANGELOG entry.

Design note, measurements and the alternative supplies (cats' `Representable`
has no representative index; `ValueOf` does not cover `Int`/`Boolean`) in
docs/research/2026-09-30-grate-witness-index.md.

Also formats `GrateShapeSpec` (the baseline commit left it non-scalafmt-clean).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

🚀 Cloudflare Pages preview for feat/grate-witness-index is live:

https://b8292859.cats-eo-docs.pages.dev

Branch alias: https://feat-grate-witness-index.cats-eo-docs.pages.dev

Built from commit 4e71ecca4e292af4b2e805ee1b8237567b4e0c44 · updated on every push.

@kryptt
kryptt merged commit 5267135 into main Oct 2, 2026
14 checks passed
@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

Benchmark A/B

Allocation (B/op) — authoritative

Benchmark params base head Δ
PlatedBench.visitorUniverseJson n=4096 351,196.7 533,752.9 +52.0%
TraversalBench.eoFoldNested size=8 424.0 328.0 -22.6%
PlatedBench.mUniverseJson n=64 91,496.5 73,208.5 -20.0%
PlatedBench.visitorUniverseJson n=64 5,096.0 4,088.0 -19.8%
SchemesBench.handHylo - 0.1 0.1 -12.0%
GetterBench.mGet_6 - 0.0 0.0 -11.6%
OrderAvroBench.eoModifyNames size=512 109,707.7 97,419.5 -11.2%
GetterBench.mGet_3 - 0.0 0.0 -9.2%
JsoniterBench.jMiss size=512 0.1 0.1 -4.3%
GetterBench.mGet_orderId - 0.0 0.0 +3.8%
AvroBytesBench.eoReadCountry - 520.0 504.0 -3.1%
AffineFoldBench.eoGetOption_0 - 0.0 0.0 -2.7%
OpticBuildBench.reuseUse - 2,720.0 2,648.0 -2.6%
GenericsBench.handPrismModifyMiss - 0.0 0.0 +2.5%
GetterBench.eoGet_6 - 0.0 0.0 +2.4%
AffineFoldBench.eoGetOption_0_empty - 0.0 0.0 -2.2%
OptionalBench.mModify_loyalty_empty - 0.0 0.0 -2.2%
OrderCirceBench.directNames size=512 601,684.0 613,998.9 +2.0%
OrderCirceBench.hcursorNames size=512 613,999.8 601,683.1 -2.0%
GetterBench.mGet_0 - 0.0 0.0 -1.7%
442 more benchmarks
Benchmark params base head Δ
MultiFocusBench.naive_sumQty size=4 0.0 0.0 +1.7%
AffineFoldBench.mGetOption_loyalty_empty - 0.0 0.0 -1.5%
GetterBench.eoGet_orderId - 0.0 0.0 +1.5%
AffineFoldBench.mGetOption_6 - 0.0 0.0 +1.4%
AffineFoldBench.mGetOption_0_empty - 0.0 0.0 -1.3%
AvroJsonBridgeBench.eoClickToJson - 3,952.0 4,000.0 +1.2%
CapsBench.getDirect - 0.0 0.0 +1.2%
CapsBench.getDeepDirect - 0.0 0.0 -1.1%
OrderCirceBench.monocleStreet size=64 113,798.4 112,750.1 -0.9%
OrderCirceBench.naiveStreet size=64 113,779.2 112,741.9 -0.9%
OrderCirceBench.directStreet size=8 2,728.0 2,752.0 +0.9%
OptionalBench.eoModify_0_empty - 0.0 0.0 +0.8%
OrderCirceBench.monocleNames size=64 132,793.5 131,713.3 -0.8%
OrderJsoniterBench.monocleSumPrices size=512 1,178,466.8 1,187,678.1 +0.8%
GenericsBench.handLensGet - 0.0 0.0 +0.8%
AffineFoldBench.mGetOption_loyalty - 0.0 0.0 +0.7%
GenericsBench.handPrismGetMiss - 0.0 0.0 -0.7%
PrismBench.mGetRightAbsent - 0.0 0.0 -0.7%
GetterBench.eoGet_0 - 0.0 0.0 +0.7%
LensBench.eoGet - 0.0 0.0 +0.7%
CapsBench.getDeepCap - 0.0 0.0 -0.6%
ZioDiBench.eoServiceGet - 0.0 0.0 +0.6%
ZioDiBench.eoDrillGet - 0.0 0.0 -0.6%
AffineFoldBench.eoGetOption_loyalty - 0.0 0.0 +0.6%
KyoDiBench.eoMapGet - 0.0 0.0 -0.5%
PrismBench.eoGetRightAbsent - 0.0 0.0 -0.5%
GenericsBench.rawLensGet - 0.0 0.0 +0.5%
AffineFoldBench.mGetOption_3 - 0.0 0.0 +0.5%
PowerSeriesNestedBench.eoModify_nested size=64 14,664.5 14,592.5 -0.5%
LensBench.mGet - 0.0 0.0 -0.5%
PrismBench.mGetOptionAbsent - 0.0 0.0 -0.5%
GenericsBench.genLensGet - 0.0 0.0 -0.4%
CapsBench.foldMapDirect - 0.0 0.0 -0.4%
KyoDiBench.handMapGet - 0.0 0.0 +0.4%
AffineFoldBench.eoGetOption_loyalty_empty - 0.0 0.0 -0.4%
CapsBench.getCap - 0.0 0.0 +0.4%
CapsBench.foldMapDerivedPerCall - 0.0 0.0 -0.4%
JsoniterBench.jMiss size=8 0.0 0.0 +0.4%
OptionalBench.eoModify_loyalty_empty - 0.0 0.0 -0.3%
GenericsBench.genPrismModifyMiss - 0.0 0.0 -0.3%
OptionalBench.mModify_0_empty - 0.0 0.0 +0.3%
SchemesBench.handCata - 0.1 0.1 +0.3%
GenericsBench.genPrismGetMiss - 0.0 0.0 -0.3%
AffineFoldBench.eoGetOption_0_asAffineFold - 0.0 0.0 +0.2%
GetterBench.eoGet_3 - 0.0 0.0 -0.2%
FoldBench.eoFoldMap size=8 0.0 0.0 +0.2%
OrderJsoniterBench.nativeReadStreet size=512 454.4 453.5 -0.2%
PrismBench.eoGetOptionPresent - 0.0 0.0 -0.2%
PrismBench.eoGetOptionAbsent - 0.0 0.0 -0.2%
PrismBench.mGetOptionPresent - 0.0 0.0 +0.2%
CapsBench.getDerivedHeld - 0.0 0.0 +0.2%
PowerSeriesPrismBench.monocle_sparse size=128 27,808.2 27,768.2 -0.1%
JsoniterBench.cReplaceId size=8 20,643.9 20,667.9 +0.1%
JsoniterBench.cModifyId size=8 20,715.9 20,692.1 -0.1%
JsoniterBench.jMiss size=64 0.0 0.0 -0.1%
JsoniterBench.jModifyId size=512 41,945.1 41,921.1 -0.1%
CapsBench.foldMapDerivedHeld - 0.0 0.0 -0.1%
AffineFoldBench.mGetOption_0 - 0.0 0.0 -0.0%
CapsBench.foldMapCap - 0.0 0.0 +0.0%
OrderCirceBench.eoStreet size=64 2,721.2 2,720.1 -0.0%
OrderCirceBench.eoStreetIor size=64 2,737.1 2,736.1 -0.0%
CapsBench.getDerivedPerCall - 0.0 0.0 -0.0%
OrderJsoniterBench.nativeSumPrices size=64 10,926.7 10,929.6 +0.0%
OrderCirceBench.naiveNames size=64 120,837.6 120,868.8 +0.0%
PowerSeriesPrismBench.eoModify_sparse size=2048 104,683.7 104,710.7 +0.0%
OrderJsoniterBench.nativeSumPrices size=512 86,360.0 86,338.0 -0.0%
FoldBench.mFoldMap size=8 0.0 0.0 -0.0%
MultiFocusCollectBench.eoCollectMap_constSum - 0.0 0.0 -0.0%
JsoniterBench.jSumPrices size=64 8,119.6 8,120.3 +0.0%
OrderCirceBench.eoStreetIor size=512 2,737.6 2,737.8 +0.0%
OrderJsoniterBench.monocleModifyStreet size=512 333,589.0 333,565.3 -0.0%
OrderJsoniterBench.eoSumPrices size=512 63,690.3 63,686.1 -0.0%
OrderJsoniterBench.nativeSumPrices size=8 1,512.9 1,512.8 -0.0%
OrderCirceBench.eoStreet size=512 2,721.7 2,721.6 -0.0%
OrderCirceBench.hcursorNames size=64 77,817.9 77,821.4 +0.0%
MultiFocusBench.eoModify_multiFocus size=1024 331,116.1 331,128.0 +0.0%
JsoniterBench.cModifyId size=512 1,066,780.6 1,066,815.4 +0.0%
OrderCirceBench.eoStreetIor size=8 2,737.1 2,737.0 -0.0%
JsoniterBench.cSumPrices size=512 1,240,826.2 1,240,789.5 -0.0%
OrderAvroBench.monocleReadStreet size=512 69,795.2 69,797.1 +0.0%
OrderCirceBench.monocleNames size=512 1,121,843.0 1,121,816.3 -0.0%
PowerSeriesBench.naive_powerEach size=4096 114,781.7 114,784.3 +0.0%
PowerSeriesBench.monocle_powerEach size=4 1,176.0 1,176.0 +0.0%
PowerSeriesNestedBench.eoModify_nested size=1024 210,469.3 210,472.3 +0.0%
PowerSeriesBench.monocle_powerEach size=4096 967,854.4 967,842.5 -0.0%
PowerSeriesBench.eoModify_powerEach size=4096 164,374.6 164,376.6 +0.0%
JsoniterBench.cReadId size=64 101,308.7 101,309.9 +0.0%
PowerSeriesPrismBench.naive_sparse size=2048 24,612.7 24,612.9 +0.0%
OrderJsoniterBench.nativeReadStreet size=64 424.5 424.5 +0.0%
PlatedBench.mUniverseJson n=4096 6,489,845.7 6,489,788.0 -0.0%
OrderCirceBench.directStreet size=512 2,728.8 2,728.8 +0.0%
PlatedBench.visitorUniverseExpr n=4096 196,656.1 196,654.5 -0.0%
OrderCirceBench.naiveNames size=512 965,267.9 965,275.1 +0.0%
OrderCirceBench.hcursorStreet size=512 3,032.9 3,032.9 +0.0%
OrderCirceBench.eoNames size=512 614,040.6 614,036.8 -0.0%
MultiFocusBench.eoModify_powerEach size=256 26,080.4 26,080.6 +0.0%
JsoniterBench.cSumPrices size=8 22,704.3 22,704.5 +0.0%
JsoniterBench.jReadId size=512 48.0 48.0 +0.0%
OrderCirceBench.naiveStreet size=512 908,057.9 908,053.2 -0.0%
JsoniterBench.cReadStreet size=64 101,309.5 101,309.0 -0.0%
OrderJsoniterBench.eoReadStreet size=64 128.0 128.0 +0.0%
JsoniterBench.jSumPrices size=512 63,632.2 63,632.5 +0.0%
OrderCirceBench.eoNamesIor size=512 683,560.1 683,563.0 +0.0%
OrderCirceBench.monocleStreet size=512 908,036.3 908,032.6 -0.0%
PowerSeriesNestedBench.monocle_nested size=1024 1,118,861.0 1,118,856.5 -0.0%
OrderCirceBench.directNames size=64 77,723.4 77,723.2 -0.0%
OrderJsoniterBench.naiveModifyStreet size=512 333,565.2 333,566.4 +0.0%
OrderAvroBench.monocleModifyStreet size=512 169,084.1 169,084.6 +0.0%
OrderAvroBench.naiveReadStreet size=512 69,794.9 69,795.1 +0.0%
PowerSeriesNestedBench.monocle_nested size=256 430,200.0 430,201.3 +0.0%
OrderAvroBench.naiveModifyNames size=512 226,287.1 226,286.3 -0.0%
JsoniterBench.cReplaceId size=512 1,066,742.8 1,066,739.4 -0.0%
JsoniterBench.cReadId size=512 797,945.5 797,943.0 -0.0%
OrderCirceBench.eoNamesIor size=64 87,492.5 87,492.3 -0.0%
JsoniterBench.cSumPrices size=64 156,276.7 156,277.2 +0.0%
PlatedBench.mUniverseExpr n=4096 4,687,745.1 4,687,731.7 -0.0%
PowerSeriesNestedBench.naive_nested size=1024 115,071.9 115,071.5 -0.0%
JsoniterBench.jReadStreet size=512 128.1 128.1 -0.0%
PlatedBench.eoTransformDeep n=4096 624,382.2 624,383.9 +0.0%
OrderAvroBench.naiveModifyStreet size=512 169,060.6 169,060.1 -0.0%
OrderJsoniterBench.eoSumPrices size=64 8,121.2 8,121.2 +0.0%
PlatedBench.mUniverseExpr n=512 475,013.9 475,012.8 -0.0%
PowerSeriesPrismBench.monocle_sparse size=512 166,693.3 166,692.9 -0.0%
OrderJsoniterBench.naiveReadStreet size=64 24,705.2 24,705.2 -0.0%
OrderJsoniterBench.naiveSumPrices size=512 230,119.5 230,119.1 -0.0%
OrderJsoniterBench.monocleReadStreet size=512 193,227.4 193,227.8 +0.0%
PowerSeriesNestedBench.eoModify_nested size=256 53,771.1 53,771.0 -0.0%
OrderAvroBench.naiveModifyNames size=64 27,940.9 27,940.9 +0.0%
TraversalBench.mModify size=512 176,898.5 176,898.8 +0.0%
OrderJsoniterBench.naiveSumPrices size=64 29,337.2 29,337.2 -0.0%
PowerSeriesPrismBench.monocle_sparse size=2048 523,144.4 523,143.6 -0.0%
FoldBench.eoFoldPrices size=512 12,312.4 12,312.3 -0.0%
PowerSeriesNestedBench.naive_nested size=256 29,019.3 29,019.3 -0.0%
PlatedBench.visitorUniverseDeep n=4096 196,704.2 196,703.9 -0.0%
OrderJsoniterBench.monocleModifyStreet size=64 30,081.8 30,081.8 -0.0%
OrderJsoniterBench.nativeReadStreet size=8 424.0 424.0 +0.0%
JsoniterBench.cModifyId size=64 136,265.7 136,265.8 +0.0%
AvroEncodeRouteBench.eo_encodeValue - 568.0 568.0 -0.0%
TraversalBench.eoFoldPrices size=512 12,312.3 12,312.3 +0.0%
PlatedBench.mTransformExpr n=4096 753,735.4 753,734.7 -0.0%
OrderJsoniterBench.monocleSumPrices size=64 45,817.6 45,817.5 -0.0%
PowerSeriesBench.monocle_powerEach size=1024 279,425.9 279,426.2 +0.0%
TraversalBench.eoFoldNested size=512 20,200.8 20,200.8 -0.0%
PowerSeriesBench.monocle_powerEach size=256 107,338.5 107,338.4 -0.0%
OrderCirceBench.eoNames size=64 79,299.4 79,299.3 -0.0%
PlatedBench.eoTransformExpr n=4096 655,357.1 655,357.7 +0.0%
MultiFocusBench.eoModify_powerEach size=1024 115,176.9 115,176.8 -0.0%
PlatedBench.eoTransformDeep n=512 57,361.3 57,361.3 +0.0%
OrderJsoniterBench.eoReadStreet size=512 128.2 128.2 -0.0%
PlatedBench.eoTransformDeep n=64 7,184.0 7,184.0 +0.0%
FoldBench.mFoldPrices size=512 12,312.4 12,312.3 -0.0%
FoldBench.eoFoldMap size=512 7,936.2 7,936.2 -0.0%
TraversalBench.eoModify size=512 36,897.1 36,897.1 +0.0%
AvroBytesBench.eoModifyPartner - 984.0 984.0 -0.0%
OrderJsoniterBench.naiveReadStreet size=512 193,227.4 193,227.5 +0.0%
PlatedBench.visitorTransformExpr n=4096 360,471.1 360,470.8 -0.0%
OrderJsoniterBench.monocleReadStreet size=64 24,705.1 24,705.2 +0.0%
OrderCirceBench.directStreet size=64 2,728.1 2,728.1 +0.0%
PowerSeriesPrismBench.eoModify_sparse size=32 1,360.0 1,360.0 -0.0%
OrderAvroBench.monocleModifyNames size=512 382,757.4 382,757.2 -0.0%
AvroBytesBench.eoReadPartner - 480.0 480.0 +0.0%
OrderAvroBench.eoReadStreet size=512 88.0 88.0 +0.0%
JsoniterBench.cReadStreet size=512 797,939.3 797,939.8 +0.0%
OrderCirceBench.eoNamesIor size=8 11,360.1 11,360.1 +0.0%
OrderAvroBench.monocleModifyNames size=64 39,841.9 39,841.9 +0.0%
PowerSeriesBench.eoModify_powerEach size=1024 41,413.9 41,413.9 -0.0%
PowerSeriesBench.eoModify_powerEach size=256 10,688.5 10,688.5 -0.0%
PlatedBench.eoUniverseJson n=4096 786,470.2 786,469.8 -0.0%
OrderCirceBench.eoNames size=8 10,944.1 10,944.1 -0.0%
OrderJsoniterBench.eoModifyStreet size=512 42,003.9 42,003.9 -0.0%
OrderJsoniterBench.eoModifyStreet size=64 5,432.1 5,432.1 -0.0%
JsoniterBench.cReplaceId size=64 136,218.1 136,218.1 +0.0%
PlatedBench.mUniverseExpr n=64 45,424.4 45,424.3 -0.0%
MultiFocusBench.naive_sumQty size=1024 16,129.1 16,129.1 +0.0%
OrderJsoniterBench.eoSumPrices size=8 1,176.0 1,176.0 -0.0%
PlatedBench.eoUniverseJson n=64 12,168.1 12,168.1 -0.0%
OrderAvroBench.eoModifyStreet size=512 328.0 328.0 +0.0%
TraversalBench.mFoldPrices size=512 162,565.0 162,564.9 -0.0%
PowerSeriesNestedBench.monocle_nested size=64 58,833.0 58,833.0 -0.0%
OrderJsoniterBench.eoReadStreet size=8 128.0 128.0 -0.0%
PlatedBench.visitorUniverseDeep n=64 3,128.0 3,128.0 +0.0%
PlatedBench.eoUniverseExpr n=64 12,168.0 12,168.0 +0.0%
OrderCirceBench.hcursorStreet size=64 3,032.1 3,032.1 +0.0%
JsoniterBench.jSumPrices size=8 1,176.0 1,176.0 -0.0%
OrderJsoniterBench.naiveSumPrices size=8 4,248.0 4,248.0 -0.0%
JsoniterBench.jReadId size=8 48.0 48.0 +0.0%
AvroBytesBench.eoSliceGraftPayload - 1,192.0 1,192.0 -0.0%
PowerSeriesPrismBench.eoModify_sparse size=512 24,785.6 24,785.6 -0.0%
PlatedBench.visitorTransformExpr n=512 45,032.8 45,032.8 -0.0%
OrderCirceBench.directNames size=8 10,688.1 10,688.1 +0.0%
PowerSeriesBench.eoModify_powerEach size=64 3,008.0 3,008.0 +0.0%
OrderJsoniterBench.monocleReadStreet size=8 3,648.0 3,648.0 +0.0%
MultiFocusBench.eoFold_powerEach size=1024 43,035.7 43,035.8 +0.0%
OrderJsoniterBench.naiveModifyStreet size=64 30,057.9 30,057.9 -0.0%
OrderAvroBench.monocleModifyStreet size=64 20,904.2 20,904.2 +0.0%
PlatedBench.visitorUniverseDeep n=512 24,632.7 24,632.7 -0.0%
PowerSeriesNestedBench.naive_nested size=64 7,512.2 7,512.2 -0.0%
MultiFocusBench.eoFold_powerEach size=256 9,240.2 9,240.2 -0.0%
OrderCirceBench.eoStreet size=8 2,720.0 2,720.0 +0.0%
PlatedBench.visitorTransformDeep n=4096 163,886.9 163,886.8 -0.0%
JsoniterBench.jReplaceId size=512 41,889.1 41,889.1 -0.0%
PlatedBench.mTransformExpr n=512 69,585.6 69,585.6 +0.0%
PlatedBench.visitorTransformDeep n=512 20,496.5 20,496.5 -0.0%
PlatedBench.eoUniverseExpr n=4096 786,384.4 786,384.2 -0.0%
LensBench.eoModifyDeep - 152.0 152.0 +0.0%
AffineFoldBench.eoGetOption_6 - 16.0 16.0 +0.0%
OrderAvroBench.naiveReadStreet size=64 8,848.1 8,848.1 +0.0%
PlatedBench.eoUniverseDeep n=512 98,377.5 98,377.5 +0.0%
PowerSeriesBench.naive_powerEach size=1024 28,731.2 28,731.2 +0.0%
PowerSeriesNestedBench.monocle_nested size=4 5,568.0 5,568.0 -0.0%
AvroJsonBridgeBench.eoWideToJson - 1,472.0 1,472.0 -0.0%
MultiFocusBench.eoFold_powerEach size=32 920.0 920.0 +0.0%
PowerSeriesNestedBench.eoModify_nested size=4 2,192.0 2,192.0 +0.0%
PowerSeriesPrismBench.monocle_sparse size=8 1,952.0 1,952.0 +0.0%
AvroDecodeReuseBench.confluentRecordReaderFresh - 3,696.0 3,696.0 -0.0%
OpticBuildBench.buildAndUse - 2,888.0 2,888.0 +0.0%
PlatedBench.visitorUniverseJson n=512 40,954.7 40,954.8 +0.0%
PowerSeriesPrismBench.naive_sparse size=512 6,176.3 6,176.3 -0.0%
PowerSeriesNestedBench.eoModify_nested size=16 4,792.1 4,792.1 -0.0%
PowerSeriesBench.naive_powerEach size=64 1,848.0 1,848.0 +0.0%
KyoDiBench.handVarUpdate - 200.0 200.0 +0.0%
FoldBench.mFoldMap size=512 7,936.2 7,936.2 +0.0%
OrderCirceBench.hcursorStreet size=8 3,032.0 3,032.0 -0.0%
AvroBytesBench.naiveReadCountry - 4,256.0 4,256.0 -0.0%
AffineFoldBench.eoGetOption_3 - 16.0 16.0 -0.0%
OrderAvroBench.monocleModifyStreet size=8 2,992.0 2,992.0 +0.0%
AvroEncodeRouteBench.handwritten_stream - 240.0 240.0 -0.0%
PowerSeriesPrismBench.eoModify_sparse size=128 4,816.1 4,816.1 -0.0%
AvroJsonBridgeBench.naiveWideToJson - 4,376.0 4,376.0 +0.0%
AvroJsonBridgeBench.eoWideToAvro - 2,040.0 2,040.0 +0.0%
OrderAvroBench.naiveReadStreet size=8 1,208.0 1,208.0 -0.0%
MultiFocusCollectBench.eoModify_multiFocusTuple3 - 128.0 128.0 -0.0%
OrderAvroBench.eoModifyNames size=64 12,616.1 12,616.1 -0.0%
MultiFocusBench.naive_sumQty size=256 3,840.0 3,840.0 +0.0%
OrderAvroBench.monocleReadStreet size=64 8,848.1 8,848.1 +0.0%
MultiFocusCollectBench.naive_tuple3Rewrite - 96.0 96.0 +0.0%
AvroJsonBridgeBench.naiveClickToJson - 5,856.0 5,856.0 -0.0%
MultiFocusBench.eoModify_multiFocus size=4 1,320.0 1,320.0 +0.0%
AvroBytesBench.naiveModifyCountry - 7,616.0 7,616.0 -0.0%
AvroEncodeRouteBench.naive_freshPlumbing - 2,624.0 2,624.0 -0.0%
PlatedBench.eoUniverseDeep n=64 12,360.0 12,360.0 -0.0%
MultiFocusBench.eoModify_multiFocus size=256 76,112.6 76,112.6 -0.0%
PlatedBench.mUniverseJson n=512 699,921.2 699,921.2 +0.0%
JsoniterBench.jReplaceId size=64 5,296.0 5,296.0 -0.0%
OrderJsoniterBench.naiveReadStreet size=8 3,648.0 3,648.0 +0.0%
JsoniterBench.cReadStreet size=8 15,568.0 15,568.0 +0.0%
OptionalBench.mModify_6 - 496.0 496.0 +0.0%
AvroBytesBench.naiveReadPartner - 5,424.0 5,424.0 -0.0%
MultiFocusBench.naive_listMap size=1024 65,578.2 65,578.2 -0.0%
PlatedBench.visitorUniverseExpr n=512 24,584.7 24,584.7 +0.0%
MultiFocusBench.eoModify_powerEach size=32 3,152.0 3,152.0 -0.0%
PlatedBench.eoUniverseExpr n=512 98,185.5 98,185.5 +0.0%
PowerSeriesBench.eoModify_powerEach size=16 1,088.0 1,088.0 -0.0%
AvroBytesBench.naivePassthroughPayload - 14,088.1 14,088.1 +0.0%
AvroDecodeReuseBench.freshDecodeRecord - 3,344.0 3,344.0 +0.0%
MultiFocusBench.eoModify_multiFocus size=32 8,600.0 8,600.0 +0.0%
PowerSeriesBench.naive_powerEach size=256 7,224.3 7,224.3 +0.0%
OrderJsoniterBench.eoModifyStreet size=8 1,072.0 1,072.0 -0.0%
PowerSeriesPrismBench.naive_sparse size=32 416.0 416.0 -0.0%
PowerSeriesBench.naive_powerEach size=16 504.0 504.0 -0.0%
KyoDiBench.eoVarUpdateFocus - 216.0 216.0 +0.0%
JsoniterBench.jReadId size=64 48.0 48.0 -0.0%
OrderAvroBench.naiveModifyStreet size=64 20,880.2 20,880.2 +0.0%
OrderCirceBench.hcursorNames size=8 10,768.1 10,768.1 +0.0%
MultiFocusBench.eoModify_powerEach size=4 800.0 800.0 +0.0%
OrderAvroBench.eoReadStreet size=64 88.0 88.0 +0.0%
PowerSeriesNestedBench.naive_nested size=16 2,136.0 2,136.0 -0.0%
TraversalBench.mModify size=64 14,408.0 14,408.0 -0.0%
JsoniterBench.cReadId size=8 15,568.0 15,568.0 -0.0%
OptionalBench.mReplace_0 - 40.0 40.0 +0.0%
PlatedBench.eoUniverseDeep n=4096 786,576.0 786,575.9 -0.0%
KyoDiBench.handEnvUse - 312.0 312.0 +0.0%
AvroBytesBench.eoGraftPayload - 720.0 720.0 +0.0%
OrderAvroBench.naiveModifyStreet size=8 2,968.0 2,968.0 +0.0%
AvroVulcanBench.fieldGet_bridged - 432.0 432.0 +0.0%
CapsBench.modifyDirect - 40.0 40.0 +0.0%
FoldBench.eoFoldPrices size=64 1,560.0 1,560.0 -0.0%
AvroVulcanBench.decode_bridged - 832.0 832.0 +0.0%
SetterBench.eoModify_6 - 120.0 120.0 -0.0%
MultiFocusCollectBench.naive_zipMeanBroadcast - 1,176.0 1,176.0 +0.0%
SchemesBench.drosteHylo - 328,640.5 328,640.4 -0.0%
MultiFocusCollectBench.naive_tuple6Rewrite - 184.0 184.0 +0.0%
OrderCirceBench.monocleStreet size=8 17,048.1 17,048.1 +0.0%
MultiFocusCollectBench.eoCollectList_listSum - 56.0 56.0 +0.0%
OrderAvroBench.eoModifyStreet size=64 328.0 328.0 -0.0%
AvroVulcanBench.encode_bridged - 1,224.0 1,224.0 +0.0%
AvroBytesBench.naiveModifyPartner - 8,696.0 8,696.0 +0.0%
PlatedBench.mTransformExpr n=64 11,728.0 11,728.0 -0.0%
ClickRecordBench.encode_vulcanFull - 28,408.1 28,408.1 +0.0%
OptionalBench.mModify_0 - 112.0 112.0 +0.0%
OptionalBench.eoReplace_loyalty - 88.0 88.0 +0.0%
PowerSeriesNestedBench.monocle_nested size=16 15,696.1 15,696.1 -0.0%
OrderJsoniterBench.monocleModifyStreet size=8 4,664.1 4,664.1 -0.0%
JsoniterBench.jReplaceId size=8 936.0 936.0 -0.0%
AvroJsonBridgeBench.naiveClickToAvro - 3,928.0 3,928.0 -0.0%
MultiFocusBench.naive_listMap size=256 16,424.1 16,424.1 -0.0%
PowerSeriesNestedBench.naive_nested size=4 792.0 792.0 -0.0%
PlatedBench.visitorTransformExpr n=64 5,608.0 5,608.0 +0.0%
FoldBench.mFoldMap size=64 768.0 768.0 -0.0%
PowerSeriesPrismBench.monocle_sparse size=32 7,040.0 7,040.0 -0.0%
FoldBench.mFoldPrices size=64 1,560.0 1,560.0 -0.0%
AvroDecodeReuseBench.confluentRecordReader - 1,560.0 1,560.0 +0.0%
MultiFocusCollectBench.naive_constSum - 16.0 16.0 +0.0%
OptionalBench.mReplace_loyalty - 88.0 88.0 +0.0%
AvroVulcanBench.encode_vulcanRaw - 1,272.0 1,272.0 +0.0%
LensBench.eoReplace - 40.0 40.0 -0.0%
AvroBytesBench.eoModifyCountry - 928.0 928.0 +0.0%
AvroVulcanBench.fieldGet_native - 432.0 432.0 -0.0%
AvroVulcanBench.decode_native - 48.0 48.0 -0.0%
AvroVulcanBench.rootGet_bridged - 1,424.0 1,424.0 +0.0%
JsoniterBench.jReadStreet size=8 128.0 128.0 -0.0%
PlatedBench.eoUniverseJson n=512 98,186.6 98,186.6 -0.0%
ClickRecordBench.encode_derivedThroughPrism - 744.0 744.0 -0.0%
PowerSeriesBench.monocle_powerEach size=64 14,504.1 14,504.1 -0.0%
FoldBench.mFoldPrices size=8 216.0 216.0 -0.0%
OrderCirceBench.naiveStreet size=8 17,040.1 17,040.1 +0.0%
OrderAvroBench.eoReadStreet size=8 88.0 88.0 +0.0%
AvroVulcanBench.decode_vulcanRaw - 832.0 832.0 -0.0%
AvroJsonBridgeBench.eoClickToAvro - 4,664.0 4,664.0 -0.0%
OptionalBench.eoModify_6 - 208.0 208.0 +0.0%
AvroBytesBench.prunedReadCountry - 1,976.0 1,976.0 +0.0%
MultiFocusBench.naive_listMap size=4 296.0 296.0 -0.0%
AvroJsonBridgeBench.naiveWideToAvro - 3,504.0 3,504.0 -0.0%
OrderAvroBench.monocleReadStreet size=8 1,208.0 1,208.0 +0.0%
CompositionBench.reuseLens6 - 120.0 120.0 -0.0%
JsoniterBench.jReadStreet size=64 128.0 128.0 +0.0%
OptionalBench.eoModify_0 - 112.0 112.0 +0.0%
ZioDiBench.eoServiceReplace - 400.0 400.0 +0.0%
TraversalBench.eoModify size=64 4,640.0 4,640.0 +0.0%
OptionalBench.eoReplace_0 - 40.0 40.0 +0.0%
ClickRecordBench.encode_positional - 23,912.0 23,912.0 -0.0%
CapsBench.modifyDeepCap - 176.0 176.0 -0.0%
LensBench.mModifyDeep - 176.0 176.0 +0.0%
TraversalBench.eoFoldNested size=64 2,680.0 2,680.0 -0.0%
SetterBench.mModify_orderId - 40.0 40.0 -0.0%
GenericsBench.rawPrismModifyHit - 24.0 24.0 -0.0%
SchemesBench.eoHylo - 295,848.6 295,848.6 +0.0%
JsoniterBench.jModifyId size=64 5,328.0 5,328.0 +0.0%
OrderCirceBench.monocleNames size=8 19,472.1 19,472.1 +0.0%
SetterBench.mModify_0 - 24.0 24.0 -0.0%
JsoniterBench.jModifyId size=8 968.0 968.0 -0.0%
PrismBench.eoRightReverseGet - 16.0 16.0 -0.0%
PlatedBench.visitorTransformDeep n=64 2,576.0 2,576.0 -0.0%
FoldBench.eoFoldMap size=64 768.0 768.0 +0.0%
MultiFocusBench.naive_sumQty size=32 256.0 256.0 +0.0%
ClickRecordBench.encode_derived - 744.0 744.0 +0.0%
AvroEncodeRouteBench.eo_encodeToAny - 312.0 312.0 +0.0%
IsoBench.eoReverseGet - 32.0 32.0 -0.0%
TraversalBench.eoFoldPrices size=8 216.0 216.0 -0.0%
SchemesBench.eoCata - 197,568.5 197,568.5 -0.0%
AvroDecodeReuseBench.cachedDecodeRecord - 1,224.0 1,224.0 +0.0%
OrderAvroBench.eoModifyStreet size=8 328.0 328.0 +0.0%
PowerSeriesBench.monocle_powerEach size=16 3,720.0 3,720.0 +0.0%
OrderAvroBench.eoModifyNames size=8 2,160.0 2,160.0 +0.0%
OrderCirceBench.naiveNames size=8 17,808.1 17,808.1 -0.0%
AvroVulcanBench.encode_native - 56.0 56.0 -0.0%
OrderAvroBench.monocleModifyNames size=8 5,400.0 5,400.0 +0.0%
LensBench.eoModify - 40.0 40.0 -0.0%
CompositionBench.reuseLensOptional3 - 160.0 160.0 +0.0%
PrismBench.eoGetRightPresent - 16.0 16.0 -0.0%
CompositionBench.buildLens1 - 72.0 72.0 +0.0%
IsoBench.mReverseGet - 32.0 32.0 +0.0%
PowerSeriesPrismBench.eoModify_sparse size=8 496.0 496.0 -0.0%
PrismBench.mGetRightPresent - 16.0 16.0 +0.0%
KyoDiBench.handMapDrillModify - 216.0 216.0 -0.0%
SetterBench.eoModify_0 - 24.0 24.0 -0.0%
ZioDiBench.eoDrillModify - 472.0 472.0 +0.0%
GenericsBench.handPrismModifyHit - 24.0 24.0 +0.0%
AvroVulcanBench.rootGet_native - 600.0 600.0 -0.0%
SetterBench.eoModify_3 - 72.0 72.0 -0.0%
IsoBench.eoGet - 32.0 32.0 -0.0%
CompositionBench.reuseLens1 - 40.0 40.0 -0.0%
MultiFocusBench.naive_listMap size=32 2,088.0 2,088.0 -0.0%
PowerSeriesPrismBench.naive_sparse size=8 128.0 128.0 -0.0%
OptionalBench.eoModify_3 - 160.0 160.0 -0.0%
PlatedBench.visitorUniverseExpr n=64 3,080.0 3,080.0 +0.0%
GenericsBench.genPrismGetHit - 16.0 16.0 -0.0%
ClickRecordBench.encode_hand - 768.0 768.0 +0.0%
MultiFocusCollectBench.naive_listSum - 56.0 56.0 +0.0%
FoldBench.eoFoldPrices size=8 216.0 216.0 -0.0%
GenericsBench.genPrismModifyHit - 24.0 24.0 -0.0%
TraversalBench.mModify size=8 1,896.0 1,896.0 -0.0%
SchemesBench.drosteCata - 164,824.3 164,824.3 -0.0%
ZioDiBench.handDrillModify - 592.0 592.0 +0.0%
OptionalBench.mModify_3 - 304.0 304.0 +0.0%
PowerSeriesPrismBench.naive_sparse size=128 1,568.0 1,568.0 -0.0%
ReviewBench.eoReverseGet_3 - 72.0 72.0 -0.0%
KyoDiBench.eoEnvFocus - 320.0 320.0 -0.0%
OptionalBench.mModify_loyalty - 112.0 112.0 +0.0%
SchemesBench.eoAna - 589,712.7 589,712.7 -0.0%
SetterBench.eoModify_orderId - 40.0 40.0 -0.0%
PlatedBench.eoTransformExpr n=64 10,144.0 10,144.0 -0.0%
ReviewBench.naiveBuild_6 - 120.0 120.0 -0.0%
SchemesBench.handAna - 163,816.1 163,816.1 +0.0%
ReviewBench.eoReverseGet_6 - 120.0 120.0 -0.0%
CompositionBench.reuseLeaf - 24.0 24.0 -0.0%
PrismBench.mRightReverseGet - 16.0 16.0 -0.0%
GenericsBench.rawPrismGetHit - 16.0 16.0 +0.0%
PowerSeriesBench.naive_powerEach size=4 168.0 168.0 +0.0%
SetterBench.mModify_3 - 168.0 168.0 -0.0%
LensBench.mReplace - 40.0 40.0 -0.0%
OrderJsoniterBench.naiveModifyStreet size=8 4,640.1 4,640.1 -0.0%
PowerSeriesBench.eoModify_powerEach size=4 608.0 608.0 -0.0%
OrderAvroBench.naiveModifyNames size=8 3,752.0 3,752.0 +0.0%
OrderJsoniterBench.monocleSumPrices size=8 6,448.1 6,448.1 +0.0%
CompositionBench.reuseLens3 - 72.0 72.0 +0.0%
MultiFocusCollectBench.eoCollectMap_zipMean - 880.0 880.0 +0.0%
AffineFoldBench.eoGetOption_0_asOptional - 16.0 16.0 -0.0%
PrismBench.mReverseGet - 16.0 16.0 -0.0%
ReviewBench.naiveBuild_3 - 72.0 72.0 +0.0%
CompositionBench.buildLensOptional3 - 184.0 184.0 -0.0%
SchemesBench.drosteAna - 327,632.3 327,632.3 -0.0%
TraversalBench.eoModify size=8 608.0 608.0 +0.0%
PrismBench.eoReverseGet - 16.0 16.0 +0.0%
CapsBench.modifyDeepDirect - 152.0 152.0 -0.0%
ZioDiBench.handDrillGet - 120.0 120.0 +0.0%
CompositionBench.buildLens3 - 184.0 184.0 -0.0%
ZioDiBench.handServiceGet - 120.0 120.0 +0.0%
ReviewBench.naiveBuild_0 - 24.0 24.0 -0.0%
PlatedBench.eoTransformExpr n=512 81,825.7 81,825.7 +0.0%
MultiFocusBench.eoFold_powerEach size=4 328.0 328.0 +0.0%
ZioDiBench.handServiceReplace - 520.0 520.0 +0.0%
GenericsBench.handPrismGetHit - 16.0 16.0 +0.0%
LensBench.mModify - 40.0 40.0 -0.0%
ReviewBench.eoReverseGet_0 - 24.0 24.0 -0.0%
CapsBench.modifyCap - 40.0 40.0 -0.0%
IsoBench.mGet - 32.0 32.0 -0.0%
CapsBench.modifyDerivedPerCall - 40.0 40.0 +0.0%
KyoDiBench.eoMapDrillModify - 216.0 216.0 +0.0%
GenericsBench.handLensModify - 24.0 24.0 -0.0%
CompositionBench.buildLens6 - 352.0 352.0 +0.0%
AvroBytesBench.prunedReadPartner - 1,592.0 1,592.0 +0.0%
CapsBench.modifyDerivedHeld - 40.0 40.0 +0.0%
OpticBuildBench.build - 184.0 184.0 +0.0%
GenericsBench.rawLensModify - 24.0 24.0 +0.0%
SetterBench.mModify_6 - 288.0 288.0 -0.0%
TraversalBench.mFoldPrices size=8 2,000.0 2,000.0 +0.0%
TraversalBench.eoFoldPrices size=64 1,560.0 1,560.0 -0.0%
TraversalBench.mFoldPrices size=64 15,408.1 15,408.1 -0.0%
OptionalBench.eoModify_loyalty - 112.0 112.0 -0.0%
MultiFocusCollectBench.eoModify_multiFocusTuple6 - 224.0 224.0 +0.0%
GenericsBench.genLensModify - 24.0 24.0 -0.0%
Timing (ns/op) — directional only, same-VM but shared runner
Benchmark params base head Δ
MultiFocusBench.eoModify_powerEach size=256 6,272.2 8,480.8 +35.2%
MultiFocusCollectBench.naive_tuple3Rewrite - 7.5 8.7 +17.1%
TraversalBench.eoFoldNested size=8 57.4 49.2 -14.3%
AvroEncodeRouteBench.eo_encodeValue - 648.7 561.2 -13.5%
JsoniterBench.cSumPrices size=512 398,907.3 345,771.1 -13.3%
SchemesBench.handHylo - 10,792.3 9,493.9 -12.0%
LensBench.eoModifyDeep - 33.1 37.0 +11.6%
PlatedBench.visitorUniverseJson n=64 2,129.2 2,374.0 +11.5%
GetterBench.mGet_6 - 28.1 25.0 -11.3%
MultiFocusCollectBench.eoModify_multiFocusTuple3 - 18.2 16.4 -10.0%
GetterBench.mGet_3 - 10.0 9.1 -9.2%
AvroBytesBench.eoModifyPartner - 417.3 379.9 -9.0%
OrderCirceBench.hcursorNames size=64 30,099.4 32,677.3 +8.6%
PlatedBench.visitorUniverseJson n=4096 193,339.3 177,153.2 -8.4%
AvroBytesBench.eoReadPartner - 210.6 227.5 +8.0%
OptionalBench.mReplace_0 - 3.7 4.0 +7.7%
PowerSeriesPrismBench.monocle_sparse size=8 332.7 357.7 +7.5%
PowerSeriesPrismBench.eoModify_sparse size=32 373.3 347.6 -6.9%
MultiFocusBench.eoModify_multiFocus size=4 219.3 234.2 +6.8%
PowerSeriesPrismBench.monocle_sparse size=128 3,912.2 4,176.2 +6.7%
MultiFocusCollectBench.naive_tuple6Rewrite - 14.6 15.6 +6.7%
OrderAvroBench.monocleReadStreet size=512 25,483.9 27,150.5 +6.5%
PowerSeriesPrismBench.eoModify_sparse size=2048 23,277.8 24,682.3 +6.0%
CapsBench.modifyDirect - 4.1 4.3 +6.0%
JsoniterBench.cModifyId size=8 8,386.9 8,889.6 +6.0%
PlatedBench.mUniverseExpr n=64 18,800.6 17,698.8 -5.9%
OptionalBench.eoReplace_loyalty - 7.5 7.9 +5.6%
JsoniterBench.cReadId size=64 25,854.9 27,297.3 +5.6%
KyoDiBench.handVarUpdate - 60.2 63.5 +5.6%
OrderCirceBench.eoStreetIor size=512 1,062.4 1,121.3 +5.5%
AvroBytesBench.eoSliceGraftPayload - 321.0 304.0 -5.3%
OrderJsoniterBench.eoSumPrices size=512 88,750.9 84,091.5 -5.2%
OpticBuildBench.buildAndUse - 1,148.2 1,207.8 +5.2%
FoldBench.eoFoldPrices size=512 2,201.7 2,089.1 -5.1%
PlatedBench.mUniverseJson n=64 24,768.8 23,513.4 -5.1%
PlatedBench.mUniverseExpr n=512 208,040.9 197,519.7 -5.1%
AvroEncodeRouteBench.naive_freshPlumbing - 678.4 645.0 -4.9%
OrderCirceBench.eoNames size=8 4,338.6 4,127.4 -4.9%
OptionalBench.mReplace_loyalty - 7.2 7.5 +4.5%
PowerSeriesBench.monocle_powerEach size=1024 60,215.5 62,890.7 +4.4%
AvroJsonBridgeBench.eoWideToJson - 687.6 657.2 -4.4%
TraversalBench.eoFoldPrices size=512 1,866.5 1,946.9 +4.3%
JsoniterBench.jMiss size=512 193.4 185.1 -4.3%
OrderJsoniterBench.naiveReadStreet size=64 12,133.5 11,623.5 -4.2%
PlatedBench.visitorUniverseExpr n=4096 55,136.9 52,831.4 -4.2%
OrderCirceBench.monocleStreet size=512 185,502.2 177,776.9 -4.2%
OptionalBench.mModify_6 - 116.9 121.8 +4.1%
MultiFocusCollectBench.naive_zipMeanBroadcast - 157.0 163.5 +4.1%
OrderCirceBench.naiveStreet size=64 21,292.0 20,434.0 -4.0%
PowerSeriesBench.monocle_powerEach size=4096 185,814.8 178,350.4 -4.0%
LensBench.eoReplace - 3.4 3.3 -4.0%
JsoniterBench.cReadId size=512 219,568.7 211,017.1 -3.9%
JsoniterBench.jReadId size=8 32.9 34.2 +3.8%
PowerSeriesNestedBench.monocle_nested size=4 1,255.7 1,209.9 -3.7%
PlatedBench.eoTransformDeep n=512 11,977.6 12,412.8 +3.6%
OrderCirceBench.eoNamesIor size=8 4,460.4 4,620.6 +3.6%
OrderJsoniterBench.naiveSumPrices size=64 12,204.5 11,780.5 -3.5%
MultiFocusCollectBench.naive_constSum - 1.8 1.8 +3.4%
AvroDecodeReuseBench.confluentRecordReaderFresh - 1,360.2 1,313.6 -3.4%
OrderAvroBench.eoModifyNames size=512 32,700.5 33,805.7 +3.4%
AvroJsonBridgeBench.eoWideToAvro - 846.7 875.2 +3.4%
OrderAvroBench.monocleModifyStreet size=8 928.3 959.4 +3.4%
OrderJsoniterBench.eoModifyStreet size=64 664.7 642.7 -3.3%
AvroJsonBridgeBench.naiveWideToJson - 1,885.5 1,947.6 +3.3%
GetterBench.mGet_orderId - 0.5 0.5 +3.3%
PowerSeriesBench.naive_powerEach size=4096 23,188.5 23,921.0 +3.2%
OrderCirceBench.monocleStreet size=64 21,153.9 20,497.6 -3.1%
OrderCirceBench.naiveStreet size=512 187,188.1 181,488.3 -3.0%
OrderCirceBench.eoStreet size=512 1,103.6 1,070.2 -3.0%
AffineFoldBench.eoGetOption_0 - 0.9 0.9 -3.0%
OrderJsoniterBench.nativeReadStreet size=512 33,779.9 32,778.1 -3.0%
OrderCirceBench.directStreet size=512 1,034.4 1,064.9 +2.9%
PlatedBench.eoUniverseDeep n=64 1,920.4 1,864.5 -2.9%
KyoDiBench.eoVarUpdateFocus - 62.8 64.6 +2.9%
MultiFocusBench.eoModify_powerEach size=4 191.2 196.7 +2.9%
OrderCirceBench.directNames size=8 4,117.1 4,234.7 +2.9%
OrderJsoniterBench.monocleSumPrices size=64 15,506.3 15,068.1 -2.8%
OrderCirceBench.monocleNames size=64 24,309.3 23,628.0 -2.8%
AvroVulcanBench.fieldGet_bridged - 99.2 101.9 +2.8%
PowerSeriesBench.eoModify_powerEach size=64 778.5 800.1 +2.8%
OrderJsoniterBench.naiveSumPrices size=8 1,908.7 1,855.7 -2.8%
OrderJsoniterBench.nativeReadStreet size=8 820.6 843.4 +2.8%
JsoniterBench.jReplaceId size=64 478.1 465.0 -2.7%
JsoniterBench.jReadId size=512 34.1 35.1 +2.7%
OrderCirceBench.monocleNames size=512 225,372.8 231,526.3 +2.7%
JsoniterBench.cReadId size=8 4,132.3 4,020.7 -2.7%
SetterBench.eoModify_6 - 24.3 23.6 -2.7%
JsoniterBench.jReplaceId size=8 109.0 106.2 -2.6%
MultiFocusBench.eoModify_multiFocus size=32 1,388.5 1,425.0 +2.6%
OrderJsoniterBench.eoReadStreet size=64 201.7 207.0 +2.6%
PowerSeriesNestedBench.eoModify_nested size=4 658.4 675.4 +2.6%
OrderCirceBench.eoStreetIor size=64 1,067.9 1,095.5 +2.6%
JsoniterBench.cReadStreet size=8 4,013.2 4,116.5 +2.6%
AvroJsonBridgeBench.naiveClickToJson - 3,007.3 2,930.5 -2.6%
FoldBench.eoFoldMap size=512 1,272.5 1,240.1 -2.5%
SchemesBench.drosteHylo - 65,229.2 63,582.1 -2.5%
OptionalBench.mModify_0 - 21.6 22.1 +2.5%
FoldBench.mFoldPrices size=512 2,170.5 2,116.3 -2.5%
PlatedBench.mUniverseJson n=4096 3,166,416.5 3,087,499.7 -2.5%
PowerSeriesNestedBench.monocle_nested size=256 92,136.9 94,403.5 +2.5%
AvroVulcanBench.decode_bridged - 194.5 199.3 +2.4%
AvroVulcanBench.encode_bridged - 251.3 257.4 +2.4%
OrderAvroBench.naiveReadStreet size=8 488.5 476.6 -2.4%
MultiFocusBench.eoFold_powerEach size=32 371.4 380.4 +2.4%
PowerSeriesBench.eoModify_powerEach size=4096 52,110.0 53,359.2 +2.4%
OrderCirceBench.hcursorNames size=512 249,331.5 243,362.0 -2.4%
KyoDiBench.handEnvUse - 84.5 86.5 +2.4%
GenericsBench.handPrismModifyMiss - 1.1 1.1 +2.4%
AffineFoldBench.eoGetOption_0_empty - 0.9 0.9 -2.4%
SetterBench.mModify_orderId - 3.3 3.3 -2.3%
OpticBuildBench.reuseUse - 1,048.8 1,073.4 +2.3%
TraversalBench.eoFoldNested size=512 5,017.4 4,901.8 -2.3%
OrderJsoniterBench.monocleReadStreet size=8 1,761.8 1,801.7 +2.3%
OrderCirceBench.eoStreet size=8 1,096.9 1,121.4 +2.2%
AvroEncodeRouteBench.handwritten_stream - 163.0 159.4 -2.2%
TraversalBench.eoModify size=512 7,081.8 7,238.8 +2.2%
OrderCirceBench.hcursorStreet size=512 1,141.4 1,166.6 +2.2%
OrderAvroBench.monocleModifyStreet size=64 5,997.5 6,129.1 +2.2%
JsoniterBench.jSumPrices size=8 1,508.5 1,476.8 -2.1%
OrderJsoniterBench.monocleModifyStreet size=64 19,528.2 19,119.1 -2.1%
GetterBench.eoGet_6 - 28.5 29.1 +2.1%
MultiFocusBench.naive_listMap size=4 33.7 33.0 -2.1%
OrderCirceBench.eoNamesIor size=64 34,619.2 33,907.6 -2.1%
OrderCirceBench.eoNames size=64 31,804.0 31,161.6 -2.0%
PowerSeriesBench.naive_powerEach size=16 103.2 101.1 -2.0%
GenericsBench.rawPrismModifyHit - 2.2 2.2 -2.0%
PlatedBench.eoTransformDeep n=4096 118,402.8 120,743.1 +2.0%
OptionalBench.eoReplace_0 - 4.5 4.6 +2.0%
FoldBench.mFoldPrices size=8 26.7 26.2 -1.9%
PowerSeriesNestedBench.monocle_nested size=64 9,080.9 8,905.8 -1.9%
AffineFoldBench.eoGetOption_3 - 14.3 14.0 -1.9%
OptionalBench.mModify_loyalty_empty - 1.6 1.6 -1.9%
OrderCirceBench.eoNames size=512 250,282.4 245,613.8 -1.9%
FoldBench.eoFoldPrices size=64 157.5 154.6 -1.8%
GetterBench.eoGet_orderId - 0.9 0.9 +1.8%
JsoniterBench.cReplaceId size=512 422,392.5 414,731.3 -1.8%
PowerSeriesBench.eoModify_powerEach size=16 266.8 262.0 -1.8%
PowerSeriesPrismBench.monocle_sparse size=512 33,672.7 33,078.7 -1.8%
JsoniterBench.jModifyId size=512 3,894.6 3,827.4 -1.7%
OrderCirceBench.eoStreetIor size=8 1,067.8 1,049.7 -1.7%
MultiFocusBench.naive_sumQty size=4 8.2 8.3 +1.7%
TraversalBench.mModify size=64 1,831.9 1,801.0 -1.7%
SetterBench.mModify_0 - 2.4 2.4 -1.7%
ClickRecordBench.encode_vulcanFull - 7,677.1 7,803.7 +1.6%
PowerSeriesBench.monocle_powerEach size=256 21,663.4 22,017.5 +1.6%
JsoniterBench.cReadStreet size=512 201,265.4 204,553.1 +1.6%
AvroBytesBench.naiveModifyCountry - 2,683.9 2,640.5 -1.6%
OrderJsoniterBench.eoSumPrices size=64 10,442.2 10,611.0 +1.6%
AvroBytesBench.naiveReadCountry - 1,678.9 1,652.2 -1.6%
OrderCirceBench.eoStreet size=64 1,045.9 1,062.4 +1.6%
AvroVulcanBench.encode_vulcanRaw - 259.6 263.6 +1.6%
TraversalBench.mModify size=512 33,263.9 33,775.7 +1.5%
IsoBench.eoReverseGet - 3.0 3.0 -1.5%
AffineFoldBench.mGetOption_6 - 23.6 24.0 +1.5%
OrderCirceBench.directNames size=512 244,505.6 248,118.2 +1.5%
CompositionBench.buildLens1 - 5.6 5.7 +1.5%
AffineFoldBench.eoGetOption_6 - 27.3 27.7 +1.5%
AvroDecodeReuseBench.freshDecodeRecord - 1,340.6 1,359.9 +1.4%
PowerSeriesNestedBench.eoModify_nested size=16 1,473.6 1,452.7 -1.4%
ZioDiBench.eoServiceReplace - 64.4 65.3 +1.4%
PowerSeriesNestedBench.eoModify_nested size=64 4,623.2 4,557.8 -1.4%
GetterBench.mGet_0 - 0.5 0.5 -1.4%
OrderCirceBench.hcursorStreet size=8 1,131.1 1,115.4 -1.4%
OrderJsoniterBench.monocleReadStreet size=64 11,220.6 11,375.0 +1.4%
PowerSeriesNestedBench.monocle_nested size=1024 251,579.2 248,139.1 -1.4%
OrderCirceBench.directStreet size=64 1,056.2 1,070.6 +1.4%
OrderAvroBench.naiveModifyStreet size=8 927.8 940.4 +1.4%
MultiFocusBench.eoModify_powerEach size=32 1,021.4 1,007.5 -1.4%
OrderAvroBench.naiveModifyStreet size=512 46,218.3 46,845.4 +1.4%
PlatedBench.visitorTransformExpr n=512 7,595.3 7,493.4 -1.3%
AvroVulcanBench.rootGet_bridged - 394.3 399.5 +1.3%
OrderJsoniterBench.eoSumPrices size=8 1,489.1 1,469.8 -1.3%
OptionalBench.eoModify_0 - 21.3 21.5 +1.3%
AvroVulcanBench.decode_vulcanRaw - 189.4 187.0 -1.3%
JsoniterBench.jSumPrices size=512 85,036.4 86,104.2 +1.3%
PowerSeriesNestedBench.naive_nested size=256 5,274.9 5,208.7 -1.3%
CapsBench.modifyDeepCap - 30.0 29.6 -1.2%
AvroVulcanBench.fieldGet_native - 102.5 101.2 -1.2%
PlatedBench.eoTransformDeep n=64 1,416.3 1,433.8 +1.2%
AffineFoldBench.mGetOption_loyalty_empty - 1.0 1.0 -1.2%
LensBench.mModifyDeep - 29.8 30.1 +1.2%
AvroBytesBench.eoGraftPayload - 156.4 158.3 +1.2%
OrderAvroBench.naiveModifyNames size=64 7,757.0 7,665.6 -1.2%
OrderJsoniterBench.nativeSumPrices size=64 7,780.9 7,689.9 -1.2%
LensBench.eoModify - 4.1 4.1 -1.2%
OptionalBench.eoModify_0_empty - 1.2 1.3 +1.2%
PrismBench.eoRightReverseGet - 2.3 2.3 -1.2%
FoldBench.mFoldPrices size=64 158.1 156.2 -1.2%
OrderAvroBench.naiveModifyNames size=512 59,672.6 60,348.4 +1.1%
PlatedBench.eoUniverseDeep n=512 14,328.1 14,485.7 +1.1%
CapsBench.getDeepCap - 1.5 1.5 -1.1%
AvroBytesBench.naivePassthroughPayload - 4,873.6 4,926.9 +1.1%
OrderCirceBench.monocleStreet size=8 3,160.6 3,195.2 +1.1%
OrderCirceBench.directNames size=64 31,112.3 30,775.9 -1.1%
PowerSeriesBench.eoModify_powerEach size=256 3,048.2 3,015.5 -1.1%
OrderAvroBench.monocleModifyNames size=512 92,592.5 91,602.2 -1.1%
MultiFocusBench.eoModify_powerEach size=1024 34,469.6 34,101.1 -1.1%
AvroBytesBench.naiveReadPartner - 2,039.2 2,017.5 -1.1%
CapsBench.getDeepDirect - 1.4 1.3 -1.1%
GenericsBench.handLensGet - 1.0 1.0 +1.1%
JsoniterBench.jModifyId size=8 111.1 109.9 -1.0%
JsoniterBench.cModifyId size=64 50,794.4 51,324.0 +1.0%
SetterBench.eoModify_0 - 2.5 2.4 -1.0%
TraversalBench.mFoldPrices size=512 31,168.7 30,849.9 -1.0%
PowerSeriesPrismBench.monocle_sparse size=32 1,072.5 1,061.6 -1.0%
AffineFoldBench.mGetOption_0_empty - 0.9 0.8 -1.0%
OrderCirceBench.naiveNames size=64 22,657.7 22,429.5 -1.0%
OrderAvroBench.naiveReadStreet size=512 25,089.9 25,341.3 +1.0%
IsoBench.mReverseGet - 3.1 3.2 +1.0%
PowerSeriesBench.monocle_powerEach size=4 208.1 206.1 -1.0%
AvroVulcanBench.decode_native - 17.4 17.2 -1.0%
AvroJsonBridgeBench.eoClickToJson - 2,786.7 2,813.6 +1.0%
PowerSeriesNestedBench.naive_nested size=4 125.7 124.5 -1.0%
OrderJsoniterBench.nativeReadStreet size=64 4,236.9 4,277.2 +1.0%
OrderAvroBench.naiveReadStreet size=64 3,232.3 3,263.0 +0.9%
CapsBench.getDirect - 1.0 1.0 +0.9%
OrderJsoniterBench.eoModifyStreet size=8 299.9 297.1 -0.9%
AvroBytesBench.eoModifyCountry - 302.2 305.0 +0.9%
IsoBench.eoGet - 3.5 3.5 -0.9%
AvroJsonBridgeBench.naiveWideToAvro - 973.5 964.5 -0.9%
AvroJsonBridgeBench.naiveClickToAvro - 1,466.2 1,452.7 -0.9%
MultiFocusCollectBench.eoCollectList_listSum - 32.1 32.4 +0.9%
PlatedBench.mTransformExpr n=64 2,494.0 2,471.6 -0.9%
GenericsBench.handPrismModifyHit - 2.8 2.8 +0.9%
OrderAvroBench.eoModifyNames size=64 4,016.2 3,980.4 -0.9%
PowerSeriesNestedBench.naive_nested size=64 1,333.4 1,321.5 -0.9%
PowerSeriesPrismBench.monocle_sparse size=2048 106,539.1 105,604.6 -0.9%
OrderJsoniterBench.naiveModifyStreet size=512 157,870.1 159,254.1 +0.9%
AvroEncodeRouteBench.eo_encodeToAny - 53.4 53.8 +0.9%
OrderJsoniterBench.eoReadStreet size=8 200.6 198.9 -0.9%
AvroDecodeReuseBench.confluentRecordReader - 435.8 439.6 +0.9%
MultiFocusBench.eoModify_multiFocus size=256 11,335.7 11,237.0 -0.9%
MultiFocusBench.eoFold_powerEach size=256 3,133.6 3,106.4 -0.9%
JsoniterBench.cSumPrices size=64 41,685.2 41,325.3 -0.9%
PowerSeriesNestedBench.naive_nested size=1024 21,895.6 21,707.1 -0.9%
PowerSeriesNestedBench.naive_nested size=16 366.9 363.8 -0.8%
SetterBench.eoModify_orderId - 3.3 3.3 -0.8%
PowerSeriesNestedBench.eoModify_nested size=256 17,635.5 17,489.6 -0.8%
AvroBytesBench.eoReadCountry - 172.8 171.4 -0.8%
PlatedBench.mTransformExpr n=512 15,167.6 15,292.2 +0.8%
PrismBench.eoGetRightAbsent - 1.0 1.0 -0.8%
JsoniterBench.cReplaceId size=8 8,372.6 8,440.0 +0.8%
PrismBench.eoGetRightPresent - 2.3 2.3 -0.8%
GenericsBench.genPrismGetHit - 2.1 2.1 -0.8%
TraversalBench.eoFoldPrices size=8 25.9 25.7 -0.8%
PlatedBench.visitorUniverseDeep n=64 753.1 747.2 -0.8%
PowerSeriesPrismBench.naive_sparse size=32 74.1 73.6 -0.8%
PlatedBench.visitorTransformDeep n=512 4,919.1 4,881.5 -0.8%
PowerSeriesPrismBench.eoModify_sparse size=128 1,322.4 1,312.2 -0.8%
MultiFocusBench.naive_sumQty size=256 680.0 685.1 +0.8%
PlatedBench.visitorTransformExpr n=64 985.8 993.2 +0.8%
JsoniterBench.jReplaceId size=512 3,794.5 3,765.9 -0.8%
PlatedBench.visitorUniverseDeep n=512 6,515.2 6,467.2 -0.7%
OrderAvroBench.monocleReadStreet size=64 3,230.4 3,254.1 +0.7%
OrderCirceBench.hcursorStreet size=64 1,114.0 1,122.2 +0.7%
OrderJsoniterBench.naiveReadStreet size=8 1,776.0 1,788.9 +0.7%
ReviewBench.naiveBuild_6 - 11.1 11.0 -0.7%
PrismBench.mGetRightPresent - 2.4 2.4 +0.7%
GenericsBench.handPrismGetMiss - 1.0 1.0 -0.7%
JsoniterBench.jReadStreet size=512 200.1 198.7 -0.7%
PrismBench.mGetRightAbsent - 1.1 1.1 -0.7%
AvroBytesBench.naiveModifyPartner - 2,899.6 2,919.3 +0.7%
KyoDiBench.handMapDrillModify - 33.8 33.6 -0.7%
TraversalBench.mFoldPrices size=64 2,047.7 2,061.5 +0.7%
MultiFocusBench.naive_sumQty size=1024 4,111.9 4,139.6 +0.7%
GetterBench.eoGet_0 - 0.9 0.9 +0.7%
FoldBench.mFoldMap size=64 157.3 156.3 -0.7%
ClickRecordBench.encode_positional - 6,415.2 6,372.5 -0.7%
GenericsBench.genPrismModifyHit - 2.9 2.9 -0.7%
PlatedBench.visitorUniverseDeep n=4096 55,220.5 54,859.8 -0.7%
SetterBench.eoModify_3 - 11.2 11.2 -0.7%
PlatedBench.mTransformExpr n=4096 164,124.1 163,059.4 -0.6%
SchemesBench.eoHylo - 84,700.8 85,248.3 +0.6%
OrderJsoniterBench.naiveSumPrices size=512 92,938.2 92,347.2 -0.6%
LensBench.mGet - 1.2 1.2 -0.6%
OrderJsoniterBench.nativeSumPrices size=512 62,354.2 61,961.9 -0.6%
OrderAvroBench.eoReadStreet size=512 35.1 35.3 +0.6%
JsoniterBench.cReadStreet size=64 26,046.9 26,207.1 +0.6%
LensBench.mReplace - 3.4 3.4 -0.6%
PlatedBench.mUniverseExpr n=4096 2,842,526.2 2,825,143.4 -0.6%
PlatedBench.eoTransformExpr n=4096 127,925.7 128,707.2 +0.6%
OrderAvroBench.naiveModifyStreet size=64 6,021.8 6,057.6 +0.6%
AvroVulcanBench.encode_native - 11.8 11.7 -0.6%
OrderCirceBench.naiveStreet size=8 3,166.0 3,184.0 +0.6%
OrderJsoniterBench.nativeSumPrices size=8 1,154.3 1,147.7 -0.6%
PowerSeriesNestedBench.monocle_nested size=16 2,615.5 2,600.9 -0.6%
OrderJsoniterBench.monocleReadStreet size=512 88,168.2 88,635.5 +0.5%
KyoDiBench.eoMapGet - 2.4 2.4 -0.5%
OrderJsoniterBench.eoModifyStreet size=512 4,073.5 4,052.1 -0.5%
FoldBench.eoFoldPrices size=8 25.7 25.5 -0.5%
GenericsBench.rawPrismGetHit - 1.8 1.8 +0.5%
GenericsBench.rawLensGet - 0.6 0.6 +0.5%
ZioDiBench.eoDrillModify - 94.0 94.5 +0.5%
JsoniterBench.jModifyId size=64 489.6 492.1 +0.5%
JsoniterBench.jReadStreet size=8 197.7 198.7 +0.5%
ZioDiBench.handDrillModify - 90.2 90.7 +0.5%
SchemesBench.drosteCata - 38,385.6 38,193.0 -0.5%
SchemesBench.handAna - 20,290.4 20,391.7 +0.5%
JsoniterBench.cSumPrices size=8 6,203.9 6,234.3 +0.5%
PlatedBench.visitorTransformExpr n=4096 64,644.1 64,327.5 -0.5%
ZioDiBench.eoServiceGet - 5.3 5.4 +0.5%
OrderCirceBench.directStreet size=8 1,044.1 1,049.2 +0.5%
OptionalBench.mModify_loyalty - 16.2 16.2 +0.5%
OrderCirceBench.eoNamesIor size=512 261,304.7 262,545.2 +0.5%
CompositionBench.reuseLeaf - 3.0 3.0 -0.5%
OrderAvroBench.eoReadStreet size=8 35.9 36.1 +0.5%
SetterBench.mModify_3 - 28.2 28.0 -0.5%
PowerSeriesPrismBench.eoModify_sparse size=512 5,689.8 5,663.9 -0.5%
ClickRecordBench.encode_derivedThroughPrism - 525.3 523.0 -0.4%
AffineFoldBench.mGetOption_loyalty - 1.0 1.0 +0.4%
ClickRecordBench.encode_hand - 141.3 141.9 +0.4%
PlatedBench.eoUniverseExpr n=512 13,960.8 14,022.3 +0.4%
OptionalBench.eoModify_6 - 135.9 136.5 +0.4%
ReviewBench.naiveBuild_3 - 6.6 6.7 +0.4%
AvroJsonBridgeBench.eoClickToAvro - 2,948.2 2,935.8 -0.4%
FoldBench.mFoldMap size=512 1,231.4 1,236.6 +0.4%
OrderAvroBench.monocleReadStreet size=8 473.0 475.0 +0.4%
KyoDiBench.handMapGet - 1.9 1.9 +0.4%
ReviewBench.eoReverseGet_3 - 19.4 19.3 -0.4%
PowerSeriesBench.monocle_powerEach size=16 604.9 607.4 +0.4%
PowerSeriesNestedBench.eoModify_nested size=1024 71,940.2 72,236.0 +0.4%
OrderAvroBench.monocleModifyNames size=64 9,023.3 9,059.5 +0.4%
OrderAvroBench.eoModifyStreet size=512 111.3 111.8 +0.4%
OrderAvroBench.eoReadStreet size=64 35.1 35.2 +0.4%
MultiFocusBench.naive_listMap size=256 2,079.0 2,070.8 -0.4%
SchemesBench.eoAna - 104,216.7 103,808.8 -0.4%
TraversalBench.mModify size=8 285.3 284.2 -0.4%
OrderCirceBench.monocleNames size=8 3,664.4 3,678.5 +0.4%
SchemesBench.eoCata - 76,998.6 76,711.6 -0.4%
JsoniterBench.jMiss size=8 183.3 184.0 +0.4%
LensBench.eoGet - 1.0 1.0 +0.4%
MultiFocusBench.naive_listMap size=32 250.6 249.7 -0.4%
PowerSeriesBench.eoModify_powerEach size=1024 12,421.1 12,375.7 -0.4%
AffineFoldBench.eoGetOption_0_asAffineFold - 0.9 0.9 +0.4%
PrismBench.mRightReverseGet - 2.6 2.6 -0.4%
OrderJsoniterBench.monocleSumPrices size=512 428,391.7 426,867.6 -0.4%
JsoniterBench.jSumPrices size=64 10,846.1 10,883.9 +0.3%
ReviewBench.naiveBuild_0 - 2.3 2.2 -0.3%
AffineFoldBench.eoGetOption_loyalty - 1.0 1.0 +0.3%
PlatedBench.visitorTransformDeep n=64 427.7 426.3 -0.3%
TraversalBench.eoModify size=64 842.6 845.4 +0.3%
JsoniterBench.jReadId size=64 34.2 34.1 -0.3%
OrderCirceBench.hcursorNames size=8 4,160.6 4,174.7 +0.3%
OrderAvroBench.eoModifyNames size=8 568.6 570.5 +0.3%
JsoniterBench.cReplaceId size=64 51,035.3 51,205.9 +0.3%
PowerSeriesBench.naive_powerEach size=64 395.5 396.8 +0.3%
OrderJsoniterBench.naiveModifyStreet size=64 18,807.1 18,745.0 -0.3%
PowerSeriesBench.monocle_powerEach size=64 2,151.4 2,144.3 -0.3%
MultiFocusCollectBench.eoCollectMap_zipMean - 122.2 122.6 +0.3%
OrderAvroBench.monocleModifyNames size=8 1,409.4 1,414.0 +0.3%
CompositionBench.reuseLensOptional3 - 57.6 57.8 +0.3%
MultiFocusBench.naive_sumQty size=32 58.3 58.5 +0.3%
PrismBench.eoGetOptionAbsent - 0.9 0.9 -0.3%
OptionalBench.mModify_3 - 71.2 71.4 +0.3%
PrismBench.mGetOptionAbsent - 1.0 1.0 -0.3%
OrderCirceBench.naiveNames size=8 3,403.5 3,393.2 -0.3%
SchemesBench.handCata - 12,549.6 12,587.5 +0.3%
GenericsBench.genLensGet - 1.0 1.0 -0.3%
PowerSeriesPrismBench.naive_sparse size=8 25.0 24.9 -0.3%
PowerSeriesPrismBench.eoModify_sparse size=8 118.8 118.5 -0.3%
ZioDiBench.handDrillGet - 13.9 14.0 +0.3%
CompositionBench.buildLens3 - 21.4 21.4 -0.3%
AvroDecodeReuseBench.cachedDecodeRecord - 402.7 403.9 +0.3%
TraversalBench.eoFoldNested size=64 532.5 530.9 -0.3%
ZioDiBench.handServiceGet - 13.9 14.0 +0.3%
JsoniterBench.cModifyId size=512 415,099.5 413,959.0 -0.3%
PowerSeriesBench.naive_powerEach size=4 25.0 25.1 +0.3%
SchemesBench.drosteAna - 47,268.5 47,142.7 -0.3%
MultiFocusBench.eoFold_powerEach size=1024 14,446.5 14,484.4 +0.3%
ZioDiBench.eoDrillGet - 10.3 10.3 -0.3%
ReviewBench.eoReverseGet_0 - 2.4 2.4 -0.3%
KyoDiBench.eoEnvFocus - 84.9 84.7 -0.3%
PlatedBench.eoUniverseJson n=4096 217,401.0 216,839.9 -0.3%
PrismBench.mReverseGet - 2.6 2.6 -0.3%
AvroBytesBench.prunedReadCountry - 935.1 937.4 +0.2%
PrismBench.eoReverseGet - 2.3 2.3 +0.2%
OptionalBench.eoModify_3 - 57.8 57.7 -0.2%
OrderJsoniterBench.monocleModifyStreet size=512 157,645.0 158,019.9 +0.2%
CompositionBench.reuseLens6 - 123.7 123.4 -0.2%
PlatedBench.visitorUniverseExpr n=512 6,514.0 6,528.5 +0.2%
ReviewBench.eoReverseGet_6 - 33.9 33.8 -0.2%
OrderJsoniterBench.monocleModifyStreet size=8 3,180.4 3,173.4 -0.2%
PlatedBench.mUniverseJson n=512 238,996.8 239,496.3 +0.2%
CompositionBench.reuseLens1 - 16.6 16.5 -0.2%
ClickRecordBench.encode_derived - 514.0 515.1 +0.2%
AvroVulcanBench.rootGet_native - 166.0 165.7 -0.2%
PlatedBench.eoUniverseExpr n=4096 99,412.8 99,209.4 -0.2%
FoldBench.eoFoldMap size=64 158.0 158.3 +0.2%
CapsBench.foldMapDerivedHeld - 22.2 22.1 -0.2%
OrderAvroBench.eoModifyStreet size=64 111.1 111.4 +0.2%
CompositionBench.buildLens6 - 38.4 38.5 +0.2%
MultiFocusBench.naive_listMap size=1024 8,356.3 8,339.6 -0.2%
AffineFoldBench.mGetOption_3 - 9.7 9.7 +0.2%
PowerSeriesPrismBench.naive_sparse size=2048 4,990.0 4,980.6 -0.2%
CompositionBench.buildLensOptional3 - 21.1 21.0 -0.2%
MultiFocusBench.eoModify_multiFocus size=1024 51,273.4 51,368.2 +0.2%
PrismBench.eoGetOptionPresent - 0.9 0.9 -0.2%
ZioDiBench.handServiceReplace - 73.5 73.7 +0.2%
OrderAvroBench.eoModifyStreet size=8 110.9 111.1 +0.2%
GenericsBench.handPrismGetHit - 2.0 2.0 +0.2%
PowerSeriesBench.eoModify_powerEach size=4 124.7 124.5 -0.2%
PowerSeriesPrismBench.naive_sparse size=512 1,164.9 1,162.8 -0.2%
FoldBench.eoFoldMap size=8 21.4 21.5 +0.2%
CapsBench.modifyCap - 4.2 4.2 -0.2%
JsoniterBench.jReadStreet size=64 198.9 198.6 -0.2%
MultiFocusCollectBench.eoCollectMap_constSum - 2.0 2.0 -0.2%
GenericsBench.genPrismModifyMiss - 1.2 1.2 -0.2%
OrderJsoniterBench.naiveReadStreet size=512 88,031.4 88,178.2 +0.2%
LensBench.mModify - 4.7 4.7 -0.2%
OptionalBench.eoModify_loyalty - 16.6 16.6 -0.2%
MultiFocusCollectBench.naive_listSum - 29.6 29.7 +0.2%
CapsBench.modifyDeepDirect - 33.0 33.0 -0.2%
GenericsBench.genLensModify - 3.6 3.6 -0.2%
OptionalBench.mModify_0_empty - 1.4 1.4 +0.2%
PowerSeriesBench.naive_powerEach size=1024 6,707.7 6,718.0 +0.2%
PrismBench.mGetOptionPresent - 1.0 1.0 +0.2%
PowerSeriesBench.naive_powerEach size=256 1,613.8 1,616.1 +0.1%
TraversalBench.mFoldPrices size=8 324.1 324.6 +0.1%
IsoBench.mGet - 3.6 3.6 -0.1%
AffineFoldBench.eoGetOption_0_asOptional - 2.2 2.1 -0.1%
OptionalBench.eoModify_loyalty_empty - 1.2 1.2 +0.1%
PlatedBench.eoTransformExpr n=64 1,995.8 1,993.3 -0.1%
CapsBench.foldMapDirect - 21.5 21.4 -0.1%
CapsBench.modifyDerivedPerCall - 4.7 4.7 +0.1%
CapsBench.foldMapCap - 21.5 21.5 -0.1%
OrderAvroBench.naiveModifyNames size=8 1,100.0 1,101.2 +0.1%
PlatedBench.visitorUniverseExpr n=64 800.6 801.5 +0.1%
AffineFoldBench.eoGetOption_loyalty_empty - 1.0 1.0 -0.1%
PlatedBench.visitorTransformDeep n=4096 42,417.0 42,372.9 -0.1%
PlatedBench.visitorUniverseJson n=512 26,101.0 26,126.8 +0.1%
MultiFocusBench.eoFold_powerEach size=4 84.0 84.1 +0.1%
FoldBench.mFoldMap size=8 20.9 20.9 +0.1%
PlatedBench.eoUniverseJson n=512 24,685.1 24,662.6 -0.1%
OrderCirceBench.naiveNames size=512 192,041.7 191,869.0 -0.1%
JsoniterBench.jMiss size=64 183.4 183.2 -0.1%
GenericsBench.rawLensModify - 2.2 2.2 +0.1%
OrderAvroBench.monocleModifyStreet size=512 46,164.1 46,204.7 +0.1%
CapsBench.modifyDerivedHeld - 5.2 5.2 +0.1%
GetterBench.eoGet_3 - 16.2 16.2 +0.1%
OrderJsoniterBench.naiveModifyStreet size=8 3,172.5 3,170.0 -0.1%
CapsBench.getCap - 1.2 1.2 +0.1%
KyoDiBench.eoMapDrillModify - 39.2 39.2 +0.1%
CapsBench.foldMapDerivedPerCall - 21.1 21.1 -0.1%
OrderJsoniterBench.monocleSumPrices size=8 2,450.1 2,451.7 +0.1%
TraversalBench.eoModify size=8 95.0 95.1 +0.1%
OrderJsoniterBench.eoReadStreet size=512 199.5 199.4 -0.1%
GenericsBench.handLensModify - 2.8 2.8 -0.1%
PlatedBench.eoUniverseDeep n=4096 98,889.4 98,838.0 -0.1%
PowerSeriesPrismBench.naive_sparse size=128 286.3 286.5 +0.1%
OpticBuildBench.build - 44.7 44.7 -0.0%
AffineFoldBench.mGetOption_0 - 0.8 0.8 -0.0%
PlatedBench.eoUniverseJson n=64 2,983.5 2,984.6 +0.0%
GenericsBench.genPrismGetMiss - 1.1 1.1 +0.0%
PlatedBench.eoUniverseExpr n=64 1,798.6 1,799.2 +0.0%
CompositionBench.reuseLens3 - 45.5 45.4 -0.0%
CapsBench.getDerivedPerCall - 1.6 1.6 -0.0%
MultiFocusCollectBench.eoModify_multiFocusTuple6 - 27.9 27.9 +0.0%
TraversalBench.eoFoldPrices size=64 155.9 155.9 -0.0%
AvroBytesBench.prunedReadPartner - 625.6 625.7 +0.0%
PlatedBench.eoTransformExpr n=512 15,957.1 15,958.0 +0.0%
CapsBench.getDerivedHeld - 2.3 2.3 +0.0%
SetterBench.mModify_6 - 64.0 64.0 -0.0%

base_sha: c8bceb153c038cc02d2faccfde03e0ba25d844c5 · head_sha: 4e71ecca4e292af4b2e805ee1b8237567b4e0c44 · jdk: temurin-21 · runner: ubuntu-22.04 · jmh_params: -i 3 -wi 2 -f 1 -t 1 -foe true -prof gc -rf json -jvmArgsAppend -XX:-ResizeTLAB -jvmArgsAppend -Xms1g -jvmArgsAppend -Xmx1g · profile: pr:-i3-wi2-f1-t1-gc-rt1g

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