Skip to content

fix warnings across event-graph-walker, loom, alga, lang/markdown#754

Merged
dowdiness merged 9 commits into
mainfrom
fix/warnings
Jun 23, 2026
Merged

fix warnings across event-graph-walker, loom, alga, lang/markdown#754
dowdiness merged 9 commits into
mainfrom
fix/warnings

Conversation

@dowdiness

@dowdiness dowdiness commented Jun 23, 2026

Copy link
Copy Markdown
Owner

Fix deprecated API warnings in workspace (excluding rabbita).

Changes:

  • event-graph-walker: Rle::new()Rle::Rle(), try?try{Ok(...)}, bump rle 0.2.2→0.2.3
  • loom: update submodule pointers for egglog+egraph warning fixes
  • alga: remove empty impl DirectedGraph, suppress unused_value
  • lang/markdown: suppress unused_package warning (@loomproj used by wbtests)

Submodule PRs:

Summary by CodeRabbit

  • Chores
    • Updated multiple internal project dependencies and submodule references to newer versions.
    • Added new package-level configuration setting for build management.

event-graph-walker: Rle::new->Rle::Rle, try?->try+Ok, bump rle 0.2.2->0.2.3
loom: update submodule pointers for egglog+egraph warning fixes
alga: remove unused impl, suppress unused_value
lang/markdown: suppress unused_package warning (loomproj used by wbtests)
@coderabbitai

coderabbitai Bot commented Jun 23, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@dowdiness, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 44 minutes and 5 seconds. Learn how PR review limits work.

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits.

🚦 How do rate limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate.

For paid Pro and Pro+ PR reviews, CodeRabbit uses rolling per-developer review limits. Reviews become available again as older review attempts age out of the rolling limit window.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: a64eff55-a44f-4535-a672-fffe446263b3

📥 Commits

Reviewing files that changed from the base of the PR and between c076ec1 and 3e2a42a.

📒 Files selected for processing (2)
  • lang/markdown/proj/moon.pkg
  • loom
📝 Walkthrough

Walkthrough

Three submodule commit pointers (alga, event-graph-walker, loom) are updated to new revisions. Additionally, a warnings = "-29" entry is added to lang/markdown/proj/moon.pkg to suppress warning code 29 at the package level.

Changes

Submodule Updates and Package Config

Layer / File(s) Summary
Submodule pointer updates
alga, event-graph-walker, loom
Each submodule's recorded commit hash is bumped to a new revision, changing the checked-in dependency content for all three.
Markdown package warnings suppression
lang/markdown/proj/moon.pkg
Adds warnings = "-29" to suppress warning code 29 at the markdown package level.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

  • dowdiness/canopy#200: Also pins the loom submodule commit hash in the same repository.
  • dowdiness/canopy#720: Updates the loom submodule pointer, overlapping with this PR's loom bump.
  • dowdiness/canopy#344: Updates the loom git submodule pointer to a different pinned commit, same dependency reference level.

Suggested labels

housekeeping

🐰 A hop and a skip through the git log,
Three submodule pointers roll out of the fog.
Warnings suppressed with a neat little "-29",
The markdown stays tidy, the modules align.
Another small bundle of changes — how fine! 🌿

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main objective of the PR, which is to fix warnings across multiple packages (event-graph-walker, loom, alga, and lang/markdown).
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/warnings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jun 23, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
lambda-editor 3e2a42a Commit Preview URL

Branch Preview URL
Jun 23 2026, 02:56 PM

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b569390a8d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread loom Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e70cc2dd13

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread loom Outdated
@github-actions

github-actions Bot commented Jun 23, 2026

Copy link
Copy Markdown

Benchmark Comparison Report

Comparing PR branch against main

Main Module Benchmarks

Base branch:

(base branch benchmark failed — may not compile)

PR branch:

Registry index updated successfully
Symbols updated successfully
Using cached moonbitlang/quickcheck@0.14.0
Using cached moonbitlang/x@0.4.38
Using cached moonbitlang/async@0.16.8
Using cached dowdiness/incr@0.9.0
Warning: [0020]
    ╭─[ /home/runner/work/canopy/canopy/order-tree/order_tree_test.mbt:62:11 ]
    │
 62 │   inspect(tree.get_at(0), content="None")
    │           ───────┬──────  
    │                  ╰──────── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
────╯
Warning: [0020]
    ╭─[ /home/runner/work/canopy/canopy/order-tree/order_tree_test.mbt:68:11 ]
    │
 68 │   inspect(tree.find(0), content="None")
    │           ──────┬─────  
    │                 ╰─────── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
────╯
Warning: [0020]
    ╭─[ /home/runner/work/canopy/canopy/order-tree/order_tree_test.mbt:77:11 ]
    │
 77 │   inspect(tree.get_at(0).map(fn(t) { t.value }), content="Some(42)")
    │           ──────────────────┬──────────────────  
    │                             ╰──────────────────── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
────╯
Warning: [0020]
    ╭─[ /home/runner/work/canopy/canopy/order-tree/order_tree_test.mbt:86:11 ]
    │
 86 │   inspect(tree.get_at(1).map(fn(t) { t.value }), content="Some(1)")
    │           ──────────────────┬──────────────────  
    │                             ╰──────────────────── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
────╯
Warning: [0020]
     ╭─[ /home/runner/work/canopy/canopy/order-tree/order_tree_test.mbt:114:11 ]
     │
 114 │   inspect(tree.get_at(3).map(fn(t) { t.value }), content="Some(2)")
     │           ──────────────────┬──────────────────  
     │                             ╰──────────────────── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
─────╯
Warning: [0020]
     ╭─[ /home/runner/work/canopy/canopy/order-tree/order_tree_test.mbt:126:11 ]
     │
 126 │   inspect(tree.get_at(3).map(fn(t) { t.value }), content="Some(30)")
     │           ──────────────────┬──────────────────  
     │                             ╰──────────────────── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
─────╯
Warning: [0020]
     ╭─[ /home/runner/work/canopy/canopy/order-tree/order_tree_test.mbt:138:11 ]
     │
 138 │   inspect(tree.get_at(99).map(fn(t) { t.value }), content="Some(99)")
     │           ───────────────────┬──────────────────  
     │                              ╰──────────────────── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
─────╯
Warning: [0020]
     ╭─[ /home/runner/work/canopy/canopy/order-tree/order_tree_test.mbt:147:11 ]
     │
 147 │   inspect(tree.get_at(1).map(fn(t) { t.value }), content="Some(2)")
     │           ──────────────────┬──────────────────  
     │                             ╰──────────────────── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
─────╯
Warning: [0020]
     ╭─[ /home/runner/work/canopy/canopy/order-tree/order_tree_test.mbt:155:11 ]
     │
 155 │   inspect(deleted.map(fn(t) { t.value }), content="Some(42)")
     │           ───────────────┬──────────────  
     │                          ╰──────────────── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
─────╯
Warning: [0020]
     ╭─[ /home/runner/work/canopy/canopy/order-tree/order_tree_test.mbt:167:11 ]
     │
 167 │   inspect(tree.get_at(0).map(fn(t) { t.value }), content="Some(1)")
     │           ──────────────────┬──────────────────  
     │                             ╰──────────────────── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
─────╯
Warning: [0020]
     ╭─[ /home/runner/work/canopy/canopy/order-tree/order_tree_test.mbt:178:11 ]
     │
 178 │   inspect(deleted.map(fn(t) { t.value }), content="Some(4)")
     │           ───────────────┬──────────────  
     │                          ╰──────────────── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
─────╯
Warning: [0020]
     ╭─[ /home/runner/work/canopy/canopy/order-tree/order_tree_test.mbt:190:11 ]
     │
 190 │   inspect(tree.get_at(2).map(fn(t) { t.value }), content="Some(3)")
     │           ──────────────────┬──────────────────  
     │                             ╰──────────────────── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
─────╯
Warning: [0020]
     ╭─[ /home/runner/work/canopy/canopy/order-tree/order_tree_test.mbt:206:11 ]
     │
 206 │   inspect(tree.get_at(1).map(fn(t) { t.value }), content="Some(60)")
     │           ──────────────────┬──────────────────  
     │                             ╰──────────────────── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
─────╯
Warning: [0020]
     ╭─[ /home/runner/work/canopy/canopy/order-tree/order_tree_test.mbt:214:11 ]
     │
 214 │   inspect(tree.delete_at(-1), content="None")
     │           ─────────┬────────  
     │                    ╰────────── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
─────╯
Warning: [0020]
     ╭─[ /home/runner/work/canopy/canopy/order-tree/order_tree_test.mbt:239:11 ]
     │
 239 │   inspect(tree.get_at(2).map(fn(t) { t.value }), content="Some(99)")
     │           ──────────────────┬──────────────────  
     │                             ╰──────────────────── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
─────╯
Warning: [0020]
     ╭─[ /home/runner/work/canopy/canopy/order-tree/order_tree_test.mbt:249:11 ]
     │
 249 │   inspect(tree.set_at(5, ti(99)), content="None")
     │           ───────────┬──────────  
     │                      ╰──────────── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
─────╯
Warning: [0020]
     ╭─[ /home/runner/work/canopy/canopy/order-tree/order_tree_test.mbt:259:11 ]
     │
 259 │   inspect(tree.set_at(-1, ti(99)), content="None")
     │           ───────────┬───────────  
     │                      ╰───────────── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
─────╯
Warning: [0020]
     ╭─[ /home/runner/work/canopy/canopy/order-tree/order_tree_test.mbt:273:11 ]
     │
 273 │   inspect(tree.get_at(3).map(fn(t) { t.value }), content="Some(7)")
     │           ──────────────────┬──────────────────  
     │                             ╰──────────────────── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
─────╯
Warning: [0020]
     ╭─[ /home/runner/work/canopy/canopy/order-tree/order_tree_test.mbt:307:11 ]
     │
 307 │   inspect(result, content="[0, 1, 2, 3, 4]")
     │           ───┬──  
     │              ╰──── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
─────╯
Warning: [0020]
     ╭─[ /home/runner/work/canopy/canopy/order-tree/order_tree_test.mbt:317:11 ]
     │
 317 │   inspect(result, content="[0, 1, 2, 3, 4]")
     │           ───┬──  
     │              ╰──── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
─────╯
Warning: [0020]
     ╭─[ /home/runner/work/canopy/canopy/order-tree/order_tree_test.mbt:338:11 ]
     │
 338 │   inspect(tree.get_at(0).map(fn(t) { t.value }), content="Some(42)")
     │           ──────────────────┬──────────────────  
     │                             ╰──────────────────── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
─────╯
Warning: [0020]
     ╭─[ /home/runner/work/canopy/canopy/order-tree/order_tree_test.mbt:381:11 ]
     │
 381 │   inspect(tree.get_at(25).map(fn(t) { t.value }), content="Some(26)")
     │           ───────────────────┬──────────────────  
     │                              ╰──────────────────── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
─────╯
Warning: [0020]
     ╭─[ /home/runner/work/canopy/canopy/order-tree/order_tree_test.mbt:392:11 ]
     │
 392 │   inspect(tree.get_at(25).map(fn(t) { t.value }), content="Some(999)")
     │           ───────────────────┬──────────────────  
     │                              ╰──────────────────── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
─────╯
Warning: [0020]
     ╭─[ /home/runner/work/canopy/canopy/order-tree/order_tree_test.mbt:420:11 ]
     │
 420 │   inspect(tree[10], content="None")
     │           ────┬───  
     │               ╰───── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
─────╯
Warning: [0020]
     ╭─[ /home/runner/work/canopy/canopy/order-tree/order_tree_test.mbt:423:11 ]
     │
 423 │   inspect(tree[2].map(fn(t) { t.value }), content="Some(99)")
     │           ───────────────┬──────────────  
     │                          ╰──────────────── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
─────╯
Warning: [0020]
    ╭─[ /home/runner/work/canopy/canopy/order-tree/walker_wbtest.mbt:72:5 ]
    │
 72 │     tree.find(1).map(fn(fr) { fr.elem }),
    │     ──────────────────┬─────────────────  
    │                       ╰─────────────────── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
────╯
Warning: [0020]
    ╭─[ /home/runner/work/canopy/canopy/rle/example/authored/main.mbt:72:45 ]
    │
 72 │   rle2.append(authored("bob", " world")) |> println
    │                                             ───┬───  
    │                                                ╰───── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
────╯
Warning: [0020]
    ╭─[ /home/runner/work/canopy/canopy/rle/example/main.mbt:16:27 ]
    │
 16 │   rle.append(" world") |> println // Ok(()) — merged into one run
    │                           ───┬───  
    │                              ╰───── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
────╯
Warning: [0020]
    ╭─[ /home/runner/work/canopy/canopy/rle/example/main.mbt:57:24 ]
    │
 57 │   rle.append("ghi") |> println
    │                        ───┬───  
    │                           ╰───── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
────╯
Warning: [0020]
     ╭─[ /home/runner/work/canopy/canopy/rle/example/pixel/main.mbt:128:36 ]
     │
 128 │   rle4.append(pixel(green, 20)) |> println
     │                                    ───┬───  
     │                                       ╰───── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
─────╯
Warning: [0020]
    ╭─[ /home/runner/work/canopy/canopy/rle/example/string/main.mbt:94:28 ]
    │
 94 │   rle6.append(" world") |> println //=> Ok(())
    │                            ───┬───  
    │                               ╰───── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
────╯
Warning: [0020]
    ╭─[ /home/runner/work/canopy/canopy/rle/rle_test.mbt:37:11 ]
    │
 37 │   inspect(result, content="Err(Internal(EmptyElement))")
    │           ───┬──  
    │              ╰──── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
────╯
Warning: [0020]
     ╭─[ /home/runner/work/canopy/canopy/rle/rle_test.mbt:973:11 ]
     │
 973 │   inspect(positions[1], content="(3, 6)")
     │           ──────┬─────  
     │                 ╰─────── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
─────╯
Warning: [0020]
     ╭─[ /home/runner/work/canopy/canopy/rle/rle_test.mbt:987:11 ]
     │
 987 │   inspect(units, content="[0, 1, 2, 3, 4]")
     │           ──┬──  
     │             ╰──── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
─────╯
Warning: [0020]
     ╭─[ /home/runner/work/canopy/canopy/rle/rle_test.mbt:994:11 ]
     │
 994 │   inspect(units, content="[0, 1, 2, 5, 6, 7]")
     │           ──┬──  
     │             ╰──── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
─────╯
Warning: [0020]
      ╭─[ /home/runner/work/canopy/canopy/rle/rle_test.mbt:1001:11 ]
      │
 1001 │   inspect(units, content="[42]")
      │           ──┬──  
      │             ╰──── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
──────╯
Warning: [0020]
      ╭─[ /home/runner/work/canopy/canopy/rle/rle_test.mbt:1008:11 ]
      │
 1008 │   inspect(units, content="[1, 2, 5, 6]")
      │           ──┬──  
      │             ╰──── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
──────╯
Warning: [0020]
      ╭─[ /home/runner/work/canopy/canopy/rle/rle_test.mbt:1016:11 ]
      │
 1016 │   inspect(units, content="[0, 1, 2, 3, 4]")
      │           ──┬──  
      │             ╰──── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
──────╯
Warning: [0020]
     ╭─[ /home/runner/work/canopy/canopy/rle/runs_properties_test.mbt:552:11 ]
     │
 552 │   inspect(lengths, content="[0, 1, 2, 11, 2, 4, 4]")
     │           ───┬───  
     │              ╰───── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
─────╯
Warning: [0020]
     ╭─[ /home/runner/work/canopy/canopy/rle/runs_test.mbt:303:11 ]
     │
 303 │   inspect(sums.content, content="[5]")
     │           ──────┬─────  
     │                 ╰─────── Warning (deprecated): Use Debug instead of Show for debugging purposes. See https://github.com/moonbitlang/core/blob/main/debug/README.mbt.md
─────╯
Warning: Some diagnostics could not be rendered, please run with --no-render to see raw output.
[dowdiness/alga] bench benchmark.mbt:47 ("bench/from_edges/100") ok
time (mean ± σ)         range (min … max) 
  15.50 µs ± 421.93 ns    15.27 µs …  16.49 µs  in 10 ×   6243 runs
[dowdiness/alga] bench benchmark.mbt:56 ("bench/from_edges/1000") ok
time (mean ± σ)         range (min … max) 
 210.25 µs ±   1.79 µs   208.84 µs … 213.80 µs  in 10 ×    467 runs
[dowdiness/alga] bench benchmark.mbt:65 ("bench/from_edges/10000") ok
time (mean ± σ)         range (min … max) 
   5.47 ms ± 173.51 µs     5.13 ms …   5.67 ms  in 10 ×     19 runs
[dowdiness/alga] bench benchmark.mbt:76 ("bench/toposort/chain_100") ok
time (mean ± σ)         range (min … max) 
  16.95 µs ± 118.33 ns    16.81 µs …  17.19 µs  in 10 ×   5837 runs
[dowdiness/alga] bench benchmark.mbt:82 ("bench/toposort/chain_1000") ok
time (mean ± σ)         range (min … max) 
 199.62 µs ± 470.79 ns   198.83 µs … 200.20 µs  in 10 ×    505 runs
[dowdiness/alga] bench benchmark.mbt:88 ("bench/toposort/chain_10000") ok
time (mean ± σ)         range (min … max) 
   3.93 ms ± 102.54 µs     3.85 ms …   4.16 ms  in 10 ×     26 runs
[dowdiness/alga] bench benchmark.mbt:94 ("bench/toposort/diamond_100") ok
time (mean ± σ)         range (min … max) 
  25.54 µs ± 983.56 ns    24.98 µs …  28.04 µs  in 10 ×   3933 runs
[dowdiness/alga] bench benchmark.mbt:100 ("bench/toposort/diamond_1000") ok
time (mean ± σ)         range (min … max) 
 335.16 µs ±   3.12 µs   331.27 µs … 340.28 µs  in 10 ×    294 runs
[dowdiness/alga] bench benchmark.mbt:108 ("bench/topo_levels/chain_1000") ok
time (mean ± σ)         range (min … max) 
 268.04 µs ±   1.96 µs   265.40 µs … 270.83 µs  in 10 ×    373 runs
[dowdiness/alga] bench benchmark.mbt:114 ("bench/topo_levels/diamond_1000") ok
time (mean ± σ)         range (min … max) 
 464.15 µs ±   1.58 µs   462.12 µs … 466.88 µs  in 10 ×    216 runs
[dowdiness/alga] bench benchmark.mbt:122 ("bench/toposort_subset/chain_1000_full") ok
time (mean ± σ)         range (min … max) 
 227.24 µs ±   4.77 µs   223.42 µs … 237.17 µs  in 10 ×    446 runs
[dowdiness/alga] bench benchmark.mbt:129 ("bench/toposort_subset/chain_1000_half") ok
time (mean ± σ)         range (min … max) 
  68.36 µs ± 405.90 ns    67.82 µs …  68.88 µs  in 10 ×   1468 runs
[dowdiness/alga] bench benchmark.mbt:136 ("bench/toposort_subset/diamond_1000_full") ok
time (mean ± σ)         range (min … max) 
 430.52 µs ±   1.91 µs   428.22 µs … 434.15 µs  in 10 ×    234 runs
[dowdiness/alga] bench benchmark.mbt:145 ("bench/reachable/chain_100") ok
time (mean ± σ)         range (min … max) 
   6.68 µs ±  10.48 ns     6.67 µs …   6.70 µs  in 10 ×  14876 runs
[dowdiness/alga] bench benchmark.mbt:151 ("bench/reachable/chain_1000") ok
time (mean ± σ)         range (min … max) 
  92.75 µs ±   1.34 µs    91.19 µs …  96.34 µs  in 10 ×   1088 runs
[dowdiness/alga] bench benchmark.mbt:157 ("bench/reachable/chain_10000") ok
time (mean ± σ)         range (min … max) 
   1.72 ms ±  33.13 µs     1.69 ms …   1.78 ms  in 10 ×     58 runs
[dowdiness/alga] bench benchmark.mbt:163 ("bench/reachable/diamond_100") ok
time (mean ± σ)         range (min … max) 
   3.83 µs ±   3.98 ns     3.83 µs …   3.84 µs  in 10 ×  26066 runs
[dowdiness/alga] bench benchmark.mbt:169 ("bench/reachable/diamond_1000") ok
time (mean ± σ)         range (min … max) 
  46.45 µs ± 260.29 ns    46.11 µs …  46.79 µs  in 10 ×   2154 runs
[dowdiness/alga] bench benchmark.mbt:177 ("bench/bfs/chain_1000") ok
time (mean ± σ)         range (min … max) 
  92.44 µs ± 580.11 ns    91.86 µs …  93.59 µs  in 10 ×   1095 runs
[dowdiness/alga] bench benchmark.mbt:183 ("bench/bfs/diamond_1000") ok
time (mean ± σ)         range (min … max) 
  46.90 µs ± 153.48 ns    46.73 µs …  47.13 µs  in 10 ×   2135 runs
[dowdiness/alga] bench benchmark.mbt:191 ("bench/bfs_multi/chain_1000") ok
time (mean ± σ)         range (min … max) 
  89.27 µs ± 400.51 ns    88.45 µs …  89.81 µs  in 10 ×   1118 runs
[dowdiness/alga] bench benchmark.mbt:201 ("bench/dfs_multi/chain_1000") ok
time (mean ± σ)         range (min … max) 
  89.03 µs ± 553.23 ns    88.44 µs …  90.00 µs  in 10 ×   1108 runs
[dowdiness/alga] bench benchmark.mbt:211 ("bench/has_cycle/acyclic_1000") ok
time (mean ± σ)         range (min … max) 
 200.04 µs ±   1.81 µs   198.15 µs … 203.13 µs  in 10 ×    504 runs
[dowdiness/alga] bench benchmark.mbt:217 ("bench/has_cycle/cyclic_1000") ok
time (mean ± σ)         range (min … max) 
 142.59 µs ±   1.12 µs   141.75 µs … 145.58 µs  in 10 ×    707 runs
[dowdiness/alga] bench benchmark.mbt:225 ("bench/scc/acyclic_100") ok
time (mean ± σ)         range (min … max) 
  18.59 µs ±  75.97 ns    18.49 µs …  18.73 µs  in 10 ×   5376 runs
[dowdiness/alga] bench benchmark.mbt:231 ("bench/scc/acyclic_1000") ok
time (mean ± σ)         range (min … max) 
 304.62 µs ±   1.18 µs   302.86 µs … 306.17 µs  in 10 ×    326 runs
[dowdiness/alga] bench benchmark.mbt:237 ("bench/scc/cyclic_100") ok
time (mean ± σ)         range (min … max) 
  17.88 µs ±  81.85 ns    17.82 µs …  18.11 µs  in 10 ×   5601 runs
[dowdiness/alga] bench benchmark.mbt:243 ("bench/scc/cyclic_1000") ok
time (mean ± σ)         range (min … max) 
 317.30 µs ±   3.15 µs   313.10 µs … 322.18 µs  in 10 ×    317 runs
[dowdiness/alga] bench benchmark.mbt:251 ("bench/dfs_events/chain_1000") ok
time (mean ± σ)         range (min … max) 
 193.20 µs ± 902.64 ns   191.87 µs … 194.42 µs  in 10 ×    513 runs
[dowdiness/alga] bench benchmark.mbt:257 ("bench/dfs_events/diamond_1000") ok
time (mean ± σ)         range (min … max) 
 312.26 µs ±   1.57 µs   310.50 µs … 315.15 µs  in 10 ×    320 runs
[dowdiness/alga] bench benchmark.mbt:263 ("bench/dfs_events/cyclic_1000") ok
time (mean ± σ)         range (min … max) 
 213.68 µs ±   1.24 µs   212.36 µs … 216.62 µs  in 10 ×    470 runs
[dowdiness/alga] bench benchmark.mbt:271 ("bench/foldg/path_100") ok
time (mean ± σ)         range (min … max) 
  41.73 µs ± 294.09 ns    41.42 µs …  42.35 µs  in 10 ×   2386 runs
[dowdiness/alga] bench benchmark.mbt:277 ("bench/foldg/path_1000") ok
time (mean ± σ)         range (min … max) 
   1.42 ms ±  21.43 µs     1.39 ms …   1.45 ms  in 10 ×     71 runs
[dowdiness/alga] bench benchmark.mbt:285 ("bench/outdegree/chain_1000") ok
time (mean ± σ)         range (min … max) 
  37.37 ns ±   0.22 ns    37.12 ns …  37.76 ns  in 10 × 100000 runs
[dowdiness/alga] bench benchmark.mbt:291 ("bench/outdegree/diamond_1000") ok
time (mean ± σ)         range (min … max) 
  56.59 ns ±   1.08 ns    55.79 ns …  59.49 ns  in 10 × 100000 runs
[dowdiness/alga] bench benchmark.mbt:299 ("bench/indegree/chain_1000") ok
time (mean ± σ)         range (min … max) 
  74.92 µs ± 177.93 ns    74.64 µs …  75.23 µs  in 10 ×   1339 runs
[dowdiness/alga] bench benchmark.mbt:305 ("bench/indegree/diamond_1000") ok
time (mean ± σ)         range (min … max) 
  92.24 µs ± 117.52 ns    92.06 µs …  92.40 µs  in 10 ×   1083 runs
[dowdiness/alga] bench benchmark.mbt:313 ("bench/transpose/1000") ok
time (mean ± σ)         range (min … max) 
  14.54 ns ±   0.44 ns    14.04 ns …  15.08 ns  in 10 × 100000 runs
[dowdiness/alga] bench benchmark.mbt:363 ("bench/has_vertex/AdjacencyMap_1000") ok
time (mean ± σ)         range (min … max) 
  16.68 ns ±   0.37 ns    16.37 ns …  17.29 ns  in 10 × 100000 runs
[dowdiness/alga] bench benchmark.mbt:369 ("bench/has_vertex/DenseGraph_1000") ok
time (mean ± σ)         range (min … max) 
  13.22 ns ±   0.41 ns    12.90 ns …  13.90 ns  in 10 × 100000 runs
[dowdiness/alga] bench benchmark.mbt:376 ("bench/has_vertex/default_1000") ok
time (mean ± σ)         range (min … max) 
   3.16 µs ±   4.88 ns     3.15 µs …   3.17 µs  in 10 ×  31488 runs
[dowdiness/alga] bench benchmark.mbt:384 ("bench/vertex_count/default_1000") ok
time (mean ± σ)         range (min … max) 
   6.90 µs ±  16.07 ns     6.88 µs …   6.93 µs  in 10 ×  14494 runs
[dowdiness/alga] bench benchmark.mbt:392 ("bench/condensation/acyclic_1000") ok
time (mean ± σ)         range (min … max) 
 682.43 µs ±   2.13 µs   678.83 µs … 685.24 µs  in 10 ×    147 runs
[dowdiness/alga] bench benchmark.mbt:398 ("bench/condensation/cyclic_1000") ok
time (mean ± σ)         range (min … max) 
 398.54 µs ±   2.53 µs   395.25 µs … 403.37 µs  in 10 ×    252 runs
[dowdiness/alga] bench benchmark.mbt:408 ("bench/reachable/DenseGraph/chain_1000") ok
time (mean ± σ)         range (min … max) 
   8.85 µs ±  12.63 ns     8.84 µs …   8.87 µs  in 10 ×  11273 runs
[dowdiness/alga] bench benchmark.mbt:415 ("bench/reachable/DenseGraph/chain_10000") ok
time (mean ± σ)         range (min … max) 
 108.90 µs ± 414.59 ns   108.42 µs … 109.63 µs  in 10 ×    921 runs
[dowdiness/alga] bench benchmark.mbt:422 ("bench/reachable/DenseGraph/diamond_1000") ok
time (mean ± σ)         range (min … max) 
   6.10 µs ±  10.09 ns     6.08 µs …   6.11 µs  in 10 ×  16367 runs
[dowdiness/alga] bench benchmark.mbt:429 ("bench/reachable/DenseGraph_gen/chain_1000") ok
time (mean ± σ)         range (min … max) 
   8.14 µs ±  15.12 ns     8.12 µs …   8.16 µs  in 10 ×  12350 runs
[dowdiness/alga] bench benchmark.mbt:447 ("bench/reachable/DenseGraph_gen/chain_10000") ok
time (mean ± σ)         range (min … max) 
 103.23 µs ± 719.73 ns   102.35 µs … 104.26 µs  in 10 ×    974 runs
[dowdiness/alga] bench benchmark.mbt:465 ("bench/reachable/DenseGraph_gen/diamond_1000") ok
time (mean ± σ)         range (min … max) 
   5.79 µs ±  22.25 ns     5.77 µs …   5.85 µs  in 10 ×  17142 runs
[dowdiness/btree] bench btree_benchmark.mbt:79 ("bench: build via inserts (100)") ok
time (mean ± σ)         range (min … max) 
  59.45 µs ± 861.94 ns    58.48 µs …  61.13 µs  in 10 ×   1650 runs
[dowdiness/btree] bench btree_benchmark.mbt:84 ("bench: build via from_sorted (100)") ok
time (mean ± σ)         range (min … max) 
   3.03 µs ±   6.89 ns     3.02 µs …   3.04 µs  in 10 ×  35283 runs
[dowdiness/btree] bench btree_benchmark.mbt:91 ("bench: build via inserts (1000)") ok
time (mean ± σ)         range (min … max) 
 944.77 µs ±   6.18 µs   937.32 µs … 953.84 µs  in 10 ×     98 runs
[dowdiness/btree] bench btree_benchmark.mbt:96 ("bench: build via from_sorted (1000)") ok
time (mean ± σ)         range (min … max) 
  27.22 µs ± 115.47 ns    27.07 µs …  27.41 µs  in 10 ×   3695 runs
[dowdiness/btree] bench btree_benchmark.mbt:103 ("bench: build via inserts (10000)") ok
time (mean ± σ)         range (min … max) 
  14.41 ms ±  87.97 µs    14.31 ms …  14.61 ms  in 10 ×      7 runs
[dowdiness/btree] bench btree_benchmark.mbt:108 ("bench: build via from_sorted (10000)") ok
time (mean ± σ)         range (min … max) 
 510.11 µs ±   8.18 µs   499.93 µs … 521.02 µs  in 10 ×    199 runs
[dowdiness/btree] bench btree_benchmark.mbt:115 ("bench: delete_range middle 10% (1000)") ok
time (mean ± σ)         range (min … max) 
  52.97 µs ± 411.47 ns    52.60 µs …  53.93 µs  in 10 ×   1863 runs
[dowdiness/btree] bench btree_benchmark.mbt:124 ("bench: delete_range middle 50% (1000)") ok
time (mean ± σ)         range (min … max) 
  48.16 µs ± 377.54 ns    47.82 µs …  49.12 µs  in 10 ×   2079 runs
[dowdiness/btree] bench btree_benchmark.mbt:133 ("bench: delete_range middle 10% (10000)") ok
time (mean ± σ)         range (min … max) 
 663.05 µs ±   3.08 µs   658.58 µs … 666.21 µs  in 10 ×    150 runs
[dowdiness/btree] bench btree_benchmark.mbt:142 ("bench: delete_range middle 50% (10000)") ok
time (mean ± σ)         range (min … max) 
 678.91 µs ±   9.30 µs   666.63 µs … 691.43 µs  in 10 ×    149 runs
[dowdiness/egraph] bench egraph_benchmark_wbtest.mbt:60 ("rebuild: stable e-graph (100 classes)") ok
time (mean ± σ)         range (min … max) 
  22.39 µs ± 510.37 ns    21.87 µs …  23.21 µs  in 10 ×   4388 runs
[dowdiness/egraph] bench egraph_benchmark_wbtest.mbt:86 ("rebuild: stable e-graph (1000 classes)") ok
time (mean ± σ)         range (min … max) 
 327.37 µs ±   5.43 µs   324.61 µs … 342.77 µs  in 10 ×    299 runs
[dowdiness/egraph] bench egraph_benchmark_wbtest.mbt:114 ("rebuild: setup + one union + rebuild") ok
time (mean ± σ)         range (min … max) 
 140.79 µs ± 990.90 ns   139.27 µs … 141.87 µs  in 10 ×    715 runs
[dowdiness/egraph] bench egraph_benchmark_wbtest.mbt:143 ("isolate: map alloc + populate + copy-back at 1000 entries") ok
time (mean ± σ)         range (min … max) 
  84.05 µs ± 343.17 ns    83.67 µs …  84.58 µs  in 10 ×   1174 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:21 ("merge - concurrent edits (2 agents x 10)") ok
time (mean ± σ)         range (min … max) 
  20.91 µs ± 675.29 ns    20.30 µs …  22.49 µs  in 10 ×   4500 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:59 ("merge - concurrent edits (2 agents x 50)") ok
time (mean ± σ)         range (min … max) 
 108.13 µs ± 394.11 ns   107.74 µs … 108.70 µs  in 10 ×    907 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:97 ("merge - concurrent edits (2 agents x 200)") ok
time (mean ± σ)         range (min … max) 
 471.85 µs ±   1.81 µs   469.87 µs … 475.24 µs  in 10 ×    212 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:135 ("merge - many agents (5 agents x 20)") ok
time (mean ± σ)         range (min … max) 
 139.82 µs ± 398.51 ns   139.28 µs … 140.46 µs  in 10 ×    718 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:184 ("merge - with deletes (50 inserts, 25 deletes)") ok
time (mean ± σ)         range (min … max) 
 101.51 µs ±   1.94 µs   100.35 µs … 106.03 µs  in 10 ×    985 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:230 ("merge - graph_diff advance (20 ops)") ok
time (mean ± σ)         range (min … max) 
  68.96 µs ± 280.59 ns    68.52 µs …  69.38 µs  in 10 ×   1424 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:303 ("merge - repeated small (10 iterations x 5 ops)") ok
time (mean ± σ)         range (min … max) 
 107.74 µs ± 406.32 ns   107.18 µs … 108.46 µs  in 10 ×    923 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:341 ("merge - retreat concurrent deletes (500 items, 50 deletes)") ok
time (mean ± σ)         range (min … max) 
 213.74 µs ±   1.02 µs   212.68 µs … 215.63 µs  in 10 ×    461 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:408 ("merge - context apply operations (50 ops)") ok
time (mean ± σ)         range (min … max) 
  45.18 µs ±  26.36 µs    27.42 µs … 106.24 µs  in 10 ×   2178 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:6 ("branch - checkout (10 ops)") ok
time (mean ± σ)         range (min … max) 
   4.22 µs ±  35.98 ns     4.16 µs …   4.26 µs  in 10 ×  23763 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:29 ("branch - checkout (100 ops)") ok
time (mean ± σ)         range (min … max) 
  30.55 µs ±  89.97 ns    30.43 µs …  30.68 µs  in 10 ×   3284 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:47 ("branch - checkout (1000 ops)") ok
time (mean ± σ)         range (min … max) 
 423.16 µs ±   2.55 µs   420.09 µs … 426.66 µs  in 10 ×    237 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:65 ("branch - advance (10 new ops)") ok
time (mean ± σ)         range (min … max) 
  11.85 µs ±   3.61 µs     9.52 µs …  20.68 µs  in 10 ×   9346 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:91 ("branch - advance (100 new ops)") ok
time (mean ± σ)         range (min … max) 
  92.61 µs ±  36.56 µs    61.01 µs … 170.87 µs  in 10 ×   1542 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:117 ("branch - checkout with concurrent branches") ok
time (mean ± σ)         range (min … max) 
  37.08 µs ± 133.19 ns    36.90 µs …  37.29 µs  in 10 ×   2714 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:145 ("branch - checkout with deletes") ok
time (mean ± σ)         range (min … max) 
  38.22 µs ± 110.52 ns    37.97 µs …  38.36 µs  in 10 ×   2617 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:176 ("branch - repeated advance steady-state (10 iterations)") ok
time (mean ± σ)         range (min … max) 
  29.67 µs ± 852.49 ns    29.09 µs …  31.43 µs  in 10 ×   3291 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:220 ("branch - repeated advance with oplog mutations (10 iterations)") ok
time (mean ± σ)         range (min … max) 
   7.06 ms ±   3.42 ms     2.76 ms …  12.64 ms  in 10 ×     65 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:246 ("branch - to_text (100 chars)") ok
time (mean ± σ)         range (min … max) 
  11.05 µs ±  80.46 ns    10.93 µs …  11.19 µs  in 10 ×   9014 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:264 ("branch - to_text (1000 chars)") ok
time (mean ± σ)         range (min … max) 
 113.74 µs ± 687.46 ns   113.04 µs … 115.02 µs  in 10 ×    881 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:285 ("branch - single advance (1 new op)") ok
time (mean ± σ)         range (min … max) 
   4.29 µs ± 219.72 ns     4.12 µs …   4.76 µs  in 10 ×  23873 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:311 ("branch - single advance (50 new ops)") ok
time (mean ± σ)         range (min … max) 
  50.84 µs ±  33.20 µs    32.95 µs … 125.49 µs  in 10 ×   2120 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:342 ("branch - realistic typing (50 chars)") ok
time (mean ± σ)         range (min … max) 
  15.85 ms ±   4.99 ms     8.77 ms …  22.74 ms  in 10 ×     21 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:375 ("branch - concurrent merge scenario") ok
time (mean ± σ)         range (min … max) 
  14.55 µs ±   3.68 µs    12.71 µs …  24.75 µs  in 10 ×   7216 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:6 ("walker - linear history (10 ops)") ok
time (mean ± σ)         range (min … max) 
 705.06 ns ±   5.62 ns   697.29 ns … 714.70 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:22 ("walker - linear history (100 ops)") ok
time (mean ± σ)         range (min … max) 
   4.97 µs ±   6.63 ns     4.96 µs …   4.98 µs  in 10 ×  20113 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:38 ("walker - linear history (1000 ops)") ok
time (mean ± σ)         range (min … max) 
  43.92 µs ± 337.33 ns    43.74 µs …  44.86 µs  in 10 ×   2273 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:54 ("walker - concurrent branches (2 agents x 50)") ok
time (mean ± σ)         range (min … max) 
   6.26 µs ±   9.29 ns     6.25 µs …   6.27 µs  in 10 ×  15622 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:79 ("walker - concurrent branches (5 agents x 20)") ok
time (mean ± σ)         range (min … max) 
   6.27 µs ±   9.18 ns     6.27 µs …   6.29 µs  in 10 ×  15830 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:99 ("walker - diamond pattern (50 diamonds)") ok
time (mean ± σ)         range (min … max) 
   8.37 µs ±  17.36 ns     8.35 µs …   8.40 µs  in 10 ×  11958 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:121 ("walker - diff advance only (10 new ops)") ok
time (mean ± σ)         range (min … max) 
   3.63 µs ±   6.78 ns     3.63 µs …   3.65 µs  in 10 ×  27434 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:145 ("walker - diff with concurrent branches") ok
time (mean ± σ)         range (min … max) 
   5.75 µs ±  12.36 ns     5.73 µs …   5.77 µs  in 10 ×  17399 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:176 ("walker - large history (10000 ops)") ok
time (mean ± σ)         range (min … max) 
 454.43 µs ±   1.83 µs   452.49 µs … 457.26 µs  in 10 ×    221 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:196 ("walker - linear history (100000 ops)") ok
time (mean ± σ)         range (min … max) 
   6.82 ms ±  54.24 µs     6.73 ms …   6.91 ms  in 10 ×     15 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:213 ("walker - concurrent branches (100000 ops, 5 agents)") ok
time (mean ± σ)         range (min … max) 
  22.98 ms ±   2.56 ms    20.30 ms …  27.24 ms  in 10 ×      5 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:6 ("version_vector - create (1 agent)") ok
time (mean ± σ)         range (min … max) 
  50.01 ns ±   0.31 ns    49.48 ns …  50.51 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:15 ("version_vector - create (5 agents)") ok
time (mean ± σ)         range (min … max) 
 140.11 ns ±   0.34 ns   139.61 ns … 140.53 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:29 ("version_vector - create (20 agents)") ok
time (mean ± σ)         range (min … max) 
   1.06 µs ±   2.92 ns     1.05 µs …   1.06 µs  in 10 ×  94689 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:42 ("version_vector - compare equal (5 agents)") ok
time (mean ± σ)         range (min … max) 
 171.46 ns ±   0.56 ns   170.55 ns … 172.31 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:63 ("version_vector - compare <= (5 agents)") ok
time (mean ± σ)         range (min … max) 
 119.25 ns ±   0.62 ns   118.56 ns … 120.34 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:84 ("version_vector - compare <= (20 agents)") ok
time (mean ± σ)         range (min … max) 
 469.04 ns ±   1.06 ns   467.88 ns … 470.82 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:100 ("version_vector - merge (5 agents)") ok
time (mean ± σ)         range (min … max) 
 201.97 ns ±   1.42 ns   200.71 ns … 205.32 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:118 ("version_vector - merge (20 agents)") ok
time (mean ± σ)         range (min … max) 
   1.28 µs ±   4.20 ns     1.27 µs …   1.29 µs  in 10 ×  78586 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:134 ("version_vector - includes (5 agents)") ok
time (mean ± σ)         range (min … max) 
 143.44 ns ±   0.62 ns   142.88 ns … 144.34 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:153 ("version_vector - concurrent (5 agents)") ok
time (mean ± σ)         range (min … max) 
 120.97 ns ±   0.43 ns   120.40 ns … 121.48 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:170 ("version_vector - from_frontier (10 ops)") ok
time (mean ± σ)         range (min … max) 
 613.79 ns ±   1.18 ns   612.35 ns … 615.24 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:186 ("version_vector - from_frontier (100 ops, 5 agents)") ok
time (mean ± σ)         range (min … max) 
   4.78 µs ±  13.91 ns     4.76 µs …   4.80 µs  in 10 ×  20684 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:206 ("version_vector - to_frontier (5 agents)") ok
time (mean ± σ)         range (min … max) 
 193.23 ns ±   0.33 ns   192.60 ns … 193.82 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:230 ("version_vector - roundtrip (5 agents)") ok
time (mean ± σ)         range (min … max) 
   4.99 µs ±  23.18 ns     4.96 µs …   5.04 µs  in 10 ×  19922 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:251 ("version_vector - agents (5 agents)") ok
time (mean ± σ)         range (min … max) 
  67.75 ns ±   0.50 ns    66.85 ns …  68.36 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:266 ("version_vector - length (20 agents)") ok
time (mean ± σ)         range (min … max) 
  12.51 ns ±   0.38 ns    12.17 ns …  13.19 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/document/document_benchmark.mbt:20 ("bench: cache invalidate + position query (1000 chars)") ok
time (mean ± σ)         range (min … max) 
 185.04 µs ±   1.44 µs   183.08 µs … 187.56 µs  in 10 ×    502 runs
[dowdiness/event-graph-walker] bench internal/document/document_benchmark.mbt:31 ("bench: cache invalidate + position query (5000 chars)") ok
time (mean ± σ)         range (min … max) 
   2.88 ms ±  56.65 µs     2.80 ms …   2.96 ms  in 10 ×     35 runs
[dowdiness/event-graph-walker] bench internal/document/document_benchmark.mbt:41 ("bench: cache invalidate + position query (10000 chars)") ok
time (mean ± σ)         range (min … max) 
   9.37 ms ± 321.63 µs     8.95 ms …   9.83 ms  in 10 ×     11 runs
[dowdiness/event-graph-walker] bench internal/document/document_benchmark.mbt:57 ("bench: 10 remote inserts + queries (1000-char doc)") ok
time (mean ± σ)         range (min … max) 
   3.48 ms ±  28.63 µs     3.45 ms …   3.53 ms  in 10 ×     28 runs
[dowdiness/event-graph-walker] bench internal/document/document_benchmark.mbt:84 ("bench: 10 remote inserts + queries (5000-char doc)") ok
time (mean ± σ)         range (min … max) 
  30.73 ms ± 699.49 µs    29.59 ms …  31.43 ms  in 10 ×      4 runs
[dowdiness/event-graph-walker] bench internal/document/document_benchmark.mbt:113 ("bench: warm cache position query (1000 chars)") ok
time (mean ± σ)         range (min … max) 
  99.81 ns ±   0.60 ns    98.79 ns … 100.74 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/document/document_benchmark.mbt:120 ("bench: warm cache position query (10000 chars)") ok
time (mean ± σ)         range (min … max) 
 100.05 ns ±   0.24 ns    99.71 ns … 100.48 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/fugue/tree_position_benchmark.mbt:20 ("bench: lv_to_position middle of 10K tree") ok
time (mean ± σ)         range (min … max) 
 531.64 µs ±   4.29 µs   526.06 µs … 538.85 µs  in 10 ×    190 runs
[dowdiness/event-graph-walker] bench internal/fugue/jump_ancestors_benchmark.mbt:2 ("jump - sequential append 1K") ok
time (mean ± σ)         range (min … max) 
 159.39 µs ± 827.12 ns   158.31 µs … 160.43 µs  in 10 ×    620 runs
[dowdiness/event-graph-walker] bench internal/fugue/jump_ancestors_benchmark.mbt:26 ("jump - concurrent insert into 1K doc") ok
time (mean ± σ)         range (min … max) 
 156.11 µs ± 604.68 ns   155.23 µs … 156.92 µs  in 10 ×    639 runs
[dowdiness/event-graph-walker] bench internal/fugue/jump_ancestors_benchmark.mbt:58 ("jump - concurrent insert into 10K doc") ok
time (mean ± σ)         range (min … max) 
   4.34 ms ±  96.42 µs     4.19 ms …   4.50 ms  in 10 ×     23 runs
[dowdiness/event-graph-walker] bench internal/fugue/jump_ancestors_benchmark.mbt:90 ("jump - degenerate chain remote insert") ok
time (mean ± σ)         range (min … max) 
 156.73 µs ± 458.60 ns   156.08 µs … 157.64 µs  in 10 ×    638 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:6 ("oplog - insert (100 ops)") ok
time (mean ± σ)         range (min … max) 
  46.10 µs ±   1.17 µs    45.01 µs …  48.55 µs  in 10 ×   2016 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:20 ("oplog - insert (1000 ops)") ok
time (mean ± σ)         range (min … max) 
 529.97 µs ±   1.10 µs   528.00 µs … 531.44 µs  in 10 ×    189 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:34 ("oplog - insert and delete mix (100 ops)") ok
time (mean ± σ)         range (min … max) 
  68.22 µs ± 111.14 ns    68.07 µs …  68.36 µs  in 10 ×   1465 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:58 ("oplog - apply_remote (50 ops)") ok
time (mean ± σ)         range (min … max) 
  29.91 µs ± 213.51 ns    29.79 µs …  30.50 µs  in 10 ×   3339 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:79 ("oplog - get_op (1000 ops)") ok
time (mean ± σ)         range (min … max) 
 179.31 ns ±   0.76 ns   178.20 ns … 180.36 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:97 ("oplog - get_frontier (single agent)") ok
time (mean ± σ)         range (min … max) 
  20.67 ns ±   0.39 ns    20.21 ns …  21.31 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:112 ("oplog - get_frontier (5 agents)") ok
time (mean ± σ)         range (min … max) 
  24.59 ns ±   0.36 ns    24.15 ns …  25.20 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:134 ("oplog - walk_and_collect (100 ops)") ok
time (mean ± σ)         range (min … max) 
  11.43 µs ±  93.94 ns    11.32 µs …  11.56 µs  in 10 ×   8595 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:150 ("oplog - walk_and_collect (concurrent)") ok
time (mean ± σ)         range (min … max) 
  19.42 µs ± 113.15 ns    19.29 µs …  19.57 µs  in 10 ×   5100 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:177 ("oplog - diff_and_collect (advance 20)") ok
time (mean ± σ)         range (min … max) 
   5.71 µs ±  15.68 ns     5.69 µs …   5.74 µs  in 10 ×  17496 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:202 ("oplog - walk_filtered (inserts only)") ok
time (mean ± σ)         range (min … max) 
   9.22 µs ±  49.23 ns     9.14 µs …   9.29 µs  in 10 ×  11476 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:233 ("oplog - sequential typing (500 chars)") ok
time (mean ± σ)         range (min … max) 
 250.17 µs ±   1.34 µs   249.10 µs … 252.78 µs  in 10 ×    401 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:249 ("oplog - random position inserts (100 ops)") ok
time (mean ± σ)         range (min … max) 
  45.08 µs ± 397.12 ns    44.67 µs …  45.78 µs  in 10 ×   2222 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:270 ("oplog - sequential typing (100000 chars)") ok
time (mean ± σ)         range (min … max) 
 149.86 ms ±  23.69 ms   122.25 ms … 181.31 ms  in 10 ×      1 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:287 ("oplog - diff_and_collect (100000 ops advance)") ok
time (mean ± σ)         range (min … max) 
  64.54 ms ±  17.09 ms    43.56 ms …  81.89 ms  in 10 ×      2 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:10 ("text - insert append (100 chars)") ok
time (mean ± σ)         range (min … max) 
 101.50 µs ± 314.94 ns   101.07 µs … 101.99 µs  in 10 ×    895 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:22 ("text - insert append (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   1.34 ms ±  21.85 µs     1.32 ms …   1.38 ms  in 10 ×     75 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:35 ("text - insert prepend (100 chars)") ok
time (mean ± σ)         range (min … max) 
 163.20 µs ± 789.34 ns   162.41 µs … 164.27 µs  in 10 ×    612 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:51 ("text - delete (100 deletes from 100-char doc)") ok
time (mean ± σ)         range (min … max) 
 246.51 µs ±   1.33 µs   244.58 µs … 248.45 µs  in 10 ×    405 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:70 ("text - text() (100-char doc)") ok
time (mean ± σ)         range (min … max) 
  13.66 µs ±  44.72 ns    13.59 µs …  13.72 µs  in 10 ×   7255 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:83 ("text - text() (1000-char doc)") ok
time (mean ± σ)         range (min … max) 
 138.70 µs ±   1.19 µs   137.40 µs … 140.61 µs  in 10 ×    723 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:96 ("text - len() (1000-char doc)") ok
time (mean ± σ)         range (min … max) 
  12.84 ns ±   0.31 ns    12.49 ns …  13.47 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:113 ("text - sync export_all (100 ops)") ok
time (mean ± σ)         range (min … max) 
  98.52 ns ±   0.77 ns    97.71 ns …  99.77 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:126 ("text - sync export_all (1000 ops)") ok
time (mean ± σ)         range (min … max) 
  99.35 ns ±   0.57 ns    98.54 ns … 100.47 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:139 ("text - sync export_since (50-op delta, 1000-op base)") ok
time (mean ± σ)         range (min … max) 
  35.46 µs ± 320.62 ns    35.02 µs …  35.97 µs  in 10 ×   2786 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:156 ("text - sync apply (50 remote ops)") ok
time (mean ± σ)         range (min … max) 
  54.52 µs ± 427.44 ns    53.87 µs …  55.01 µs  in 10 ×   1829 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:171 ("text - sync apply (500 remote ops)") ok
time (mean ± σ)         range (min … max) 
 659.06 µs ±   3.99 µs   655.19 µs … 668.65 µs  in 10 ×    149 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:186 ("text - bidirectional sync (2 peers, 50 ops each)") ok
time (mean ± σ)         range (min … max) 
 113.67 µs ± 257.33 ns   113.31 µs … 114.18 µs  in 10 ×    879 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:216 ("text - checkout (midpoint of 100-op doc)") ok
time (mean ± σ)         range (min … max) 
  14.87 µs ±  70.73 ns    14.79 µs …  15.00 µs  in 10 ×   6738 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:233 ("text - checkout (midpoint of 1000-op doc)") ok
time (mean ± σ)         range (min … max) 
 178.69 µs ± 910.99 ns   177.62 µs … 180.74 µs  in 10 ×    559 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:256 ("text - undo record_insert (100 ops, 1 group)") ok
time (mean ± σ)         range (min … max) 
   2.08 µs ±   7.87 ns     2.07 µs …   2.09 µs  in 10 ×  47929 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:269 ("text - undo record_insert (100 ops, 100 groups)") ok
time (mean ± σ)         range (min … max) 
   2.31 µs ±  16.71 ns     2.29 µs …   2.33 µs  in 10 ×  43296 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:281 ("text - undo undo() (10-op group)") ok
time (mean ± σ)         range (min … max) 
  30.77 µs ± 158.30 ns    30.52 µs …  30.92 µs  in 10 ×   3252 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:295 ("text - undo undo() (50-op group)") ok
time (mean ± σ)         range (min … max) 
 461.80 µs ±   1.70 µs   458.41 µs … 463.47 µs  in 10 ×    216 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:309 ("text - undo undo+redo roundtrip (10-op group)") ok
time (mean ± σ)         range (min … max) 
  34.93 µs ±  76.02 ns    34.82 µs …  35.03 µs  in 10 ×   2873 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:324 ("text - undo 10 undo+redo cycles (10-op group)") ok
time (mean ± σ)         range (min … max) 
 293.85 µs ± 898.97 ns   292.58 µs … 295.44 µs  in 10 ×    341 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:17 ("cache - sequential append (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   1.34 ms ±   9.05 µs     1.33 ms …   1.36 ms  in 10 ×     74 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:34 ("cache - alternating pos (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   3.07 ms ±  36.82 µs     3.04 ms …   3.15 ms  in 10 ×     33 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:52 ("cache - jump to pos 0 every 10 chars (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   2.05 ms ±  35.60 µs     2.01 ms …   2.11 ms  in 10 ×     50 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:71 ("cache - jump to middle every 10 chars (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   2.64 ms ±  39.24 µs     2.59 ms …   2.71 ms  in 10 ×     38 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:94 ("cache - single non-seq insert on 1000-char doc") ok
time (mean ± σ)         range (min … max) 
   6.71 µs ±   1.09 µs     5.76 µs …   9.30 µs  in 10 ×  15919 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:108 ("cache - single non-seq insert on 5000-char doc") ok
time (mean ± σ)         range (min … max) 
   7.15 µs ±   1.37 µs     5.86 µs …   9.60 µs  in 10 ×  15987 runs
[dowdiness/graphviz] bench lib/layout/layout_benchmark.mbt:43 ("bench/layout/full_chain_10") ok
time (mean ± σ)         range (min … max) 
  85.69 µs ±   2.73 µs    83.88 µs …  92.01 µs  in 10 ×    990 runs
[dowdiness/graphviz] bench lib/layout/layout_benchmark.mbt:53 ("bench/layout/full_chain_50") ok
time (mean ± σ)         range (min … max) 
 484.98 µs ± 989.38 ns   483.62 µs … 486.56 µs  in 10 ×    207 runs
[dowdiness/graphviz] bench lib/layout/layout_benchmark.mbt:63 ("bench/layout/full_diamond_50") ok
time (mean ± σ)         range (min … max) 
 446.65 µs ±   4.62 µs   442.21 µs … 458.43 µs  in 10 ×    224 runs
[dowdiness/graphviz] bench lib/layout/layout_benchmark.mbt:73 ("bench/layout/full_cyclic_20") ok
time (mean ± σ)         range (min … max) 
 178.82 µs ± 835.57 ns   177.50 µs … 180.01 µs  in 10 ×    555 runs
[dowdiness/graphviz] bench lib/layout/layout_benchmark.mbt:85 ("bench/layout/layer_assignment_chain_50") ok
time (mean ± σ)         range (min … max) 
  25.92 µs ±  96.45 ns    25.82 µs …  26.12 µs  in 10 ×   3866 runs
[dowdiness/graphviz] bench lib/layout/layout_benchmark.mbt:97 ("bench/layout/layer_assignment_diamond_100") ok
time (mean ± σ)         range (min … max) 
  91.85 µs ± 731.11 ns    90.79 µs …  92.79 µs  in 10 ×   1079 runs
[dowdiness/graphviz] bench lib/layout/layout_benchmark.mbt:111 ("bench/layout/cycle_removal_chain_50") ok
time (mean ± σ)         range (min … max) 
  13.19 µs ±  29.43 ns    13.16 µs …  13.24 µs  in 10 ×   7534 runs
[dowdiness/graphviz] bench lib/layout/layout_benchmark.mbt:122 ("bench/layout/cycle_removal_cyclic_20") ok
time (mean ± σ)         range (min … max) 
   5.11 µs ±   4.01 ns     5.10 µs …   5.11 µs  in 10 ×  19489 runs
[dowdiness/json] bench benchmark_test.mbt:59 ("json: 20-member object - full reparse") ok
time (mean ± σ)         range (min … max) 
  56.14 µs ±   1.49 µs    54.81 µs …  59.21 µs  in 10 ×   1691 runs
[dowdiness/json] bench benchmark_test.mbt:68 ("json: 20-member object - incremental (edit last value)") ok
time (mean ± σ)         range (min … max) 
 179.88 µs ±   2.63 µs   176.68 µs … 184.03 µs  in 10 ×    548 runs
[dowdiness/json] bench benchmark_test.mbt:93 ("json: 50-member object - full reparse") ok
time (mean ± σ)         range (min … max) 
 128.99 µs ± 404.60 ns   128.46 µs … 129.68 µs  in 10 ×    779 runs
[dowdiness/json] bench benchmark_test.mbt:102 ("json: 50-member object - incremental (edit inner object)") ok
time (mean ± σ)         range (min … max) 
 120.86 µs ± 430.95 ns   120.27 µs … 121.86 µs  in 10 ×    822 runs
[dowdiness/json] bench benchmark_test.mbt:127 ("json: 100-member object - full reparse") ok
time (mean ± σ)         range (min … max) 
 259.94 µs ±   1.72 µs   257.25 µs … 262.39 µs  in 10 ×    385 runs
[dowdiness/json] bench benchmark_test.mbt:136 ("json: 100-member object - incremental (edit inner object)") ok
time (mean ± σ)         range (min … max) 
 225.12 µs ±   1.44 µs   223.43 µs … 228.24 µs  in 10 ×    444 runs
[dowdiness/json] bench benchmark_test.mbt:162 ("json: 50-element array - full reparse") ok
time (mean ± σ)         range (min … max) 
 100.81 µs ± 529.05 ns   100.06 µs … 101.66 µs  in 10 ×    995 runs
[dowdiness/json] bench benchmark_test.mbt:171 ("json: 50-element array - incremental (edit nested object)") ok
time (mean ± σ)         range (min … max) 
  94.08 µs ± 380.02 ns    93.59 µs …  94.59 µs  in 10 ×   1063 runs
[dowdiness/lambda] bench benchmarks/zero_copy_benchmark.mbt:37 ("zero-copy: tokenize - integers (baseline)") ok
time (mean ± σ)         range (min … max) 
  11.28 µs ± 131.81 ns    11.18 µs …  11.62 µs  in 10 ×   8543 runs
[dowdiness/lambda] bench benchmarks/zero_copy_benchmark.mbt:46 ("zero-copy: tokenize - short identifiers") ok
time (mean ± σ)         range (min … max) 
  12.08 µs ± 198.19 ns    11.96 µs …  12.63 µs  in 10 ×   8219 runs
[dowdiness/lambda] bench benchmarks/zero_copy_benchmark.mbt:55 ("zero-copy: tokenize - long identifiers") ok
time (mean ± σ)         range (min … max) 
  63.80 µs ±  84.41 ns    63.69 µs …  63.94 µs  in 10 ×   1563 runs
[dowdiness/lambda] bench benchmarks/zero_copy_benchmark.mbt:68 ("zero-copy: full parse - integers (baseline)") ok
time (mean ± σ)         range (min … max) 
  41.15 µs ± 232.13 ns    40.83 µs …  41.54 µs  in 10 ×   2426 runs
[dowdiness/lambda] bench benchmarks/zero_copy_benchmark.mbt:79 ("zero-copy: full parse - short identifiers") ok
time (mean ± σ)         range (min … max) 
  42.10 µs ± 122.82 ns    41.96 µs …  42.31 µs  in 10 ×   2367 runs
[dowdiness/lambda] bench benchmarks/zero_copy_benchmark.mbt:90 ("zero-copy: full parse - long identifiers") ok
time (mean ± σ)         range (min … max) 
  97.59 µs ± 100.33 ns    97.46 µs …  97.75 µs  in 10 ×   1019 runs
[dowdiness/lambda] bench benchmarks/unified_parser_benchmark.mbt:8 ("parser: cold - new + ast()") ok
time (mean ± σ)         range (min … max) 
  22.91 µs ±   1.65 µs    20.96 µs …  25.52 µs  in 10 ×   3092 runs
[dowdiness/lambda] bench benchmarks/unified_parser_benchmark.mbt:20 ("parser: warm - ast() with no source change") ok
time (mean ± σ)         range (min … max) 
  49.32 ns ±   0.27 ns    48.80 ns …  49.73 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/unified_parser_benchmark.mbt:32 ("parser: identity - set_source(same) + ast()") ok
time (mean ± σ)         range (min … max) 
  77.14 ns ±   0.22 ns    76.71 ns …  77.35 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/unified_parser_benchmark.mbt:45 ("parser: full recompute - set_source(new) + ast()") ok
time (mean ± σ)         range (min … max) 
  21.87 µs ±  91.91 ns    21.77 µs …  22.05 µs  in 10 ×   4428 runs
[dowdiness/lambda] bench benchmarks/unified_parser_benchmark.mbt:62 ("parser: undo/redo cycle (set_source)") ok
time (mean ± σ)         range (min … max) 
  21.75 µs ±  56.01 ns    21.66 µs …  21.82 µs  in 10 ×   4579 runs
[dowdiness/lambda] bench benchmarks/unified_parser_benchmark.mbt:84 ("parser: apply_edit - single char flip in nested lambda") ok
time (mean ± σ)         range (min … max) 
  26.92 µs ± 222.15 ns    26.63 µs …  27.27 µs  in 10 ×   3681 runs
[dowdiness/lambda] bench benchmarks/unified_parser_benchmark.mbt:111 ("parity: imperative edit - let init edit") ok
time (mean ± σ)         range (min … max) 
  13.90 µs ± 101.05 ns    13.82 µs …  14.13 µs  in 10 ×   6980 runs
[dowdiness/lambda] bench benchmarks/unified_parser_benchmark.mbt:123 ("parity: parser apply_edit - let init edit") ok
time (mean ± σ)         range (min … max) 
  17.53 µs ± 142.73 ns    17.37 µs …  17.79 µs  in 10 ×   5480 runs
[dowdiness/lambda] bench benchmarks/unified_parser_benchmark.mbt:137 ("parser: diagnostics - valid ↔ malformed cycle") ok
time (mean ± σ)         range (min … max) 
   7.49 µs ±  32.77 ns     7.45 µs …   7.54 µs  in 10 ×  12966 runs
[dowdiness/lambda] bench benchmarks/realistic_benchmark.mbt:94 ("realistic: 40 defs - full reparse") ok
time (mean ± σ)         range (min … max) 
 417.07 µs ±   3.11 µs   414.18 µs … 422.44 µs  in 10 ×    232 runs
[dowdiness/lambda] bench benchmarks/realistic_benchmark.mbt:103 ("realistic: 40 defs - incremental (edit tail)") ok
time (mean ± σ)         range (min … max) 
 494.62 µs ±   3.19 µs   490.92 µs … 500.71 µs  in 10 ×    202 runs
[dowdiness/lambda] bench benchmarks/realistic_benchmark.mbt:118 ("realistic: 40 defs - incremental (edit head block)") ok
time (mean ± σ)         range (min … max) 
 256.87 µs ±   1.71 µs   255.13 µs … 261.22 µs  in 10 ×    386 runs
[dowdiness/lambda] bench benchmarks/realistic_benchmark.mbt:133 ("realistic: 40 defs - incremental (edit middle block)") ok
time (mean ± σ)         range (min … max) 
 260.58 µs ±   1.12 µs   259.56 µs … 262.68 µs  in 10 ×    386 runs
[dowdiness/lambda] bench benchmarks/realistic_benchmark.mbt:150 ("realistic: 80 defs - full reparse") ok
time (mean ± σ)         range (min … max) 
 916.40 µs ±   7.47 µs   905.12 µs … 929.06 µs  in 10 ×    110 runs
[dowdiness/lambda] bench benchmarks/realistic_benchmark.mbt:159 ("realistic: 80 defs - incremental (edit tail)") ok
time (mean ± σ)         range (min … max) 
   1.05 ms ±   7.93 µs     1.03 ms …   1.06 ms  in 10 ×     95 runs
[dowdiness/lambda] bench benchmarks/realistic_benchmark.mbt:174 ("realistic: 80 defs - incremental (edit middle block)") ok
time (mean ± σ)         range (min … max) 
 500.22 µs ±   3.53 µs   497.06 µs … 506.47 µs  in 10 ×    195 runs
[dowdiness/lambda] bench benchmarks/realistic_benchmark.mbt:191 ("realistic: 160 defs - full reparse") ok
time (mean ± σ)         range (min … max) 
   1.99 ms ±  28.31 µs     1.95 ms …   2.03 ms  in 10 ×     52 runs
[dowdiness/lambda] bench benchmarks/realistic_benchmark.mbt:200 ("realistic: 160 defs - incremental (edit tail)") ok
time (mean ± σ)         range (min … max) 
   2.29 ms ±  34.38 µs     2.25 ms …   2.35 ms  in 10 ×     45 runs
[dowdiness/lambda] bench benchmarks/realistic_benchmark.mbt:215 ("realistic: 160 defs - incremental (edit middle block)") ok
time (mean ± σ)         range (min … max) 
 998.75 µs ±   5.87 µs   991.72 µs …   1.01 ms  in 10 ×    100 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:26 ("profile: 80 lets - tokenize only") ok
time (mean ± σ)         range (min … max) 
  44.23 µs ± 104.07 ns    44.11 µs …  44.39 µs  in 10 ×   2268 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:36 ("profile: 80 lets - full reparse") ok
time (mean ± σ)         range (min … max) 
 135.41 µs ± 544.64 ns   134.77 µs … 136.21 µs  in 10 ×    741 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:46 ("profile: 80 lets - incremental (edit tail)") ok
time (mean ± σ)         range (min … max) 
 228.10 µs ±   1.57 µs   226.42 µs … 230.93 µs  in 10 ×    436 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:64 ("profile: 80 lets - incremental (edit head)") ok
time (mean ± σ)         range (min … max) 
 217.05 µs ±   1.19 µs   215.45 µs … 219.00 µs  in 10 ×    457 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:83 ("profile: 320 lets - tokenize only") ok
time (mean ± σ)         range (min … max) 
 188.14 µs ±   2.42 µs   185.42 µs … 191.94 µs  in 10 ×    533 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:92 ("profile: 320 lets - full reparse") ok
time (mean ± σ)         range (min … max) 
 573.33 µs ±   4.79 µs   567.68 µs … 583.65 µs  in 10 ×    175 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:101 ("profile: 320 lets - incremental (edit tail)") ok
time (mean ± σ)         range (min … max) 
 965.94 µs ±   6.27 µs   959.58 µs … 978.71 µs  in 10 ×    103 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:116 ("profile: 320 lets - incremental (edit head)") ok
time (mean ± σ)         range (min … max) 
 897.54 µs ±  15.77 µs   879.23 µs … 927.90 µs  in 10 ×    114 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:153 ("profile: 80 lets - tree build (normal events)") ok
time (mean ± σ)         range (min … max) 
  64.03 µs ± 272.76 ns    63.57 µs …  64.35 µs  in 10 ×   1568 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:174 ("profile: 80 lets - tree build (ReuseNode events)") ok
time (mean ± σ)         range (min … max) 
  39.24 µs ± 173.04 ns    38.97 µs …  39.42 µs  in 10 ×   2524 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:193 ("profile: 320 lets - tree build (normal events)") ok
time (mean ± σ)         range (min … max) 
 335.91 µs ±   3.73 µs   332.83 µs … 344.64 µs  in 10 ×    299 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:212 ("profile: 320 lets - tree build (ReuseNode events)") ok
time (mean ± σ)         range (min … max) 
 183.69 µs ±   1.59 µs   181.80 µs … 186.54 µs  in 10 ×    549 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:251 ("profile: 20 deep lets - full reparse") ok
time (mean ± σ)         range (min … max) 
 164.52 µs ± 689.37 ns   163.71 µs … 165.39 µs  in 10 ×    604 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:260 ("profile: 20 deep lets - incremental (edit tail)") ok
time (mean ± σ)         range (min … max) 
 228.94 µs ±   1.17 µs   227.50 µs … 231.08 µs  in 10 ×    437 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:276 ("profile: 20 very deep lets - full reparse") ok
time (mean ± σ)         range (min … max) 
 312.90 µs ±   1.45 µs   311.23 µs … 315.20 µs  in 10 ×    322 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:285 ("profile: 20 very deep lets - incremental (edit tail)") ok
time (mean ± σ)         range (min … max) 
 442.57 µs ±   4.77 µs   436.37 µs … 449.43 µs  in 10 ×    227 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:303 ("profile: 20 deep lets - build_tree (ReuseNode)") ok
time (mean ± σ)         range (min … max) 
  45.41 µs ± 583.26 ns    44.93 µs …  46.91 µs  in 10 ×   2082 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:323 ("profile: 20 deep lets - build_tree_fully_interned (ReuseNode)") ok
time (mean ± σ)         range (min … max) 
  53.70 µs ± 142.06 ns    53.49 µs …  53.90 µs  in 10 ×   1853 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:359 ("profile: closure call overhead - 960 calls") ok
time (mean ± σ)         range (min … max) 
   2.42 µs ±  10.08 ns     2.41 µs …   2.44 µs  in 10 ×  41478 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:376 ("profile: direct array access - 960 calls") ok
time (mean ± σ)         range (min … max) 
   2.42 µs ±  12.05 ns     2.40 µs …   2.43 µs  in 10 ×  41544 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:7 ("parse scaling - small (5 tokens)") ok
time (mean ± σ)         range (min … max) 
   3.09 µs ±   9.17 ns     3.07 µs …   3.10 µs  in 10 ×  32401 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:16 ("parse scaling - medium (15 tokens)") ok
time (mean ± σ)         range (min … max) 
  13.25 µs ±  63.11 ns    13.14 µs …  13.34 µs  in 10 ×   7498 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:27 ("parse scaling - large (30+ tokens)") ok
time (mean ± σ)         range (min … max) 
  24.88 µs ± 101.50 ns    24.78 µs …  25.10 µs  in 10 ×   4024 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:40 ("incremental vs full - edit at start") ok
time (mean ± σ)         range (min … max) 
  27.34 µs ± 165.39 ns    27.02 µs …  27.50 µs  in 10 ×   3658 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:54 ("incremental vs full - edit at end") ok
time (mean ± σ)         range (min … max) 
  38.66 µs ± 418.27 ns    38.15 µs …  39.48 µs  in 10 ×   2531 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:68 ("incremental vs full - edit in middle") ok
time (mean ± σ)         range (min … max) 
  37.89 µs ± 637.94 ns    37.00 µs …  38.83 µs  in 10 ×   2626 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:82 ("sequential edits - typing simulation") ok
time (mean ± σ)         range (min … max) 
   6.32 µs ±  16.60 ns     6.29 µs …   6.34 µs  in 10 ×  15774 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:95 ("sequential edits - backspace simulation") ok
time (mean ± σ)         range (min … max) 
   6.85 µs ±  13.99 ns     6.84 µs …   6.87 µs  in 10 ×  14469 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:108 ("incremental state baseline - repeated parsing") ok
time (mean ± σ)         range (min … max) 
  17.71 µs ± 318.97 ns    17.41 µs …  18.17 µs  in 10 ×   5719 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:125 ("incremental state baseline - similar expressions") ok
time (mean ± σ)         range (min … max) 
   8.79 µs ±  15.27 ns     8.77 µs …   8.82 µs  in 10 ×  11363 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:137 ("memory pressure - large document") ok
time (mean ± σ)         range (min … max) 
  57.18 µs ± 245.55 ns    56.99 µs …  57.71 µs  in 10 ×   1748 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:154 ("worst case - full invalidation") ok
time (mean ± σ)         range (min … max) 
  27.23 µs ±  85.62 ns    27.12 µs …  27.37 µs  in 10 ×   3671 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:170 ("best case - cosmetic change") ok
time (mean ± σ)         range (min … max) 
   9.99 µs ± 108.04 ns     9.85 µs …  10.15 µs  in 10 ×  10070 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:209 ("phase1: full tokenize - 110 tokens") ok
time (mean ± σ)         range (min … max) 
  11.19 µs ±  30.21 ns    11.15 µs …  11.24 µs  in 10 ×   8949 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:222 ("phase1: incremental tokenize - edit at start (110 tokens)") ok
time (mean ± σ)         range (min … max) 
  15.44 µs ± 106.35 ns    15.35 µs …  15.69 µs  in 10 ×   6491 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:244 ("phase1: incremental tokenize - edit in middle (110 tokens)") ok
time (mean ± σ)         range (min … max) 
  15.43 µs ±  85.24 ns    15.34 µs …  15.62 µs  in 10 ×   6471 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:266 ("phase1: incremental tokenize - edit at end (110 tokens)") ok
time (mean ± σ)         range (min … max) 
  15.14 µs ±  42.21 ns    15.09 µs …  15.21 µs  in 10 ×   6612 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:287 ("phase1: full re-tokenize after edit - 110 tokens") ok
time (mean ± σ)         range (min … max) 
  11.18 µs ±  38.55 ns    11.13 µs …  11.24 µs  in 10 ×   8956 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:303 ("parse_cst - small") ok
time (mean ± σ)         range (min … max) 
   1.85 µs ±   4.15 ns     1.84 µs …   1.85 µs  in 10 ×  54060 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:314 ("parse_cst - large") ok
time (mean ± σ)         range (min … max) 
  15.86 µs ±  38.47 ns    15.80 µs …  15.91 µs  in 10 ×   6282 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:342 ("phase3: full CST reparse, no cursor - 110 tokens") ok
time (mean ± σ)         range (min … max) 
  31.43 µs ± 190.03 ns    31.19 µs …  31.68 µs  in 10 ×   3199 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:364 ("phase3: cursor reuse, edit at end - 110 tokens") ok
time (mean ± σ)         range (min … max) 
  51.32 µs ± 171.36 ns    51.10 µs …  51.59 µs  in 10 ×   1954 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:390 ("phase3: cursor reuse, edit at start - 110 tokens") ok
time (mean ± σ)         range (min … max) 
  34.80 µs ± 102.39 ns    34.69 µs …  35.00 µs  in 10 ×   2865 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:425 ("phase4: let body edit - full reparse, no cursor (baseline)") ok
time (mean ± σ)         range (min … max) 
   1.95 µs ±   2.96 ns     1.94 µs …   1.95 µs  in 10 ×  51018 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:448 ("phase4: let body edit - init IntLiteral reused via cursor") ok
time (mean ± σ)         range (min … max) 
   1.96 µs ±   5.41 ns     1.95 µs …   1.97 µs  in 10 ×  51144 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:473 ("phase4: let init edit - cursor") ok
time (mean ± σ)         range (min … max) 
   2.63 µs ±   4.03 ns     2.63 µs …   2.64 µs  in 10 ×  38031 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:498 ("phase4: nested let body edit - multiple inits reused") ok
time (mean ± σ)         range (min … max) 
   3.09 µs ±   9.86 ns     3.08 µs …   3.11 µs  in 10 ×  32259 runs
[dowdiness/lambda] bench benchmarks/let_chain_benchmark.mbt:48 ("let-chain: 80 lets - initial parse") ok
time (mean ± σ)         range (min … max) 
 290.68 µs ±   1.55 µs   289.26 µs … 293.37 µs  in 10 ×    345 runs
[dowdiness/lambda] bench benchmarks/let_chain_benchmark.mbt:58 ("let-chain: 320 lets - initial parse") ok
time (mean ± σ)         range (min … max) 
   1.27 ms ±  15.25 µs     1.25 ms …   1.29 ms  in 10 ×     80 runs
[dowdiness/lambda] bench benchmarks/let_chain_benchmark.mbt:70 ("let-chain: 80 lets - incremental single edit at tail") ok
time (mean ± σ)         range (min … max) 
 528.26 µs ±   4.99 µs   523.13 µs … 538.58 µs  in 10 ×    189 runs
[dowdiness/lambda] bench benchmarks/let_chain_benchmark.mbt:84 ("let-chain: 320 lets - incremental single edit at tail") ok
time (mean ± σ)         range (min … max) 
   2.31 ms ±  37.77 µs     2.27 ms …   2.36 ms  in 10 ×     44 runs
[dowdiness/lambda] bench benchmarks/let_chain_benchmark.mbt:101 ("let-chain: 80 lets - edit-only at tail") ok
time (mean ± σ)         range (min … max) 
 226.70 µs ± 863.32 ns   225.47 µs … 227.90 µs  in 10 ×    444 runs
[dowdiness/lambda] bench benchmarks/let_chain_benchmark.mbt:121 ("let-chain: 320 lets - edit-only at tail") ok
time (mean ± σ)         range (min … max) 
 969.21 µs ±   9.34 µs   959.25 µs … 988.20 µs  in 10 ×    103 runs
[dowdiness/lambda] bench benchmarks/let_chain_benchmark.mbt:141 ("let-chain: 80 lets - full reparse") ok
time (mean ± σ)         range (min … max) 
 222.97 µs ± 907.81 ns   222.16 µs … 224.98 µs  in 10 ×    450 runs
[dowdiness/lambda] bench benchmarks/let_chain_benchmark.mbt:150 ("let-chain: 320 lets - full reparse") ok
time (mean ± σ)         range (min … max) 
 889.83 µs ±   6.20 µs   883.27 µs … 899.45 µs  in 10 ×    113 runs
[dowdiness/lambda] bench benchmarks/let_chain_benchmark.mbt:161 ("let-chain: 80 lets - 50-edit session incremental") ok
time (mean ± σ)         range (min … max) 
  16.94 ms ± 208.08 µs    16.58 ms …  17.24 ms  in 10 ×      6 runs
[dowdiness/lambda] bench benchmarks/let_chain_benchmark.mbt:180 ("let-chain: 80 lets - 50-edit session full reparse") ok
time (mean ± σ)         range (min … max) 
  11.83 ms ±  38.84 µs    11.76 ms …  11.88 ms  in 10 ×      9 runs
[dowdiness/lambda] bench benchmarks/let_chain_benchmark.mbt:204 ("let-chain: 320 lets - 50-edit session incremental") ok
time (mean ± σ)         range (min … max) 
  69.65 ms ±   3.23 ms    65.40 ms …  74.71 ms  in 10 ×      2 runs
[dowdiness/lambda] bench benchmarks/let_chain_benchmark.mbt:223 ("let-chain: 320 lets - 50-edit session full reparse") ok
time (mean ± σ)         range (min … max) 
  48.33 ms ± 318.21 µs    47.81 ms …  48.78 ms  in 10 ×      3 runs
[dowdiness/lambda] bench benchmarks/let_chain_benchmark.mbt:294 ("let-chain: 20 lambda lets - initial parse") ok
time (mean ± σ)         range (min … max) 
 288.76 µs ±   1.34 µs   287.14 µs … 291.16 µs  in 10 ×    348 runs
[dowdiness/lambda] bench benchmarks/let_chain_benchmark.mbt:304 ("let-chain: 20 lambda lets - edit-only at tail") ok
time (mean ± σ)         range (min … max) 
 227.61 µs ±   1.40 µs   225.93 µs … 229.91 µs  in 10 ×    439 runs
[dowdiness/lambda] bench benchmarks/let_chain_benchmark.mbt:327 ("let-chain: 20 lambda lets - full reparse") ok
time (mean ± σ)         range (min … max) 
 297.64 µs ±   1.42 µs   296.20 µs … 300.22 µs  in 10 ×    334 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:104 ("heavy: large document - initial parse") ok
time (mean ± σ)         range (min … max) 
 276.76 µs ±   5.15 µs   272.75 µs … 288.63 µs  in 10 ×    366 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:115 ("heavy: wide arithmetic 100 terms - initial parse") ok
time (mean ± σ)         range (min … max) 
 157.25 µs ± 561.86 ns   156.36 µs … 158.08 µs  in 10 ×    636 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:126 ("heavy: nested application depth 50 - initial parse") ok
time (mean ± σ)         range (min … max) 
   2.48 ms ±   7.17 µs     2.47 ms …   2.49 ms  in 10 ×     41 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:137 ("heavy: large document - cst parse only") ok
time (mean ± σ)         range (min … max) 
 199.27 µs ±   1.31 µs   197.92 µs … 201.80 µs  in 10 ×    505 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:152 ("heavy: typing session - 100 edits at end") ok
time (mean ± σ)         range (min … max) 
  21.08 ms ± 543.32 µs    20.39 ms …  22.08 ms  in 10 ×      6 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:176 ("heavy: typing session - 100 edits in middle") ok
time (mean ± σ)         range (min … max) 
  35.56 ms ± 489.62 µs    34.74 ms …  36.28 ms  in 10 ×      3 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:204 ("heavy: refactoring session - 100 scattered replacements") ok
time (mean ± σ)         range (min … max) 
   9.27 ms ± 119.92 µs     9.14 ms …   9.56 ms  in 10 ×     12 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:236 ("heavy: FULL REPARSE - 100 edits at end") ok
time (mean ± σ)         range (min … max) 
  25.74 ms ± 110.05 µs    25.62 ms …  25.96 ms  in 10 ×      4 runs
[dowdiness/lambda] test benchmarks/heavy_benchmark.mbt:265 ("heavy: FULL REPARSE - 100 edits in middle") failed: Error
    at throw
    at wasm://wasm/00146c92:wasm-function[2319]:0x469e8
    at wasm://wasm/00146c92:wasm-function[354]:0xdcf3
    at wasm://wasm/00146c92:wasm-function[1381]:0x2f1fe
    at wasm://wasm/00146c92:wasm-function[1380]:0x2f109
    at wasm://wasm/00146c92:wasm-function[1379]:0x2f096
    at wasm://wasm/00146c92:wasm-function[353]:0xdbac
    at wasm://wasm/00146c92:wasm-function[73]:0x9d53
    at wasm://wasm/00146c92:wasm-function[202]:0xa5fb
    at wasm://wasm/00146c92:wasm-function[203]:0xa612
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:291 ("heavy: FULL REPARSE - 100 scattered replacements") ok
time (mean ± σ)         range (min … max) 
  13.12 ms ±  41.33 µs    13.05 ms …  13.19 ms  in 10 ×      8 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:322 ("heavy: FULL REPARSE - large document initial parse") ok
time (mean ± σ)         range (min … max) 
 235.72 µs ± 901.74 ns   234.88 µs … 237.61 µs  in 10 ×    428 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:429 ("scale: 100 terms - full reparse") ok
time (mean ± σ)         range (min … max) 
 109.74 µs ± 379.58 ns   109.23 µs … 110.26 µs  in 10 ×    916 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:434 ("scale: 100 terms - incremental single edit") ok
time (mean ± σ)         range (min … max) 
 326.32 µs ±   2.03 µs   323.20 µs … 329.51 µs  in 10 ×    309 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:439 ("scale: 100 terms - 50-edit session incremental") ok
time (mean ± σ)         range (min … max) 
   7.26 ms ±  18.97 µs     7.24 ms …   7.29 ms  in 10 ×     14 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:444 ("scale: 100 terms - 50-edit session full reparse") ok
time (mean ± σ)         range (min … max) 
   5.99 ms ±  23.54 µs     5.95 ms …   6.03 ms  in 10 ×     17 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:451 ("scale: 500 terms - full reparse") ok
time (mean ± σ)         range (min … max) 
 598.48 µs ±   5.03 µs   594.21 µs … 607.30 µs  in 10 ×    169 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:456 ("scale: 500 terms - incremental single edit") ok
time (mean ± σ)         range (min … max) 
   1.80 ms ±   6.18 µs     1.79 ms …   1.81 ms  in 10 ×     55 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:461 ("scale: 500 terms - 50-edit session incremental") ok
time (mean ± σ)         range (min … max) 
  54.27 ms ± 730.09 µs    53.38 ms …  55.25 ms  in 10 ×      2 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:466 ("scale: 500 terms - 50-edit session full reparse") ok
time (mean ± σ)         range (min … max) 
  30.54 ms ± 118.01 µs    30.40 ms …  30.73 ms  in 10 ×      4 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:473 ("scale: 1000 terms - full reparse") ok
time (mean ± σ)         range (min … max) 
   1.24 ms ±  17.21 µs     1.22 ms …   1.27 ms  in 10 ×     81 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:478 ("scale: 1000 terms - incremental single edit") ok
time (mean ± σ)         range (min … max) 
   3.95 ms ±  30.94 µs     3.90 ms …   3.99 ms  in 10 ×     26 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:483 ("scale: 1000 terms - 50-edit session incremental") ok
time (mean ± σ)         range (min … max) 
 115.10 ms ±   7.52 ms   105.37 ms … 128.38 ms  in 10 ×      1 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:488 ("scale: 1000 terms - 50-edit session full reparse") ok
time (mean ± σ)         range (min … max) 
  63.47 ms ± 478.37 µs    62.82 ms …  64.13 ms  in 10 ×      2 runs
[dowdiness/lambda] bench benchmarks/grammar_incremental_benchmark.mbt:164 ("grammar A (hand): let-chain 80 - initial parse") ok
time (mean ± σ)         range (min … max) 
 149.03 µs ±   1.16 µs   147.75 µs … 151.89 µs  in 10 ×    672 runs
[dowdiness/lambda] bench benchmarks/grammar_incremental_benchmark.mbt:174 ("grammar B (interp): let-chain 80 - initial parse") ok
time (mean ± σ)         range (min … max) 
 181.74 µs ±   1.23 µs   180.13 µs … 184.08 µs  in 10 ×    551 runs
[dowdiness/lambda] bench benchmarks/grammar_incremental_benchmark.mbt:191 ("grammar A (hand): deep lambda tree - full parse") ok
time (mean ± σ)         range (min … max) 
 220.63 µs ± 798.40 ns   219.74 µs … 222.08 µs  in 10 ×    451 runs
[dowdiness/lambda] bench benchmarks/grammar_incremental_benchmark.mbt:201 ("grammar B (interp): deep lambda tree - full parse") ok
time (mean ± σ)         range (min … max) 
 145.60 µs ± 488.46 ns   144.84 µs … 146.28 µs  in 10 ×    691 runs
[dowdiness/lambda] bench benchmarks/grammar_incremental_benchmark.mbt:217 ("grammar A (hand): let-chain 80 - incremental edit session (8 edits)") ok
time (mean ± σ)         range (min … max) 
 757.54 µs ±   6.84 µs   749.67 µs … 769.36 µs  in 10 ×    133 runs
[dowdiness/lambda] bench benchmarks/grammar_incremental_benchmark.mbt:234 ("grammar B (interp): let-chain 80 - incremental edit session (8 edits)") ok
time (mean ± σ)         range (min … max) 
 760.63 µs ±   3.30 µs   757.13 µs … 767.36 µs  in 10 ×    130 runs
[dowdiness/lambda] bench benchmarks/grammar_incremental_benchmark.mbt:308 ("grammar A (hand): deep lambda tree - incremental edit session") ok
time (mean ± σ)         range (min … max) 
 813.53 µs ±   4.74 µs   808.04 µs … 822.82 µs  in 10 ×    122 runs
[dowdiness/lambda] bench benchmarks/grammar_incremental_benchmark.mbt:325 ("grammar B (interp): deep lambda tree - incremental edit session") ok
time (mean ± σ)         range (min … max) 
   1.18 ms ±   4.57 µs     1.18 ms …   1.19 ms  in 10 ×     85 runs
[dowdiness/lambda] bench benchmarks/fold_benchmark.mbt:47 ("fold benchmark: 80 lets - initial parse+fold") ok
time (mean ± σ)         range (min … max) 
 290.27 µs ±   1.44 µs   289.09 µs … 292.83 µs  in 10 ×    343 runs
[dowdiness/lambda] bench benchmarks/fold_benchmark.mbt:57 ("fold benchmark: 80 lets - incremental fold after single edit") ok
time (mean ± σ)         range (min … max) 
 226.89 µs ±   1.31 µs   225.68 µs … 229.14 µs  in 10 ×    438 runs
[dowdiness/lambda] bench benchmarks/fold_benchmark.mbt:75 ("fold benchmark: 320 lets - initial parse+fold") ok
time (mean ± σ)         range (min … max) 
   1.27 ms ±  18.54 µs     1.25 ms …   1.30 ms  in 10 ×     81 runs
[dowdiness/lambda] bench benchmarks/fold_benchmark.mbt:85 ("fold benchmark: 320 lets - incremental fold after single edit") ok
time (mean ± σ)         range (min … max) 
 967.84 µs ±   7.14 µs   958.43 µs … 977.24 µs  in 10 ×    104 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:23 ("concrete-syntax-tree - token constructor") ok
time (mean ± σ)         range (min … max) 
  73.94 ns ±   0.21 ns    73.58 ns …  74.36 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:32 ("concrete-syntax-tree - node constructor from 32 children") ok
time (mean ± σ)         range (min … max) 
 161.49 ns ±   1.02 ns   160.45 ns … 163.08 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:47 ("concrete-syntax-tree - equality identical 32 children") ok
time (mean ± σ)         range (min … max) 
 488.71 ns ±   0.74 ns   488.02 ns … 490.38 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:58 ("concrete-syntax-tree - equality mismatch hash fast path") ok
time (mean ± σ)         range (min … max) 
  15.21 ns ±   0.33 ns    14.95 ns …  15.76 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:103 ("interner - intern_token cold miss") ok
time (mean ± σ)         range (min … max) 
 182.16 ns ±   0.42 ns   181.72 ns … 182.94 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:114 ("interner - intern_token warm hit") ok
time (mean ± σ)         range (min … max) 
  53.91 ns ±   0.47 ns    53.22 ns …  54.45 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:125 ("build_tree - x + 1") ok
time (mean ± σ)         range (min … max) 
 407.16 ns ±   1.09 ns   406.15 ns … 409.72 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:136 ("build_tree_interned - x + 1, cold interner") ok
time (mean ± σ)         range (min … max) 
 754.08 ns ±   1.81 ns   751.49 ns … 755.99 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:152 ("build_tree_interned - x + 1, warm interner") ok
time (mean ± σ)         range (min … max) 
 431.42 ns ±   1.14 ns   429.97 ns … 433.65 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:178 ("build_tree - 100 identical ident tokens") ok
time (mean ± σ)         range (min … max) 
   3.28 µs ±  11.86 ns     3.27 µs …   3.30 µs  in 10 ×  30372 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:189 ("build_tree_interned - 100 identical tokens, warm interner") ok
time (mean ± σ)         range (min … max) 
   3.95 µs ±   5.38 ns     3.95 µs …   3.96 µs  in 10 ×  25319 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:226 ("build_tree_fully_interned - x + x, cold") ok
time (mean ± σ)         range (min … max) 
 915.78 ns ±   1.94 ns   913.20 ns … 918.24 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:244 ("build_tree_fully_interned - x + x, warm") ok
time (mean ± σ)         range (min … max) 
 655.86 ns ±   2.81 ns   651.97 ns … 659.71 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:267 ("build_tree_interned - x + x, warm") ok
time (mean ± σ)         range (min … max) 
 435.18 ns ±   1.91 ns   433.07 ns … 437.94 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:283 ("build_tree - x + x") ok
time (mean ± σ)         range (min … max) 
 409.28 ns ±   0.95 ns   408.02 ns … 410.58 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:293 ("node_interner - intern_node cold miss") ok
time (mean ± σ)         range (min … max) 
  77.68 ns ±   0.52 ns    76.99 ns …  78.41 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:306 ("node_interner - intern_node warm hit") ok
time (mean ± σ)         range (min … max) 
  61.96 ns ±   0.36 ns    61.31 ns …  62.55 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:323 ("parse_cst - end-to-end") ok
time (mean ± σ)         range (min … max) 
   4.92 µs ±   7.24 ns     4.91 µs …   4.93 µs  in 10 ×  20348 runs
[dowdiness/lambda] bench benchmarks/block_reparse_benchmark.mbt:75 ("block-reparse: 80 blocks - edit inside block") ok
time (mean ± σ)         range (min … max) 
 342.32 µs ±   1.03 µs   340.96 µs … 344.28 µs  in 10 ×    291 runs
[dowdiness/lambda] bench benchmarks/block_reparse_benchmark.mbt:100 ("block-reparse: 320 blocks - edit inside block") ok
time (mean ± σ)         range (min … max) 
   1.55 ms ±  10.81 µs     1.54 ms …   1.57 ms  in 10 ×     65 runs
[dowdiness/lambda] bench benchmarks/block_reparse_benchmark.mbt:126 ("block-reparse: 80 blocks - full reparse (baseline)") ok
time (mean ± σ)         range (min … max) 
 757.68 µs ±  27.31 µs   744.50 µs … 835.11 µs  in 10 ×    132 runs
[dowdiness/lambda] bench benchmarks/block_reparse_benchmark.mbt:135 ("block-reparse: 320 blocks - full reparse (baseline)") ok
time (mean ± σ)         range (min … max) 
   3.49 ms ±  45.51 µs     3.43 ms …   3.57 ms  in 10 ×     29 runs
[dowdiness/lambda] bench benchmarks/block_reparse_benchmark.mbt:149 ("block-reparse: 80 blocks - 50-edit session") ok
time (mean ± σ)         range (min … max) 
  26.51 ms ± 313.68 µs    26.11 ms …  27.06 ms  in 10 ×      4 runs
[dowdiness/lambda] bench benchmarks/block_reparse_benchmark.mbt:177 ("block-reparse: 320 blocks - 50-edit session") ok
time (mean ± σ)         range (min … max) 
 108.52 ms ±   1.78 ms   106.41 ms … 111.07 ms  in 10 ×      1 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:6 ("full parse - simple") ok
time (mean ± σ)         range (min … max) 
   1.36 µs ±   3.49 ns     1.36 µs …   1.37 µs  in 10 ×  73079 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:15 ("full parse - lambda") ok
time (mean ± σ)         range (min … max) 
   3.90 µs ±   7.65 ns     3.89 µs …   3.91 µs  in 10 ×  25672 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:26 ("full parse - nested lambdas") ok
time (mean ± σ)         range (min … max) 
   7.74 µs ±  11.57 ns     7.72 µs …   7.76 µs  in 10 ×  12959 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:37 ("full parse - arithmetic") ok
time (mean ± σ)         range (min … max) 
   5.54 µs ±  14.86 ns     5.52 µs …   5.56 µs  in 10 ×  18093 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:48 ("full parse - complex") ok
time (mean ± σ)         range (min … max) 
  13.17 µs ±  27.31 ns    13.13 µs …  13.22 µs  in 10 ×   7599 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:59 ("tokenization") ok
time (mean ± σ)         range (min … max) 
 828.63 ns ±   7.16 ns   824.59 ns … 846.94 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:70 ("incremental - initial parse") ok
time (mean ± σ)         range (min … max) 
   1.88 µs ±   5.48 ns     1.88 µs …   1.89 µs  in 10 ×  53045 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:80 ("incremental - small edit") ok
time (mean ± σ)         range (min … max) 
   6.32 µs ±  25.37 ns     6.30 µs …   6.38 µs  in 10 ×  15834 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:92 ("incremental - multiple edits") ok
time (mean ± σ)         range (min … max) 
  11.85 µs ±  31.80 ns    11.82 µs …  11.91 µs  in 10 ×   8357 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:106 ("incremental - replacement") ok
time (mean ± σ)         range (min … max) 
  10.30 µs ±  32.34 ns    10.25 µs …  10.35 µs  in 10 ×   9821 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:118 ("damage tracking") ok
time (mean ± σ)         range (min … max) 
  23.40 ns ±   0.24 ns    23.11 ns …  23.89 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:128 ("error recovery - valid") ok
time (mean ± σ)         range (min … max) 
   3.92 µs ±  27.38 ns     3.90 µs …   3.98 µs  in 10 ×  25576 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:139 ("error recovery - error") ok
time (mean ± σ)         range (min … max) 
   5.02 µs ±   5.13 ns     5.01 µs …   5.03 µs  in 10 ×  19959 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:150 ("full parse - let") ok
time (mean ± σ)         range (min … max) 
   4.48 µs ±  17.46 ns     4.46 µs …   4.51 µs  in 10 ×  22252 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:161 ("full parse - nested let") ok
time (mean ± σ)         range (min … max) 
   8.94 µs ±  16.83 ns     8.92 µs …   8.97 µs  in 10 ×  11167 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:173 ("incremental - let body edit") ok
time (mean ± σ)         range (min … max) 
  12.07 µs ±  78.26 ns    12.00 µs …  12.24 µs  in 10 ×   8310 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:188 ("incremental - let init edit") ok
time (mean ± σ)         range (min … max) 
  13.86 µs ±  25.31 ns    13.81 µs …  13.89 µs  in 10 ×   7200 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:242 ("bench: zero-width boundary reuse regular items=8 old=plain zw=0") ok
time (mean ± σ)         range (min … max) 
   2.35 µs ±   2.11 ns     2.35 µs …   2.35 µs  in 10 ×  41429 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:249 ("bench: zero-width boundary reuse regular items=8 old=plain zw=1") ok
time (mean ± σ)         range (min … max) 
   4.03 µs ±   5.49 ns     4.03 µs …   4.04 µs  in 10 ×  24816 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:256 ("bench: zero-width boundary reuse regular items=8 old=plain zw=2") ok
time (mean ± σ)         range (min … max) 
   4.97 µs ±  16.58 ns     4.96 µs …   5.01 µs  in 10 ×  20126 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:263 ("bench: zero-width boundary reuse regular items=8 old=plain zw=4") ok
time (mean ± σ)         range (min … max) 
   6.65 µs ±  13.35 ns     6.63 µs …   6.67 µs  in 10 ×  15062 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:270 ("bench: zero-width boundary reuse regular items=8 old=plain zw=8") ok
time (mean ± σ)         range (min … max) 
  10.21 µs ±  10.46 ns    10.20 µs …  10.23 µs  in 10 ×   9775 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:277 ("bench: zero-width boundary reuse regular items=8 old=plain zw=16") ok
time (mean ± σ)         range (min … max) 
  18.02 µs ±  85.94 ns    17.95 µs …  18.20 µs  in 10 ×   5562 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:284 ("bench: zero-width boundary reuse repeat items=64 old=plain zw=0") ok
time (mean ± σ)         range (min … max) 
   1.19 µs ±  16.37 ns     1.18 µs …   1.22 µs  in 10 ×  84512 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:291 ("bench: zero-width boundary reuse repeat items=64 old=plain zw=1") ok
time (mean ± σ)         range (min … max) 
   1.82 µs ±  14.71 ns     1.82 µs …   1.87 µs  in 10 ×  54822 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:298 ("bench: zero-width boundary reuse repeat items=64 old=plain zw=2") ok
time (mean ± σ)         range (min … max) 
   2.29 µs ±   3.27 ns     2.29 µs …   2.30 µs  in 10 ×  43519 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:305 ("bench: zero-width boundary reuse repeat items=64 old=plain zw=4") ok
time (mean ± σ)         range (min … max) 
   3.18 µs ±   5.65 ns     3.17 µs …   3.19 µs  in 10 ×  31504 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:312 ("bench: zero-width boundary reuse repeat items=64 old=plain zw=8") ok
time (mean ± σ)         range (min … max) 
   5.02 µs ±  15.45 ns     5.01 µs …   5.05 µs  in 10 ×  19932 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:319 ("bench: zero-width boundary reuse repeat items=64 old=plain zw=16") ok
time (mean ± σ)         range (min … max) 
   8.80 µs ±  15.90 ns     8.78 µs …   8.84 µs  in 10 ×  11325 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:326 ("bench: zero-width boundary reuse regular items=4 old=plain zw=8") ok
time (mean ± σ)         range (min … max) 
   4.72 µs ±  12.62 ns     4.70 µs …   4.74 µs  in 10 ×  21258 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:333 ("bench: zero-width boundary reuse repeat items=16 old=plain zw=8") ok
time (mean ± σ)         range (min … max) 
   2.78 µs ±   5.15 ns     2.77 µs …   2.79 µs  in 10 ×  36032 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:340 ("bench: zero-width boundary reuse regular items=8 old=token-interned zw=16") ok
time (mean ± σ)         range (min … max) 
  17.85 µs ±  19.71 ns    17.83 µs …  17.89 µs  in 10 ×   5594 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:347 ("bench: zero-width boundary reuse regular items=8 old=fully-interned zw=16") ok
time (mean ± σ)         range (min … max) 
  17.88 µs ±  20.85 ns    17.85 µs …  17.93 µs  in 10 ×   5589 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:354 ("bench: zero-width boundary reuse repeat items=64 old=token-interned zw=16") ok
time (mean ± σ)         range (min … max) 
   8.80 µs ±  11.54 ns     8.78 µs …   8.82 µs  in 10 ×  11386 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:361 ("bench: zero-width boundary reuse repeat items=64 old=fully-interned zw=16") ok
time (mean ± σ)         range (min … max) 
   8.82 µs ±  10.68 ns     8.81 µs …   8.84 µs  in 10 ×  11343 runs
[dowdiness/markdown] bench benchmark_test.mbt:80 ("markdown: 10x (~200 lines) - tokenize") ok
time (mean ± σ)         range (min … max) 
  74.33 µs ±   1.07 µs    73.40 µs …  77.25 µs  in 10 ×   1301 runs
[dowdiness/markdown] bench benchmark_test.mbt:89 ("markdown: 10x (~200 lines) - full parse") ok
time (mean ± σ)         range (min … max) 
 437.62 µs ±  13.05 µs   424.02 µs … 464.55 µs  in 10 ×    201 runs
[dowdiness/markdown] bench benchmark_test.mbt:98 ("markdown: 10x (~200 lines) - incremental") ok
time (mean ± σ)         range (min … max) 
 344.51 µs ±   1.69 µs   342.37 µs … 346.90 µs  in 10 ×    293 runs
[dowdiness/markdown] bench benchmark_test.mbt:114 ("markdown: 50x (~1000 lines) - tokenize") ok
time (mean ± σ)         range (min … max) 
 379.21 µs ±   2.11 µs   376.84 µs … 382.27 µs  in 10 ×    263 runs
[dowdiness/markdown] bench benchmark_test.mbt:123 ("markdown: 50x (~1000 lines) - full parse") ok
time (mean ± σ)         range (min … max) 
   2.19 ms ±  26.83 µs     2.15 ms …   2.23 ms  in 10 ×     46 runs
[dowdiness/markdown] bench benchmark_test.mbt:132 ("markdown: 50x (~1000 lines) - incremental") ok
time (mean ± σ)         range (min … max) 
   1.78 ms ±  13.62 µs     1.76 ms …   1.80 ms  in 10 ×     57 runs
[dowdiness/markdown] bench benchmark_test.mbt:147 ("markdown: 100x (~2000 lines) - tokenize") ok
time (mean ± σ)         range (min … max) 
 779.55 µs ±   3.55 µs   774.98 µs … 784.58 µs  in 10 ×    128 runs
[dowdiness/markdown] bench benchmark_test.mbt:156 ("markdown: 100x (~2000 lines) - full parse") ok
time (mean ± σ)         range (min … max) 
   4.42 ms ±  17.77 µs     4.40 ms …   4.45 ms  in 10 ×     23 runs
[dowdiness/markdown] bench benchmark_test.mbt:165 ("markdown: 100x (~2000 lines) - incremental") ok
time (mean ± σ)         range (min … max) 
   3.62 ms ± 119.49 µs     3.50 ms …   3.88 ms  in 10 ×     29 runs
[dowdiness/markdown] bench benchmark_test.mbt:184 ("markdown: realistic doc - full parse (CST)") ok
time (mean ± σ)         range (min … max) 
 125.70 µs ± 463.43 ns   125.17 µs … 126.59 µs  in 10 ×    797 runs
[dowdiness/markdown] bench benchmark_test.mbt:193 ("markdown: realistic doc - full parse (CST+AST)") ok
time (mean ± σ)         range (min … max) 
 188.23 µs ±   1.20 µs   186.73 µs … 190.30 µs  in 10 ×    533 runs
[dowdiness/markdown] bench benchmark_test.mbt:204 ("markdown: realistic doc - tokenize only") ok
time (mean ± σ)         range (min … max) 
  39.36 µs ± 128.87 ns    39.21 µs …  39.65 µs  in 10 ×   2549 runs
[dowdiness/markdown] bench benchmark_test.mbt:223 ("markdown: realistic doc - lowering SyntaxNode -> Block") ok
time (mean ± σ)         range (min … max) 
  52.19 µs ± 138.63 ns    51.97 µs …  52.35 µs  in 10 ×   1907 runs
[dowdiness/markdown] bench benchmark_test.mbt:233 ("markdown: realistic doc - lowering SyntaxNode -> MarkdownIR -> Block") ok
time (mean ± σ)         range (min … max) 
  53.51 µs ± 593.97 ns    52.97 µs …  54.78 µs  in 10 ×   1731 runs
[dowdiness/markdown] bench benchmark_test.mbt:245 ("markdown: 50x doc - lowering SyntaxNode -> Block") ok
time (mean ± σ)         range (min … max) 
 618.52 µs ±   3.61 µs   613.09 µs … 623.22 µs  in 10 ×    162 runs
[dowdiness/markdown] bench benchmark_test.mbt:255 ("markdown: 50x doc - lowering SyntaxNode -> MarkdownIR -> Block") ok
time (mean ± σ)         range (min … max) 
 747.74 µs ±  11.23 µs   736.25 µs … 767.22 µs  in 10 ×    136 runs
[dowdiness/markdown] bench benchmark_test.mbt:273 ("markdown: realistic doc - incremental (edit paragraph)") ok
time (mean ± σ)         range (min … max) 
 201.95 µs ±   1.14 µs   200.58 µs … 203.98 µs  in 10 ×    496 runs
[dowdiness/markdown] bench benchmark_test.mbt:291 ("markdown: realistic doc - incremental (edit heading)") ok
time (mean ± σ)         range (min … max) 
 179.59 µs ± 456.90 ns   179.06 µs … 180.40 µs  in 10 ×    556 runs
[dowdiness/markdown] bench benchmark_test.mbt:309 ("markdown: realistic doc - incremental (edit list item)") ok
time (mean ± σ)         range (min … max) 
 192.67 µs ± 549.79 ns   191.91 µs … 193.29 µs  in 10 ×    520 runs
[dowdiness/markdown] bench benchmark_test.mbt:327 ("markdown: realistic doc - incremental (edit code block)") ok
time (mean ± σ)         range (min … max) 
 183.31 µs ±   1.47 µs   182.37 µs … 187.14 µs  in 10 ×    545 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:58 ("bench: insert_at sequential (1000)") ok
time (mean ± σ)         range (min … max) 
 958.98 µs ±  20.47 µs   943.54 µs …   1.01 ms  in 10 ×    103 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:69 ("bench: insert_at sequential (10000)") ok
time (mean ± σ)         range (min … max) 
  14.49 ms ± 201.62 µs    14.22 ms …  14.82 ms  in 10 ×      7 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:80 ("bench: insert_at random (1000)") ok
time (mean ± σ)         range (min … max) 
 862.38 µs ±   4.98 µs   856.83 µs … 872.43 µs  in 10 ×    117 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:93 ("bench: get_at random (1000)") ok
time (mean ± σ)         range (min … max) 
 863.34 µs ±   2.65 µs   861.27 µs … 869.97 µs  in 10 ×    116 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:109 ("bench: delete_at sequential (1000)") ok
time (mean ± σ)         range (min … max) 
 714.57 µs ±   1.93 µs   711.69 µs … 717.33 µs  in 10 ×    140 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:120 ("bench: from_array (1000)") ok
time (mean ± σ)         range (min … max) 
  18.14 µs ± 129.58 ns    17.97 µs …  18.38 µs  in 10 ×   5505 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:129 ("bench: from_array (10000)") ok
time (mean ± σ)         range (min … max) 
 259.51 µs ±   2.85 µs   256.98 µs … 265.27 µs  in 10 ×    382 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:138 ("bench: iter (1000)") ok
time (mean ± σ)         range (min … max) 
   6.40 µs ± 138.14 ns     6.26 µs …   6.62 µs  in 10 ×  15082 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:148 ("bench: view middle range (1000)") ok
time (mean ± σ)         range (min … max) 
  31.74 µs ± 197.23 ns    31.59 µs …  32.25 µs  in 10 ×   3160 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:157 ("bench: delete_range middle (1000)") ok
time (mean ± σ)         range (min … max) 
  38.78 µs ± 196.80 ns    38.53 µs …  39.19 µs  in 10 ×   2608 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:166 ("bench: min_degree=2 insert (1000)") ok
time (mean ± σ)         range (min … max) 
   1.27 ms ±   4.14 µs     1.27 ms …   1.28 ms  in 10 ×     78 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:177 ("bench: min_degree=5 insert (1000)") ok
time (mean ± σ)         range (min … max) 
 882.31 µs ±   6.08 µs   874.32 µs … 892.43 µs  in 10 ×    114 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:188 ("bench: min_degree=10 insert (1000)") ok
time (mean ± σ)         range (min … max) 
 940.99 µs ±   5.32 µs   933.09 µs … 948.86 µs  in 10 ×    107 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:199 ("bench: min_degree=16 insert (1000)") ok
time (mean ± σ)         range (min … max) 
   1.09 ms ±   6.34 µs     1.08 ms …   1.10 ms  in 10 ×     92 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:210 ("bench: min_degree=32 insert (1000)") ok
time (mean ± σ)         range (min … max) 
   1.35 ms ±  13.32 µs     1.33 ms …   1.37 ms  in 10 ×     74 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:272 ("bench: insert_at sequential mergeable (10000)") ok
time (mean ± σ)         range (min … max) 
   1.87 ms ±  13.92 µs     1.86 ms …   1.90 ms  in 10 ×     53 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:283 ("bench: from_array mergeable (10000)") ok
time (mean ± σ)         range (min … max) 
  47.03 µs ± 195.96 ns    46.79 µs …  47.32 µs  in 10 ×   2127 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:295 ("bench: view middle mergeable (10000)") ok
time (mean ± σ)         range (min … max) 
 152.74 ns ±   0.59 ns   151.93 ns … 153.72 ns  in 10 × 100000 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:307 ("bench: delete_range middle mergeable (10000)") ok
time (mean ± σ)         range (min … max) 
  77.37 µs ± 770.40 ns    76.48 µs …  78.74 µs  in 10 ×   1282 runs
[dowdiness/rle] bench rle_benchmark.mbt:45 ("runs - range iter (small)") ok
time (mean ± σ)         range (min … max) 
   7.79 µs ± 136.73 ns     7.70 µs …   8.13 µs  in 10 ×  12637 runs
[dowdiness/rle] bench rle_benchmark.mbt:60 ("runs - range iter (middle)") ok
time (mean ± σ)         range (min … max) 
  18.80 µs ±   8.87 ns    18.78 µs …  18.81 µs  in 10 ×   5308 runs
[dowdiness/rle] bench rle_benchmark.mbt:76 ("runs - concat batch") ok
time (mean ± σ)         range (min … max) 
   2.58 µs ±  34.24 ns     2.54 µs …   2.65 µs  in 10 ×  39056 runs
[dowdiness/rle] bench rle_benchmark.mbt:87 ("runs - extend batch") ok
time (mean ± σ)         range (min … max) 
   2.52 µs ±  33.86 ns     2.49 µs …   2.61 µs  in 10 ×  39266 runs
[dowdiness/rle] bench rle_benchmark.mbt:99 ("runs - from_array_batch") ok
time (mean ± σ)         range (min … max) 
  55.73 µs ± 678.72 ns    55.19 µs …  57.08 µs  in 10 ×   1812 runs
[dowdiness/seam] bench syntax_node_bench_wbtest.mbt:34 ("bench: token_at_offset interior hit mid-tree") ok
time (mean ± σ)         range (min … max) 
   2.05 µs ±  38.88 ns     2.01 µs …   2.10 µs  in 10 ×  46983 runs
[dowdiness/seam] bench syntax_node_bench_wbtest.mbt:41 ("bench: token_at_offset boundary Between mid-tree") ok
time (mean ± σ)         range (min … max) 
   3.84 µs ±   5.54 ns     3.83 µs …   3.85 µs  in 10 ×  25927 runs
[dowdiness/seam] bench syntax_node_bench_wbtest.mbt:48 ("bench: token_at_offset out-of-range miss (full scan)") ok
time (mean ± σ)         range (min … max) 
   4.03 µs ±  47.99 ns     3.95 µs …   4.10 µs  in 10 ×  24728 runs
[dowdiness/seam] bench event_bench_wbtest.mbt:60 ("bench: build_tree with ReuseNode (rebuild_subtree)") ok
time (mean ± σ)         range (min … max) 
 114.41 µs ± 320.10 ns   114.10 µs … 115.07 µs  in 10 ×    815 runs
[dowdiness/seam] bench event_bench_wbtest.mbt:77 ("bench: build_tree_interned with ReuseNode (re_intern_tokens_only)") ok
time (mean ± σ)         range (min … max) 
 192.51 µs ± 519.71 ns   191.69 µs … 193.19 µs  in 10 ×    517 runs
[dowdiness/seam] bench event_bench_wbtest.mbt:97 ("bench: EventBuffer push_parser_reuse_node_rebased (matching source rebase)") ok
time (mean ± σ)         range (min … max) 
 172.61 µs ± 534.67 ns   172.03 µs … 173.54 µs  in 10 ×    581 runs
[dowdiness/seam] bench event_bench_wbtest.mbt:118 ("bench: EventBuffer push_parser_reuse_node_rebased_unchecked (validated source rebase)") ok
time (mean ± σ)         range (min … max) 
 127.93 µs ± 259.43 ns   127.52 µs … 128.27 µs  in 10 ×    774 runs
[dowdiness/seam] bench cst_traits_wbtest.mbt:126 ("bench: text_len hand-written") ok
time (mean ± σ)         range (min … max) 
 603.99 µs ±   1.93 µs   601.71 µs … 607.02 µs  in 10 ×    165 runs
[dowdiness/seam] bench cst_traits_wbtest.mbt:134 ("bench: text_len via accept_fold[TextLen]") ok
time (mean ± σ)         range (min … max) 
 523.86 µs ±   1.10 µs   522.41 µs … 525.21 µs  in 10 ×    191 runs
[dowdiness/seam] bench cst_traits_wbtest.mbt:142 ("bench: text_len via closure fold") ok
time (mean ± σ)         range (min … max) 
 754.22 µs ±   3.48 µs   750.49 µs … 760.06 µs  in 10 ×    133 runs
[dowdiness/seam] bench cst_traits_wbtest.mbt:150 ("bench: node_count hand-written") ok
time (mean ± σ)         range (min … max) 
 492.08 µs ±   1.22 µs   490.92 µs … 494.45 µs  in 10 ×    204 runs
[dowdiness/seam] bench cst_traits_wbtest.mbt:158 ("bench: node_count via accept_transform_fold[NodeCount]") ok
time (mean ± σ)         range (min … max) 
 410.42 µs ±   3.21 µs   408.04 µs … 418.78 µs  in 10 ×    245 runs
[dowdiness/seam] bench cst_traits_wbtest.mbt:168 ("bench: node_count via closure transform_fold") ok
time (mean ± σ)         range (min … max) 
 418.23 µs ± 238.26 ns   417.82 µs … 418.64 µs  in 10 ×    240 runs
[dowdiness/seam] bench cst_traits_wbtest.mbt:204 ("bench: token_count (trivia filter) via CstElement::token_count") ok
time (mean ± σ)         range (min … max) 
 472.25 µs ± 678.19 ns   470.90 µs … 473.38 µs  in 10 ×    210 runs
[dowdiness/visualizer] bench incr_tap_benchmark.mbt:44 ("bench/incr_tap/snapshot_fanout_256") ok
time (mean ± σ)         range (min … max) 
  56.67 µs ± 905.04 ns    56.05 µs …  59.06 µs  in 10 ×   1666 runs
[dowdiness/visualizer] bench incr_tap_benchmark.mbt:51 ("bench/incr_tap/snapshot_fanout_2048") ok
time (mean ± σ)         range (min … max) 
 588.15 µs ±   9.26 µs   579.20 µs … 603.76 µs  in 10 ×    172 runs
[dowdiness/visualizer] bench incr_tap_benchmark.mbt:58 ("bench/incr_tap/to_visual_graph_fanout_256") ok
time (mean ± σ)         range (min … max) 
 110.12 µs ± 367.25 ns   109.73 µs … 110.81 µs  in 10 ×    905 runs
[dowdiness/visualizer] bench incr_tap_benchmark.mbt:64 ("bench/incr_tap/to_visual_graph_fanout_2048") ok
time (mean ± σ)         range (min … max) 
   1.05 ms ±  14.71 µs     1.03 ms …   1.07 ms  in 10 ×     93 runs
Total tests: 428, passed: 427, failed: 1. [wasm-gc]
Warning: [0020]
     ╭─[ /home/runner/work/canopy/canopy/rabbita/rabbita/http/http.mbt:301:39 ]
     │
 301 │       let result : Result[T, Error] = try? @json.from_json(@json.parse(body))
     │                                       ──┬─  
     │                                         ╰─── Warning (deprecated): `try?` is deprecated.

Do not mechanically replace this with:
  try expr |> Ok catch { e => Err(e) }

That still creates a local `Result` wrapper and usually misses the intended migration.

Default migration: handle the raising expression directly with `try ... catch ... noraise`, especially in local inspect/assert/match/guard/logging/test code:

  try expr catch {
    e => inspect(e, content=...)
  } noraise {
    value => inspect(value, content=...)
  }

Only create `Ok`/`Err` when the `Result` value must escape this local expression: stored, returned, passed to a Result-taking API, or kept for later comparison as data.
─────╯
Warning: [0020]
   ╭─[ /home/runner/work/canopy/canopy/rabbita/rabbita/url/url_test.mbt:5:5 ]
   │
 5 │     try? @url.parse(a),
   │     ──┬─  
   │       ╰─── Warning (deprecated): `try?` is deprecated.

Do not mechanically replace this with:
  try expr |> Ok catch { e => Err(e) }

That still creates a local `Result` wrapper and usually misses the intended migration.

Default migration: handle the raising expression directly with `try ... catch ... noraise`, especially in local inspect/assert/match/guard/logging/test code:

  try expr catch {
    e => inspect(e, content=...)
  } noraise {
    value => inspect(value, content=...)
  }

Only create `Ok`/`Err` when the `Result` value must escape this local expression: stored, returned, passed to a Result-taking API, or kept for later comparison as data.
───╯
Warning: [0020]
    ╭─[ /home/runner/work/canopy/canopy/rabbita/rabbita/url/url_test.mbt:11:5 ]
    │
 11 │     try? @url.parse("https://example.com"),
    │     ──┬─  
    │       ╰─── Warning (deprecated): `try?` is deprecated.

Do not mechanically replace this with:
  try expr |> Ok catch { e => Err(e) }

That still creates a local `Result` wrapper and usually misses the intended migration.

Default migration: handle the raising expression directly with `try ... catch ... noraise`, especially in local inspect/assert/match/guard/logging/test code:

  try expr catch {
    e => inspect(e, content=...)
  } noraise {
    value => inspect(value, content=...)
  }

Only create `Ok`/`Err` when the `Result` value must escape this local expression: stored, returned, passed to a Result-taking API, or kept for later comparison as data.
────╯
Warning: [0020]
    ╭─[ /home/runner/work/canopy/canopy/rabbita/rabbita/url/url_test.mbt:17:5 ]
    │
 17 │     try? @url.parse("https://example.com/"),
    │     ──┬─  
    │       ╰─── Warning (deprecated): `try?` is deprecated.

Do not mechanically replace this with:
  try expr |> Ok catch { e => Err(e) }

That still creates a local `Result` wrapper and usually misses the intended migration.

Default migration: handle the raising expression directly with `try ... catch ... noraise`, especially in local inspect/assert/match/guard/logging/test code:

  try expr catch {
    e => inspect(e, content=...)
  } noraise {
    value => inspect(value, content=...)
  }

Only create `Ok`/`Err` when the `Result` value must escape this local expression: stored, returned, passed to a Result-taking API, or kept for later comparison as data.
────╯
Warning: [0020]
    ╭─[ /home/runner/work/canopy/canopy/rabbita/rabbita/url/url_test.mbt:23:5 ]
    │
 23 │     try? @url.parse("https://example.com/path1/path2"),
    │     ──┬─  
    │       ╰─── Warning (deprecated): `try?` is deprecated.

Do not mechanically replace this with:
  try expr |> Ok catch { e => Err(e) }

That still creates a local `Result` wrapper and usually misses the intended migration.

Default migration: handle the raising expression directly with `try ... catch ... noraise`, especially in local inspect/assert/match/guard/logging/test code:

  try expr catch {
    e => inspect(e, content=...)
  } noraise {
    value => inspect(value, content=...)
  }

Only create `Ok`/`Err` when the `Result` value must escape this local expression: stored, returned, passed to a Result-taking API, or kept for later comparison as data.
────╯
Warning: [0020]
    ╭─[ /home/runner/work/canopy/canopy/rabbita/rabbita/url/url_test.mbt:29:5 ]
    │
 29 │     try? @url.parse("https://example.com:8080/path/to/somewhere?query#fragment"),
    │     ──┬─  
    │       ╰─── Warning (deprecated): `try?` is deprecated.

Do not mechanically replace this with:
  try expr |> Ok catch { e => Err(e) }

That still creates a local `Result` wrapper and usually misses the intended migration.

Default migration: handle the raising expression directly with `try ... catch ... noraise`, especially in local inspect/assert/match/guard/logging/test code:

  try expr catch {
    e => inspect(e, content=...)
  } noraise {
    value => inspect(value, content=...)
  }

Only create `Ok`/`Err` when the `Result` value must escape this local expression: stored, returned, passed to a Result-taking API, or kept for later comparison as data.
────╯
Warning: [0020]
    ╭─[ /home/runner/work/canopy/canopy/rabbita/rabbita/url/url_test.mbt:35:5 ]
    │
 35 │     try? @url.parse(
    │     ──┬─  
    │       ╰─── Warning (deprecated): `try?` is deprecated.

Do not mechanically replace this with:
  try expr |> Ok catch { e => Err(e) }

That still creates a local `Result` wrapper and usually misses the intended migration.

Default migration: handle the raising expression directly with `try ... catch ... noraise`, especially in local inspect/assert/match/guard/logging/test code:

  try expr catch {
    e => inspect(e, content=...)
  } noraise {
    value => inspect(value, content=...)
  }

Only create `Ok`/`Err` when the `Result` value must escape this local expression: stored, returned, passed to a Result-taking API, or kept for later comparison as data.
────╯
Warning: [0020]
    ╭─[ /home/runner/work/canopy/canopy/rabbita/rabbita/url/url_test.mbt:47:5 ]
    │
 47 │     try? @url.parse("localhost:8080/abcd"),
    │     ──┬─  
    │       ╰─── Warning (deprecated): `try?` is deprecated.

Do not mechanically replace this with:
  try expr |> Ok catch { e => Err(e) }

That still creates a local `Result` wrapper and usually misses the intended migration.

Default migration: handle the raising expression directly with `try ... catch ... noraise`, especially in local inspect/assert/match/guard/logging/test code:

  try expr catch {
    e => inspect(e, content=...)
  } noraise {
    value => inspect(value, content=...)
  }

Only create `Ok`/`Err` when the `Result` value must escape this local expression: stored, returned, passed to a Result-taking API, or kept for later comparison as data.
────╯
Warning: [0020]
    ╭─[ /home/runner/work/canopy/canopy/rabbita/rabbita/url/url_test.mbt:57:5 ]
    │
 57 │     try? @url.parse("https://example.com/path/to/somewhere?query#fragment"),
    │     ──┬─  
    │       ╰─── Warning (deprecated): `try?` is deprecated.

Do not mechanically replace this with:
  try expr |> Ok catch { e => Err(e) }

That still creates a local `Result` wrapper and usually misses the intended migration.

Default migration: handle the raising expression directly with `try ... catch ... noraise`, especially in local inspect/assert/match/guard/logging/test code:

  try expr catch {
    e => inspect(e, content=...)
  } noraise {
    value => inspect(value, content=...)
  }

Only create `Ok`/`Err` when the `Result` value must escape this local expression: stored, returned, passed to a Result-taking API, or kept for later comparison as data.
────╯
Warning: [0020]
    ╭─[ /home/runner/work/canopy/canopy/rabbita/rabbita/url/url_test.mbt:67:5 ]
    │
 67 │     try? @url.parse("https://example.com:8080/path/to/somewhere#fragment"),
    │     ──┬─  
    │       ╰─── Warning (deprecated): `try?` is deprecated.

Do not mechanically replace this with:
  try expr |> Ok catch { e => Err(e) }

That still creates a local `Result` wrapper and usually misses the intended migration.

Default migration: handle the raising expression directly with `try ... catch ... noraise`, especially in local inspect/assert/match/guard/logging/test code:

  try expr catch {
    e => inspect(e, content=...)
  } noraise {
    value => inspect(value, content=...)
  }

Only create `Ok`/`Err` when the `Result` value must escape this local expression: stored, returned, passed to a Result-taking API, or kept for later comparison as data.
────╯
Warning: [0020]
    ╭─[ /home/runner/work/canopy/canopy/rabbita/rabbita/url/url_test.mbt:77:5 ]
    │
 77 │     try? @url.parse("https://example.com:8080/path/to/somewhere?query"),
    │     ──┬─  
    │       ╰─── Warning (deprecated): `try?` is deprecated.

Do not mechanically replace this with:
  try expr |> Ok catch { e => Err(e) }

That still creates a local `Result` wrapper and usually misses the intended migration.

Default migration: handle the raising expression directly with `try ... catch ... noraise`, especially in local inspect/assert/match/guard/logging/test code:

  try expr catch {
    e => inspect(e, content=...)
  } noraise {
    value => inspect(value, content=...)
  }

Only create `Ok`/`Err` when the `Result` value must escape this local expression: stored, returned, passed to a Result-taking API, or kept for later comparison as data.
────╯
Warning: Some diagnostics could not be rendered, please run with --no-render to see raw output.
node count: 402
node count: 802
node count: 2002
[dowdiness/canopy] bench editor/view_updater_benchmark_wbtest.mbt:32 ("viewnode serialization (100 defs)") ok
time (mean ± σ)         range (min … max) 
   1.39 ms ±  15.13 µs     1.37 ms …   1.42 ms  in 10 ×     71 runs
[dowdiness/canopy] bench editor/view_updater_benchmark_wbtest.mbt:43 ("viewnode serialization (200 defs)") ok
time (mean ± σ)         range (min … max) 
   3.25 ms ±  48.49 µs     3.20 ms …   3.34 ms  in 10 ×     31 runs
[dowdiness/canopy] bench editor/view_updater_benchmark_wbtest.mbt:54 ("viewnode serialization (500 defs)") ok
time (mean ± σ)         range (min … max) 
  15.24 ms ± 705.57 µs    14.49 ms …  16.31 ms  in 10 ×      6 runs
[dowdiness/canopy] bench editor/view_updater_benchmark_wbtest.mbt:65 ("compute_view_patches (100 defs, single edit)") ok
time (mean ± σ)         range (min … max) 
   1.34 ms ±  42.79 µs     1.28 ms …   1.41 ms  in 10 ×     75 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:98 ("json object - incremental keystroke (20 members)") ok
time (mean ± σ)         range (min … max) 
   1.02 ms ±  49.41 µs   964.27 µs …   1.11 ms  in 10 ×     86 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:103 ("json object - incremental keystroke (100 members)") ok
time (mean ± σ)         range (min … max) 
   4.04 ms ±  56.07 µs     3.97 ms …   4.13 ms  in 10 ×     24 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:108 ("json object - incremental keystroke (500 members)") ok
time (mean ± σ)         range (min … max) 
  26.36 ms ± 296.94 µs    25.89 ms …  26.77 ms  in 10 ×      4 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:113 ("json object - incremental keystroke (1000 members)") ok
time (mean ± σ)         range (min … max) 
  60.78 ms ± 647.00 µs    60.04 ms …  62.04 ms  in 10 ×      2 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:118 ("json array - incremental keystroke (20 elements)") ok
time (mean ± σ)         range (min … max) 
 784.04 µs ± 148.90 µs   573.81 µs … 992.08 µs  in 10 ×    201 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:123 ("json array - incremental keystroke (100 elements)") ok
time (mean ± σ)         range (min … max) 
   1.94 ms ±  55.97 µs     1.88 ms …   2.07 ms  in 10 ×     52 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:128 ("json array - incremental keystroke (500 elements)") ok
time (mean ± σ)         range (min … max) 
  13.43 ms ± 607.50 µs    12.96 ms …  14.72 ms  in 10 ×      8 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:133 ("json array - incremental keystroke (1000 elements)") ok
time (mean ± σ)         range (min … max) 
  34.72 ms ±   4.62 ms    32.05 ms …  47.02 ms  in 10 ×      3 runs
[dowdiness/canopy] bench lang/json/companion/dispatch_benchmark.mbt:95 ("text intent dispatch - direct call (100 members)") ok
time (mean ± σ)         range (min … max) 
   3.83 ms ±  54.69 µs     3.77 ms …   3.92 ms  in 10 ×     27 runs
[dowdiness/canopy] bench lang/json/companion/dispatch_benchmark.mbt:100 ("text intent dispatch - caps field (100 members)") ok
time (mean ± σ)         range (min … max) 
   3.84 ms ±  52.03 µs     3.76 ms …   3.90 ms  in 10 ×     27 runs
[dowdiness/canopy] bench lang/json/companion/dispatch_benchmark.mbt:105 ("text intent dispatch - caps optional field (100 members)") ok
time (mean ± σ)         range (min … max) 
   3.85 ms ±  72.00 µs     3.76 ms …   3.99 ms  in 10 ×     27 runs
[dowdiness/canopy] bench lang/json/companion/dispatch_benchmark.mbt:110 ("text intent dispatch - direct call (1000 members)") ok
time (mean ± σ)         range (min … max) 
  49.93 ms ±   1.80 ms    48.55 ms …  54.77 ms  in 10 ×      3 runs
[dowdiness/canopy] bench lang/json/companion/dispatch_benchmark.mbt:115 ("text intent dispatch - caps field (1000 members)") ok
time (mean ± σ)         range (min … max) 
  50.21 ms ± 627.07 µs    49.35 ms …  51.05 ms  in 10 ×      3 runs
[dowdiness/canopy] bench lang/json/companion/dispatch_benchmark.mbt:120 ("text intent dispatch - caps optional field (1000 members)") ok
time (mean ± σ)         range (min … max) 
  51.11 ms ±   2.93 ms    49.29 ms …  59.12 ms  in 10 ×      2 runs
[dowdiness/canopy] bench lang/json/companion/dispatch_benchmark.mbt:143 ("isolated dispatch - direct call x1000") ok
time (mean ± σ)         range (min … max) 
 676.95 ns ±   6.45 ns   670.37 ns … 693.14 ns  in 10 × 100000 runs
[dowdiness/canopy] bench lang/json/companion/dispatch_benchmark.mbt:154 ("isolated dispatch - caps field x1000") ok
time (mean ± σ)         range (min … max) 
 678.46 ns ±   7.57 ns   668.59 ns … 690.06 ns  in 10 × 100000 runs
[dowdiness/canopy] bench lang/json/companion/dispatch_benchmark.mbt:169 ("isolated dispatch - caps optional field x1000") ok
time (mean ± σ)         range (min … max) 
 671.23 ns ±   5.89 ns   664.82 ns … 680.10 ns  in 10 × 100000 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:38 ("tree refresh unchanged (20 defs)") ok
time (mean ± σ)         range (min … max) 
   5.88 µs ±  13.34 ns     5.86 µs …   5.90 µs  in 10 ×  16593 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:48 ("tree refresh unchanged (80 defs)") ok
time (mean ± σ)         range (min … max) 
  22.90 µs ±  53.49 ns    22.83 µs …  23.00 µs  in 10 ×   4057 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:58 ("tree refresh unchanged (320 defs)") ok
time (mean ± σ)         range (min … max) 
 111.54 µs ±   2.51 µs   110.18 µs … 118.12 µs  in 10 ×    896 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:68 ("tree refresh unchanged (1000 defs)") ok
time (mean ± σ)         range (min … max) 
 436.48 µs ±   4.82 µs   429.38 µs … 443.42 µs  in 10 ×    229 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:80 ("tree refresh 1 changed (20 defs)") ok
time (mean ± σ)         range (min … max) 
  11.14 µs ±  76.95 ns    11.01 µs …  11.22 µs  in 10 ×   8965 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:95 ("tree refresh 1 changed (320 defs)") ok
time (mean ± σ)         range (min … max) 
 211.78 µs ±   2.30 µs   209.35 µs … 216.11 µs  in 10 ×    479 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:110 ("tree refresh 1 changed (1000 defs)") ok
time (mean ± σ)         range (min … max) 
 782.15 µs ±   3.92 µs   776.57 µs … 789.10 µs  in 10 ×    127 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:125 ("tree refresh 1 changed (80 defs)") ok
time (mean ± σ)         range (min … max) 
  45.94 µs ± 359.20 ns    45.56 µs …  46.54 µs  in 10 ×   2187 runs
[dowdiness/canopy] bench projection/reconcile_lcs_benchmark_wbtest.mbt:61 ("reconcile wide-siblings (20 defs)") ok
time (mean ± σ)         range (min … max) 
  17.45 µs ±  49.67 ns    17.36 µs …  17.53 µs  in 10 ×   5768 runs
[dowdiness/canopy] bench projection/reconcile_lcs_benchmark_wbtest.mbt:66 ("reconcile wide-siblings (80 defs)") ok
time (mean ± σ)         range (min … max) 
 130.34 µs ± 367.16 ns   129.90 µs … 130.91 µs  in 10 ×    768 runs
[dowdiness/canopy] bench projection/reconcile_lcs_benchmark_wbtest.mbt:71 ("reconcile wide-siblings (320 defs)") ok
time (mean ± σ)         range (min … max) 
   1.48 ms ±   5.00 µs     1.48 ms …   1.49 ms  in 10 ×     68 runs
[dowdiness/canopy] bench projection/reconcile_lcs_benchmark_wbtest.mbt:76 ("reconcile wide-siblings (1000 defs)") ok
time (mean ± σ)         range (min … max) 
  13.82 ms ±  61.29 µs    13.76 ms …  13.95 ms  in 10 ×      8 runs
Total tests: 33, passed: 33, failed: 0. [js]
Warning: no test entry found.
Total tests: 0, passed: 0, failed: 0. [native]

event-graph-walker Benchmarks

Base branch:

(base branch benchmark failed — may not compile)

PR branch:

Registry index updated successfully
Symbols updated successfully
[dowdiness/alga] bench benchmark.mbt:47 ("bench/from_edges/100") ok
time (mean ± σ)         range (min … max) 
  14.26 µs ± 420.71 ns    13.88 µs …  15.12 µs  in 10 ×   5815 runs
[dowdiness/alga] bench benchmark.mbt:56 ("bench/from_edges/1000") ok
time (mean ± σ)         range (min … max) 
 196.51 µs ±   2.27 µs   194.49 µs … 201.04 µs  in 10 ×    505 runs
[dowdiness/alga] bench benchmark.mbt:65 ("bench/from_edges/10000") ok
time (mean ± σ)         range (min … max) 
   5.36 ms ± 190.27 µs     5.05 ms …   5.61 ms  in 10 ×     20 runs
[dowdiness/alga] bench benchmark.mbt:76 ("bench/toposort/chain_100") ok
time (mean ± σ)         range (min … max) 
  16.75 µs ±  87.86 ns    16.65 µs …  16.92 µs  in 10 ×   5912 runs
[dowdiness/alga] bench benchmark.mbt:82 ("bench/toposort/chain_1000") ok
time (mean ± σ)         range (min … max) 
 192.38 µs ± 957.97 ns   191.00 µs … 194.53 µs  in 10 ×    510 runs
[dowdiness/alga] bench benchmark.mbt:88 ("bench/toposort/chain_10000") ok
time (mean ± σ)         range (min … max) 
   3.95 ms ±  48.47 µs     3.89 ms …   4.02 ms  in 10 ×     26 runs
[dowdiness/alga] bench benchmark.mbt:94 ("bench/toposort/diamond_100") ok
time (mean ± σ)         range (min … max) 
  25.05 µs ±  93.10 ns    24.92 µs …  25.16 µs  in 10 ×   4022 runs
[dowdiness/alga] bench benchmark.mbt:100 ("bench/toposort/diamond_1000") ok
time (mean ± σ)         range (min … max) 
 328.09 µs ±   1.84 µs   325.75 µs … 330.75 µs  in 10 ×    308 runs
[dowdiness/alga] bench benchmark.mbt:108 ("bench/topo_levels/chain_1000") ok
time (mean ± σ)         range (min … max) 
 258.23 µs ±   1.48 µs   255.69 µs … 260.44 µs  in 10 ×    387 runs
[dowdiness/alga] bench benchmark.mbt:114 ("bench/topo_levels/diamond_1000") ok
time (mean ± σ)         range (min … max) 
 460.18 µs ±   2.18 µs   457.09 µs … 463.08 µs  in 10 ×    219 runs
[dowdiness/alga] bench benchmark.mbt:122 ("bench/toposort_subset/chain_1000_full") ok
time (mean ± σ)         range (min … max) 
 212.69 µs ±   1.72 µs   210.49 µs … 215.08 µs  in 10 ×    471 runs
[dowdiness/alga] bench benchmark.mbt:129 ("bench/toposort_subset/chain_1000_half") ok
time (mean ± σ)         range (min … max) 
  67.71 µs ± 576.74 ns    67.12 µs …  69.01 µs  in 10 ×   1481 runs
[dowdiness/alga] bench benchmark.mbt:136 ("bench/toposort_subset/diamond_1000_full") ok
time (mean ± σ)         range (min … max) 
 437.62 µs ±   3.54 µs   433.66 µs … 444.15 µs  in 10 ×    228 runs
[dowdiness/alga] bench benchmark.mbt:145 ("bench/reachable/chain_100") ok
time (mean ± σ)         range (min … max) 
   6.66 µs ±  19.00 ns     6.64 µs …   6.69 µs  in 10 ×  14856 runs
[dowdiness/alga] bench benchmark.mbt:151 ("bench/reachable/chain_1000") ok
time (mean ± σ)         range (min … max) 
  93.64 µs ±   1.05 µs    91.62 µs …  94.70 µs  in 10 ×   1071 runs
[dowdiness/alga] bench benchmark.mbt:157 ("bench/reachable/chain_10000") ok
time (mean ± σ)         range (min … max) 
   1.66 ms ±  29.12 µs     1.64 ms …   1.71 ms  in 10 ×     60 runs
[dowdiness/alga] bench benchmark.mbt:163 ("bench/reachable/diamond_100") ok
time (mean ± σ)         range (min … max) 
   3.83 µs ±  10.97 ns     3.82 µs …   3.85 µs  in 10 ×  26035 runs
[dowdiness/alga] bench benchmark.mbt:169 ("bench/reachable/diamond_1000") ok
time (mean ± σ)         range (min … max) 
  46.33 µs ± 185.52 ns    46.03 µs …  46.58 µs  in 10 ×   2172 runs
[dowdiness/alga] bench benchmark.mbt:177 ("bench/bfs/chain_1000") ok
time (mean ± σ)         range (min … max) 
  87.76 µs ± 752.62 ns    87.05 µs …  89.05 µs  in 10 ×   1150 runs
[dowdiness/alga] bench benchmark.mbt:183 ("bench/bfs/diamond_1000") ok
time (mean ± σ)         range (min … max) 
  46.46 µs ± 187.51 ns    46.24 µs …  46.91 µs  in 10 ×   2154 runs
[dowdiness/alga] bench benchmark.mbt:191 ("bench/bfs_multi/chain_1000") ok
time (mean ± σ)         range (min … max) 
  87.81 µs ±   1.38 µs    85.56 µs …  89.63 µs  in 10 ×   1156 runs
[dowdiness/alga] bench benchmark.mbt:201 ("bench/dfs_multi/chain_1000") ok
time (mean ± σ)         range (min … max) 
  86.59 µs ±   1.03 µs    84.94 µs …  87.65 µs  in 10 ×   1170 runs
[dowdiness/alga] bench benchmark.mbt:211 ("bench/has_cycle/acyclic_1000") ok
time (mean ± σ)         range (min … max) 
 189.77 µs ± 698.56 ns   189.07 µs … 190.72 µs  in 10 ×    527 runs
[dowdiness/alga] bench benchmark.mbt:217 ("bench/has_cycle/cyclic_1000") ok
time (mean ± σ)         range (min … max) 
 134.72 µs ± 358.20 ns   134.15 µs … 135.34 µs  in 10 ×    736 runs
[dowdiness/alga] bench benchmark.mbt:225 ("bench/scc/acyclic_100") ok
time (mean ± σ)         range (min … max) 
  18.52 µs ±  79.25 ns    18.45 µs …  18.66 µs  in 10 ×   5397 runs
[dowdiness/alga] bench benchmark.mbt:231 ("bench/scc/acyclic_1000") ok
time (mean ± σ)         range (min … max) 
 301.92 µs ±   1.27 µs   300.28 µs … 303.98 µs  in 10 ×    334 runs
[dowdiness/alga] bench benchmark.mbt:237 ("bench/scc/cyclic_100") ok
time (mean ± σ)         range (min … max) 
  17.72 µs ±  44.13 ns    17.65 µs …  17.78 µs  in 10 ×   5629 runs
[dowdiness/alga] bench benchmark.mbt:243 ("bench/scc/cyclic_1000") ok
time (mean ± σ)         range (min … max) 
 305.05 µs ±   2.53 µs   302.25 µs … 309.63 µs  in 10 ×    324 runs
[dowdiness/alga] bench benchmark.mbt:251 ("bench/dfs_events/chain_1000") ok
time (mean ± σ)         range (min … max) 
 194.68 µs ±   1.27 µs   192.53 µs … 196.51 µs  in 10 ×    511 runs
[dowdiness/alga] bench benchmark.mbt:257 ("bench/dfs_events/diamond_1000") ok
time (mean ± σ)         range (min … max) 
 308.68 µs ±   2.16 µs   306.48 µs … 312.37 µs  in 10 ×    326 runs
[dowdiness/alga] bench benchmark.mbt:263 ("bench/dfs_events/cyclic_1000") ok
time (mean ± σ)         range (min … max) 
 209.26 µs ± 949.47 ns   208.13 µs … 210.65 µs  in 10 ×    482 runs
[dowdiness/alga] bench benchmark.mbt:271 ("bench/foldg/path_100") ok
time (mean ± σ)         range (min … max) 
  40.52 µs ± 281.09 ns    40.20 µs …  40.96 µs  in 10 ×   2444 runs
[dowdiness/alga] bench benchmark.mbt:277 ("bench/foldg/path_1000") ok
time (mean ± σ)         range (min … max) 
   1.43 ms ±  67.33 µs     1.38 ms …   1.55 ms  in 10 ×     71 runs
[dowdiness/alga] bench benchmark.mbt:285 ("bench/outdegree/chain_1000") ok
time (mean ± σ)         range (min … max) 
  38.09 ns ±   0.38 ns    37.78 ns …  38.86 ns  in 10 × 100000 runs
[dowdiness/alga] bench benchmark.mbt:291 ("bench/outdegree/diamond_1000") ok
time (mean ± σ)         range (min … max) 
  54.51 ns ±   0.35 ns    54.03 ns …  55.05 ns  in 10 × 100000 runs
[dowdiness/alga] bench benchmark.mbt:299 ("bench/indegree/chain_1000") ok
time (mean ± σ)         range (min … max) 
  58.01 µs ± 151.26 ns    57.87 µs …  58.26 µs  in 10 ×   1728 runs
[dowdiness/alga] bench benchmark.mbt:305 ("bench/indegree/diamond_1000") ok
time (mean ± σ)         range (min … max) 
  80.03 µs ± 887.09 ns    79.35 µs …  82.10 µs  in 10 ×   1262 runs
[dowdiness/alga] bench benchmark.mbt:313 ("bench/transpose/1000") ok
time (mean ± σ)         range (min … max) 
  14.70 ns ±   0.35 ns    14.29 ns …  15.19 ns  in 10 × 100000 runs
[dowdiness/alga] bench benchmark.mbt:363 ("bench/has_vertex/AdjacencyMap_1000") ok
time (mean ± σ)         range (min … max) 
  16.88 ns ±   0.36 ns    16.60 ns …  17.44 ns  in 10 × 100000 runs
[dowdiness/alga] bench benchmark.mbt:369 ("bench/has_vertex/DenseGraph_1000") ok
time (mean ± σ)         range (min … max) 
  13.37 ns ±   0.36 ns    13.07 ns …  13.95 ns  in 10 × 100000 runs
[dowdiness/alga] bench benchmark.mbt:376 ("bench/has_vertex/default_1000") ok
time (mean ± σ)         range (min … max) 
   3.16 µs ±   4.53 ns     3.15 µs …   3.17 µs  in 10 ×  31697 runs
[dowdiness/alga] bench benchmark.mbt:384 ("bench/vertex_count/default_1000") ok
time (mean ± σ)         range (min … max) 
   6.91 µs ±  21.26 ns     6.89 µs …   6.94 µs  in 10 ×  14491 runs
[dowdiness/alga] bench benchmark.mbt:392 ("bench/condensation/acyclic_1000") ok
time (mean ± σ)         range (min … max) 
 660.52 µs ±   6.94 µs   654.25 µs … 672.84 µs  in 10 ×    152 runs
[dowdiness/alga] bench benchmark.mbt:398 ("bench/condensation/cyclic_1000") ok
time (mean ± σ)         range (min … max) 
 393.29 µs ±   1.98 µs   390.59 µs … 396.90 µs  in 10 ×    256 runs
[dowdiness/alga] bench benchmark.mbt:408 ("bench/reachable/DenseGraph/chain_1000") ok
time (mean ± σ)         range (min … max) 
   8.86 µs ±  42.13 ns     8.81 µs …   8.92 µs  in 10 ×  11124 runs
[dowdiness/alga] bench benchmark.mbt:415 ("bench/reachable/DenseGraph/chain_10000") ok
time (mean ± σ)         range (min … max) 
 110.29 µs ± 675.66 ns   109.58 µs … 111.60 µs  in 10 ×    907 runs
[dowdiness/alga] bench benchmark.mbt:422 ("bench/reachable/DenseGraph/diamond_1000") ok
time (mean ± σ)         range (min … max) 
   6.16 µs ±  20.08 ns     6.13 µs …   6.18 µs  in 10 ×  16134 runs
[dowdiness/alga] bench benchmark.mbt:429 ("bench/reachable/DenseGraph_gen/chain_1000") ok
time (mean ± σ)         range (min … max) 
   8.22 µs ±  19.52 ns     8.19 µs …   8.24 µs  in 10 ×  12153 runs
[dowdiness/alga] bench benchmark.mbt:447 ("bench/reachable/DenseGraph_gen/chain_10000") ok
time (mean ± σ)         range (min … max) 
 103.43 µs ± 628.04 ns   102.75 µs … 104.52 µs  in 10 ×    973 runs
[dowdiness/alga] bench benchmark.mbt:465 ("bench/reachable/DenseGraph_gen/diamond_1000") ok
time (mean ± σ)         range (min … max) 
   5.82 µs ±  11.59 ns     5.81 µs …   5.84 µs  in 10 ×  17134 runs
[dowdiness/btree] bench btree_benchmark.mbt:79 ("bench: build via inserts (100)") ok
time (mean ± σ)         range (min … max) 
  59.33 µs ±   1.08 µs    57.91 µs …  61.21 µs  in 10 ×   1647 runs
[dowdiness/btree] bench btree_benchmark.mbt:84 ("bench: build via from_sorted (100)") ok
time (mean ± σ)         range (min … max) 
   3.14 µs ±  12.97 ns     3.12 µs …   3.15 µs  in 10 ×  35163 runs
[dowdiness/btree] bench btree_benchmark.mbt:91 ("bench: build via inserts (1000)") ok
time (mean ± σ)         range (min … max) 
 942.65 µs ±   8.51 µs   931.64 µs … 955.82 µs  in 10 ×     97 runs
[dowdiness/btree] bench btree_benchmark.mbt:96 ("bench: build via from_sorted (1000)") ok
time (mean ± σ)         range (min … max) 
  27.75 µs ± 308.73 ns    27.44 µs …  28.28 µs  in 10 ×   3641 runs
[dowdiness/btree] bench btree_benchmark.mbt:103 ("bench: build via inserts (10000)") ok
time (mean ± σ)         range (min … max) 
  14.48 ms ± 129.13 µs    14.26 ms …  14.70 ms  in 10 ×      7 runs
[dowdiness/btree] bench btree_benchmark.mbt:108 ("bench: build via from_sorted (10000)") ok
time (mean ± σ)         range (min … max) 
 514.34 µs ±   8.22 µs   505.69 µs … 527.87 µs  in 10 ×    196 runs
[dowdiness/btree] bench btree_benchmark.mbt:115 ("bench: delete_range middle 10% (1000)") ok
time (mean ± σ)         range (min … max) 
  53.85 µs ± 506.13 ns    53.37 µs …  54.95 µs  in 10 ×   1832 runs
[dowdiness/btree] bench btree_benchmark.mbt:124 ("bench: delete_range middle 50% (1000)") ok
time (mean ± σ)         range (min … max) 
  49.33 µs ± 217.54 ns    49.07 µs …  49.67 µs  in 10 ×   2031 runs
[dowdiness/btree] bench btree_benchmark.mbt:133 ("bench: delete_range middle 10% (10000)") ok
time (mean ± σ)         range (min … max) 
 673.66 µs ±   6.74 µs   667.44 µs … 686.03 µs  in 10 ×    148 runs
[dowdiness/btree] bench btree_benchmark.mbt:142 ("bench: delete_range middle 50% (10000)") ok
time (mean ± σ)         range (min … max) 
 684.75 µs ±  11.51 µs   669.53 µs … 702.29 µs  in 10 ×    145 runs
[dowdiness/egraph] bench egraph_benchmark_wbtest.mbt:60 ("rebuild: stable e-graph (100 classes)") ok
time (mean ± σ)         range (min … max) 
  22.68 µs ± 222.54 ns    22.45 µs …  23.20 µs  in 10 ×   4309 runs
[dowdiness/egraph] bench egraph_benchmark_wbtest.mbt:86 ("rebuild: stable e-graph (1000 classes)") ok
time (mean ± σ)         range (min … max) 
 333.25 µs ±   6.03 µs   329.30 µs … 349.80 µs  in 10 ×    297 runs
[dowdiness/egraph] bench egraph_benchmark_wbtest.mbt:114 ("rebuild: setup + one union + rebuild") ok
time (mean ± σ)         range (min … max) 
 141.57 µs ±   1.26 µs   140.27 µs … 143.82 µs  in 10 ×    703 runs
[dowdiness/egraph] bench egraph_benchmark_wbtest.mbt:143 ("isolate: map alloc + populate + copy-back at 1000 entries") ok
time (mean ± σ)         range (min … max) 
  86.29 µs ± 855.10 ns    84.99 µs …  87.21 µs  in 10 ×   1167 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:21 ("merge - concurrent edits (2 agents x 10)") ok
time (mean ± σ)         range (min … max) 
  20.98 µs ± 628.95 ns    20.34 µs …  22.41 µs  in 10 ×   4391 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:59 ("merge - concurrent edits (2 agents x 50)") ok
time (mean ± σ)         range (min … max) 
 109.42 µs ± 435.49 ns   108.83 µs … 110.23 µs  in 10 ×    911 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:97 ("merge - concurrent edits (2 agents x 200)") ok
time (mean ± σ)         range (min … max) 
 478.41 µs ±   4.62 µs   474.23 µs … 485.74 µs  in 10 ×    211 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:135 ("merge - many agents (5 agents x 20)") ok
time (mean ± σ)         range (min … max) 
 139.78 µs ± 568.71 ns   139.03 µs … 140.65 µs  in 10 ×    717 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:184 ("merge - with deletes (50 inserts, 25 deletes)") ok
time (mean ± σ)         range (min … max) 
 101.56 µs ± 258.63 ns   101.05 µs … 101.87 µs  in 10 ×    984 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:230 ("merge - graph_diff advance (20 ops)") ok
time (mean ± σ)         range (min … max) 
  70.27 µs ± 549.17 ns    69.45 µs …  71.01 µs  in 10 ×   1412 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:303 ("merge - repeated small (10 iterations x 5 ops)") ok
time (mean ± σ)         range (min … max) 
 106.95 µs ± 410.17 ns   106.60 µs … 107.89 µs  in 10 ×    942 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:341 ("merge - retreat concurrent deletes (500 items, 50 deletes)") ok
time (mean ± σ)         range (min … max) 
 214.59 µs ±   1.33 µs   213.20 µs … 216.61 µs  in 10 ×    463 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:408 ("merge - context apply operations (50 ops)") ok
time (mean ± σ)         range (min … max) 
  45.41 µs ±  25.75 µs    27.31 µs … 104.95 µs  in 10 ×   2208 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:6 ("branch - checkout (10 ops)") ok
time (mean ± σ)         range (min … max) 
   4.09 µs ±  55.35 ns     3.99 µs …   4.17 µs  in 10 ×  24463 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:29 ("branch - checkout (100 ops)") ok
time (mean ± σ)         range (min … max) 
  29.95 µs ± 103.60 ns    29.80 µs …  30.08 µs  in 10 ×   3339 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:47 ("branch - checkout (1000 ops)") ok
time (mean ± σ)         range (min … max) 
 435.33 µs ±   2.86 µs   431.54 µs … 440.05 µs  in 10 ×    228 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:65 ("branch - advance (10 new ops)") ok
time (mean ± σ)         range (min … max) 
  11.34 µs ±   4.18 µs     9.47 µs …  23.18 µs  in 10 ×   9395 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:91 ("branch - advance (100 new ops)") ok
time (mean ± σ)         range (min … max) 
  75.46 µs ±  32.60 µs    58.55 µs … 157.71 µs  in 10 ×   1560 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:117 ("branch - checkout with concurrent branches") ok
time (mean ± σ)         range (min … max) 
 319.85 µs ± 186.09 µs   127.75 µs … 614.24 µs  in 10 ×     61 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:145 ("branch - checkout with deletes") ok
time (mean ± σ)         range (min … max) 
  37.93 µs ±   1.03 µs    37.26 µs …  40.80 µs  in 10 ×   2687 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:176 ("branch - repeated advance steady-state (10 iterations)") ok
time (mean ± σ)         range (min … max) 
  29.90 µs ±   1.94 µs    28.45 µs …  34.77 µs  in 10 ×   3402 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:220 ("branch - repeated advance with oplog mutations (10 iterations)") ok
time (mean ± σ)         range (min … max) 
   7.11 ms ±   3.48 ms     2.72 ms …  12.71 ms  in 10 ×     65 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:246 ("branch - to_text (100 chars)") ok
time (mean ± σ)         range (min … max) 
  10.97 µs ± 206.22 ns    10.83 µs …  11.51 µs  in 10 ×   9114 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:264 ("branch - to_text (1000 chars)") ok
time (mean ± σ)         range (min … max) 
 112.26 µs ± 999.14 ns   110.97 µs … 114.09 µs  in 10 ×    888 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:285 ("branch - single advance (1 new op)") ok
time (mean ± σ)         range (min … max) 
   4.18 µs ± 316.25 ns     3.99 µs …   4.96 µs  in 10 ×  24680 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:311 ("branch - single advance (50 new ops)") ok
time (mean ± σ)         range (min … max) 
  53.28 µs ±  28.47 µs    31.55 µs … 112.23 µs  in 10 ×   2112 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:342 ("branch - realistic typing (50 chars)") ok
time (mean ± σ)         range (min … max) 
  16.44 ms ±   8.01 ms     6.64 ms …  32.88 ms  in 10 ×     29 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:375 ("branch - concurrent merge scenario") ok
time (mean ± σ)         range (min … max) 
  14.20 µs ±   3.65 µs    12.56 µs …  24.48 µs  in 10 ×   7196 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:6 ("walker - linear history (10 ops)") ok
time (mean ± σ)         range (min … max) 
 699.38 ns ±   8.25 ns   689.18 ns … 710.09 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:22 ("walker - linear history (100 ops)") ok
time (mean ± σ)         range (min … max) 
   4.99 µs ±   5.42 ns     4.98 µs …   4.99 µs  in 10 ×  20090 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:38 ("walker - linear history (1000 ops)") ok
time (mean ± σ)         range (min … max) 
  43.72 µs ± 367.16 ns    43.45 µs …  44.75 µs  in 10 ×   2291 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:54 ("walker - concurrent branches (2 agents x 50)") ok
time (mean ± σ)         range (min … max) 
   6.22 µs ±   6.93 ns     6.20 µs …   6.23 µs  in 10 ×  16057 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:79 ("walker - concurrent branches (5 agents x 20)") ok
time (mean ± σ)         range (min … max) 
   6.25 µs ±  19.27 ns     6.22 µs …   6.27 µs  in 10 ×  15914 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:99 ("walker - diamond pattern (50 diamonds)") ok
time (mean ± σ)         range (min … max) 
   8.29 µs ±  14.13 ns     8.27 µs …   8.31 µs  in 10 ×  12031 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:121 ("walker - diff advance only (10 new ops)") ok
time (mean ± σ)         range (min … max) 
   3.59 µs ±   4.96 ns     3.58 µs …   3.60 µs  in 10 ×  27740 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:145 ("walker - diff with concurrent branches") ok
time (mean ± σ)         range (min … max) 
   5.75 µs ±  39.44 ns     5.72 µs …   5.85 µs  in 10 ×  17427 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:176 ("walker - large history (10000 ops)") ok
time (mean ± σ)         range (min … max) 
 454.15 µs ±   1.76 µs   452.21 µs … 456.98 µs  in 10 ×    220 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:196 ("walker - linear history (100000 ops)") ok
time (mean ± σ)         range (min … max) 
   6.77 ms ±  58.09 µs     6.70 ms …   6.88 ms  in 10 ×     15 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:213 ("walker - concurrent branches (100000 ops, 5 agents)") ok
time (mean ± σ)         range (min … max) 
  23.38 ms ±   2.96 ms    20.70 ms …  27.99 ms  in 10 ×      5 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:6 ("version_vector - create (1 agent)") ok
time (mean ± σ)         range (min … max) 
  50.15 ns ±   0.91 ns    49.06 ns …  51.91 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:15 ("version_vector - create (5 agents)") ok
time (mean ± σ)         range (min … max) 
 138.82 ns ±   0.45 ns   138.30 ns … 139.76 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:29 ("version_vector - create (20 agents)") ok
time (mean ± σ)         range (min … max) 
   1.05 µs ±   2.02 ns     1.05 µs …   1.05 µs  in 10 ×  95579 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:42 ("version_vector - compare equal (5 agents)") ok
time (mean ± σ)         range (min … max) 
 171.10 ns ±   0.37 ns   170.79 ns … 171.93 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:63 ("version_vector - compare <= (5 agents)") ok
time (mean ± σ)         range (min … max) 
 118.91 ns ±   0.63 ns   118.23 ns … 119.75 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:84 ("version_vector - compare <= (20 agents)") ok
time (mean ± σ)         range (min … max) 
 468.17 ns ±   0.86 ns   467.39 ns … 470.24 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:100 ("version_vector - merge (5 agents)") ok
time (mean ± σ)         range (min … max) 
 200.82 ns ±   0.33 ns   200.35 ns … 201.23 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:118 ("version_vector - merge (20 agents)") ok
time (mean ± σ)         range (min … max) 
   1.28 µs ±   2.83 ns     1.28 µs …   1.29 µs  in 10 ×  77731 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:134 ("version_vector - includes (5 agents)") ok
time (mean ± σ)         range (min … max) 
 143.29 ns ±   0.67 ns   142.37 ns … 144.35 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:153 ("version_vector - concurrent (5 agents)") ok
time (mean ± σ)         range (min … max) 
 120.82 ns ±   0.50 ns   120.15 ns … 121.54 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:170 ("version_vector - from_frontier (10 ops)") ok
time (mean ± σ)         range (min … max) 
 606.03 ns ±   3.57 ns   604.26 ns … 616.11 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:186 ("version_vector - from_frontier (100 ops, 5 agents)") ok
time (mean ± σ)         range (min … max) 
   4.79 µs ±   2.66 ns     4.79 µs …   4.80 µs  in 10 ×  20841 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:206 ("version_vector - to_frontier (5 agents)") ok
time (mean ± σ)         range (min … max) 
 198.46 ns ±   0.45 ns   197.89 ns … 199.24 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:230 ("version_vector - roundtrip (5 agents)") ok
time (mean ± σ)         range (min … max) 
   4.96 µs ±   3.85 ns     4.95 µs …   4.97 µs  in 10 ×  20174 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:251 ("version_vector - agents (5 agents)") ok
time (mean ± σ)         range (min … max) 
  67.09 ns ±   0.55 ns    66.40 ns …  67.93 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:266 ("version_vector - length (20 agents)") ok
time (mean ± σ)         range (min … max) 
  12.56 ns ±   0.37 ns    12.21 ns …  13.10 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/document/document_benchmark.mbt:20 ("bench: cache invalidate + position query (1000 chars)") ok
time (mean ± σ)         range (min … max) 
 183.62 µs ±   1.28 µs   181.93 µs … 185.94 µs  in 10 ×    498 runs
[dowdiness/event-graph-walker] bench internal/document/document_benchmark.mbt:31 ("bench: cache invalidate + position query (5000 chars)") ok
time (mean ± σ)         range (min … max) 
   2.84 ms ±  45.71 µs     2.79 ms …   2.91 ms  in 10 ×     35 runs
[dowdiness/event-graph-walker] bench internal/document/document_benchmark.mbt:41 ("bench: cache invalidate + position query (10000 chars)") ok
time (mean ± σ)         range (min … max) 
   9.27 ms ± 243.96 µs     8.94 ms …   9.64 ms  in 10 ×     11 runs
[dowdiness/event-graph-walker] bench internal/document/document_benchmark.mbt:57 ("bench: 10 remote inserts + queries (1000-char doc)") ok
time (mean ± σ)         range (min … max) 
   3.49 ms ±  39.02 µs     3.44 ms …   3.57 ms  in 10 ×     27 runs
[dowdiness/event-graph-walker] bench internal/document/document_benchmark.mbt:84 ("bench: 10 remote inserts + queries (5000-char doc)") ok
time (mean ± σ)         range (min … max) 
  30.95 ms ± 651.23 µs    30.13 ms …  31.96 ms  in 10 ×      4 runs
[dowdiness/event-graph-walker] bench internal/document/document_benchmark.mbt:113 ("bench: warm cache position query (1000 chars)") ok
time (mean ± σ)         range (min … max) 
 100.48 ns ±   0.25 ns   100.20 ns … 101.00 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/document/document_benchmark.mbt:120 ("bench: warm cache position query (10000 chars)") ok
time (mean ± σ)         range (min … max) 
 100.07 ns ±   0.24 ns    99.74 ns … 100.46 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/fugue/tree_position_benchmark.mbt:20 ("bench: lv_to_position middle of 10K tree") ok
time (mean ± σ)         range (min … max) 
 532.48 µs ±   2.64 µs   526.30 µs … 535.85 µs  in 10 ×    189 runs
[dowdiness/event-graph-walker] bench internal/fugue/jump_ancestors_benchmark.mbt:2 ("jump - sequential append 1K") ok
time (mean ± σ)         range (min … max) 
 159.24 µs ± 688.09 ns   158.40 µs … 160.48 µs  in 10 ×    620 runs
[dowdiness/event-graph-walker] bench internal/fugue/jump_ancestors_benchmark.mbt:26 ("jump - concurrent insert into 1K doc") ok
time (mean ± σ)         range (min … max) 
 156.37 µs ± 529.25 ns   155.07 µs … 156.93 µs  in 10 ×    637 runs
[dowdiness/event-graph-walker] bench internal/fugue/jump_ancestors_benchmark.mbt:58 ("jump - concurrent insert into 10K doc") ok
time (mean ± σ)         range (min … max) 
   4.34 ms ±  80.36 µs     4.23 ms …   4.47 ms  in 10 ×     24 runs
[dowdiness/event-graph-walker] bench internal/fugue/jump_ancestors_benchmark.mbt:90 ("jump - degenerate chain remote insert") ok
time (mean ± σ)         range (min … max) 
 156.06 µs ± 783.76 ns   155.22 µs … 158.02 µs  in 10 ×    640 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:6 ("oplog - insert (100 ops)") ok
time (mean ± σ)         range (min … max) 
  44.73 µs ±   1.12 µs    43.90 µs …  47.53 µs  in 10 ×   2201 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:20 ("oplog - insert (1000 ops)") ok
time (mean ± σ)         range (min … max) 
 520.20 µs ±   1.30 µs   517.67 µs … 522.31 µs  in 10 ×    193 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:34 ("oplog - insert and delete mix (100 ops)") ok
time (mean ± σ)         range (min … max) 
  68.82 µs ± 198.29 ns    68.55 µs …  69.17 µs  in 10 ×   1419 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:58 ("oplog - apply_remote (50 ops)") ok
time (mean ± σ)         range (min … max) 
  30.06 µs ±  94.55 ns    29.93 µs …  30.20 µs  in 10 ×   3327 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:79 ("oplog - get_op (1000 ops)") ok
time (mean ± σ)         range (min … max) 
 185.74 ns ±   0.76 ns   185.07 ns … 187.37 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:97 ("oplog - get_frontier (single agent)") ok
time (mean ± σ)         range (min … max) 
  20.24 ns ±   0.31 ns    19.87 ns …  20.92 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:112 ("oplog - get_frontier (5 agents)") ok
time (mean ± σ)         range (min … max) 
  25.16 ns ±   0.27 ns    24.80 ns …  25.70 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:134 ("oplog - walk_and_collect (100 ops)") ok
time (mean ± σ)         range (min … max) 
  11.73 µs ±  97.08 ns    11.53 µs …  11.85 µs  in 10 ×   8603 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:150 ("oplog - walk_and_collect (concurrent)") ok
time (mean ± σ)         range (min … max) 
  19.49 µs ±  98.54 ns    19.37 µs …  19.63 µs  in 10 ×   5168 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:177 ("oplog - diff_and_collect (advance 20)") ok
time (mean ± σ)         range (min … max) 
   5.76 µs ±   9.90 ns     5.75 µs …   5.78 µs  in 10 ×  17291 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:202 ("oplog - walk_filtered (inserts only)") ok
time (mean ± σ)         range (min … max) 
   8.97 µs ±  56.70 ns     8.92 µs …   9.12 µs  in 10 ×  11411 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:233 ("oplog - sequential typing (500 chars)") ok
time (mean ± σ)         range (min … max) 
 242.54 µs ± 370.11 ns   241.85 µs … 243.16 µs  in 10 ×    413 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:249 ("oplog - random position inserts (100 ops)") ok
time (mean ± σ)         range (min … max) 
  44.38 µs ± 124.08 ns    44.23 µs …  44.56 µs  in 10 ×   2254 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:270 ("oplog - sequential typing (100000 chars)") ok
time (mean ± σ)         range (min … max) 
 161.33 ms ±  27.36 ms   121.14 ms … 187.89 ms  in 10 ×      1 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:287 ("oplog - diff_and_collect (100000 ops advance)") ok
time (mean ± σ)         range (min … max) 
  66.36 ms ±  16.81 ms    46.60 ms …  86.03 ms  in 10 ×      2 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:10 ("text - insert append (100 chars)") ok
time (mean ± σ)         range (min … max) 
  99.91 µs ± 304.05 ns    99.51 µs … 100.54 µs  in 10 ×    908 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:22 ("text - insert append (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   1.33 ms ±  14.24 µs     1.31 ms …   1.35 ms  in 10 ×     75 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:35 ("text - insert prepend (100 chars)") ok
time (mean ± σ)         range (min … max) 
 162.48 µs ±   1.37 µs   161.72 µs … 166.28 µs  in 10 ×    616 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:51 ("text - delete (100 deletes from 100-char doc)") ok
time (mean ± σ)         range (min … max) 
 244.56 µs ±   1.43 µs   243.23 µs … 246.98 µs  in 10 ×    408 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:70 ("text - text() (100-char doc)") ok
time (mean ± σ)         range (min … max) 
  13.54 µs ±  96.21 ns    13.41 µs …  13.67 µs  in 10 ×   7263 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:83 ("text - text() (1000-char doc)") ok
time (mean ± σ)         range (min … max) 
 138.77 µs ± 565.94 ns   138.10 µs … 140.02 µs  in 10 ×    722 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:96 ("text - len() (1000-char doc)") ok
time (mean ± σ)         range (min … max) 
  12.51 ns ±   0.39 ns    12.20 ns …  13.15 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:113 ("text - sync export_all (100 ops)") ok
time (mean ± σ)         range (min … max) 
  98.05 ns ±   0.35 ns    97.43 ns …  98.53 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:126 ("text - sync export_all (1000 ops)") ok
time (mean ± σ)         range (min … max) 
  98.40 ns ±   0.45 ns    97.75 ns …  99.24 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:139 ("text - sync export_since (50-op delta, 1000-op base)") ok
time (mean ± σ)         range (min … max) 
  35.35 µs ± 297.74 ns    34.94 µs …  35.73 µs  in 10 ×   2790 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:156 ("text - sync apply (50 remote ops)") ok
time (mean ± σ)         range (min … max) 
  54.10 µs ± 370.45 ns    53.39 µs …  54.56 µs  in 10 ×   1827 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:171 ("text - sync apply (500 remote ops)") ok
time (mean ± σ)         range (min … max) 
 654.10 µs ±   7.28 µs   646.55 µs … 667.41 µs  in 10 ×    155 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:186 ("text - bidirectional sync (2 peers, 50 ops each)") ok
time (mean ± σ)         range (min … max) 
 113.67 µs ± 639.91 ns   112.87 µs … 114.94 µs  in 10 ×    871 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:216 ("text - checkout (midpoint of 100-op doc)") ok
time (mean ± σ)         range (min … max) 
  15.18 µs ±  92.42 ns    15.03 µs …  15.32 µs  in 10 ×   6558 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:233 ("text - checkout (midpoint of 1000-op doc)") ok
time (mean ± σ)         range (min … max) 
 182.61 µs ± 987.38 ns   181.31 µs … 183.85 µs  in 10 ×    547 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:256 ("text - undo record_insert (100 ops, 1 group)") ok
time (mean ± σ)         range (min … max) 
   2.07 µs ±   5.11 ns     2.06 µs …   2.08 µs  in 10 ×  48199 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:269 ("text - undo record_insert (100 ops, 100 groups)") ok
time (mean ± σ)         range (min … max) 
   2.28 µs ±  16.26 ns     2.26 µs …   2.31 µs  in 10 ×  44246 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:281 ("text - undo undo() (10-op group)") ok
time (mean ± σ)         range (min … max) 
  30.69 µs ± 110.45 ns    30.54 µs …  30.86 µs  in 10 ×   3236 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:295 ("text - undo undo() (50-op group)") ok
time (mean ± σ)         range (min … max) 
 464.53 µs ±   3.25 µs   459.32 µs … 468.37 µs  in 10 ×    216 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:309 ("text - undo undo+redo roundtrip (10-op group)") ok
time (mean ± σ)         range (min … max) 
  34.50 µs ± 237.40 ns    34.25 µs …  34.86 µs  in 10 ×   2913 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:324 ("text - undo 10 undo+redo cycles (10-op group)") ok
time (mean ± σ)         range (min … max) 
 291.00 µs ±   1.96 µs   289.35 µs … 296.06 µs  in 10 ×    343 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:17 ("cache - sequential append (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   1.35 ms ±  14.66 µs     1.33 ms …   1.37 ms  in 10 ×     75 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:34 ("cache - alternating pos (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   3.04 ms ±  21.48 µs     3.02 ms …   3.08 ms  in 10 ×     32 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:52 ("cache - jump to pos 0 every 10 chars (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   1.99 ms ±  11.73 µs     1.98 ms …   2.01 ms  in 10 ×     51 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:71 ("cache - jump to middle every 10 chars (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   2.58 ms ±  17.07 µs     2.55 ms …   2.61 ms  in 10 ×     39 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:94 ("cache - single non-seq insert on 1000-char doc") ok
time (mean ± σ)         range (min … max) 
   7.33 µs ±   2.07 µs     6.02 µs …  11.51 µs  in 10 ×  14935 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:108 ("cache - single non-seq insert on 5000-char doc") ok
time (mean ± σ)         range (min … max) 
   6.64 µs ±   1.06 µs     6.01 µs …   9.60 µs  in 10 ×  17464 runs
[dowdiness/graphviz] bench lib/layout/layout_benchmark.mbt:43 ("bench/layout/full_chain_10") ok
time (mean ± σ)         range (min … max) 
  85.91 µs ±   3.31 µs    83.00 µs …  92.49 µs  in 10 ×    930 runs
[dowdiness/graphviz] bench lib/layout/layout_benchmark.mbt:53 ("bench/layout/full_chain_50") ok
time (mean ± σ)         range (min … max) 
 483.01 µs ±   2.21 µs   480.17 µs … 486.68 µs  in 10 ×    208 runs
[dowdiness/graphviz] bench lib/layout/layout_benchmark.mbt:63 ("bench/layout/full_diamond_50") ok
time (mean ± σ)         range (min … max) 
 449.53 µs ±   2.70 µs   445.36 µs … 453.93 µs  in 10 ×    222 runs
[dowdiness/graphviz] bench lib/layout/layout_benchmark.mbt:73 ("bench/layout/full_cyclic_20") ok
time (mean ± σ)         range (min … max) 
 179.54 µs ±   1.11 µs   178.50 µs … 181.33 µs  in 10 ×    553 runs
[dowdiness/graphviz] bench lib/layout/layout_benchmark.mbt:85 ("bench/layout/layer_assignment_chain_50") ok
time (mean ± σ)         range (min … max) 
  25.75 µs ±  90.21 ns    25.61 µs …  25.93 µs  in 10 ×   3889 runs
[dowdiness/graphviz] bench lib/layout/layout_benchmark.mbt:97 ("bench/layout/layer_assignment_diamond_100") ok
time (mean ± σ)         range (min … max) 
  91.27 µs ± 256.23 ns    90.91 µs …  91.62 µs  in 10 ×   1095 runs
[dowdiness/graphviz] bench lib/layout/layout_benchmark.mbt:111 ("bench/layout/cycle_removal_chain_50") ok
time (mean ± σ)         range (min … max) 
  13.16 µs ±  30.98 ns    13.12 µs …  13.19 µs  in 10 ×   7568 runs
[dowdiness/graphviz] bench lib/layout/layout_benchmark.mbt:122 ("bench/layout/cycle_removal_cyclic_20") ok
time (mean ± σ)         range (min … max) 
   5.12 µs ±  13.77 ns     5.10 µs …   5.14 µs  in 10 ×  19596 runs
[dowdiness/json] bench benchmark_test.mbt:59 ("json: 20-member object - full reparse") ok
time (mean ± σ)         range (min … max) 
  56.04 µs ±   1.31 µs    54.81 µs …  58.95 µs  in 10 ×   1672 runs
[dowdiness/json] bench benchmark_test.mbt:68 ("json: 20-member object - incremental (edit last value)") ok
time (mean ± σ)         range (min … max) 
 181.39 µs ±   1.92 µs   179.63 µs … 185.07 µs  in 10 ×    540 runs
[dowdiness/json] bench benchmark_test.mbt:93 ("json: 50-member object - full reparse") ok
time (mean ± σ)         range (min … max) 
 130.30 µs ± 744.81 ns   129.48 µs … 132.05 µs  in 10 ×    771 runs
[dowdiness/json] bench benchmark_test.mbt:102 ("json: 50-member object - incremental (edit inner object)") ok
time (mean ± σ)         range (min … max) 
 123.87 µs ± 500.39 ns   123.28 µs … 124.73 µs  in 10 ×    804 runs
[dowdiness/json] bench benchmark_test.mbt:127 ("json: 100-member object - full reparse") ok
time (mean ± σ)         range (min … max) 
 258.56 µs ± 706.43 ns   257.58 µs … 259.53 µs  in 10 ×    385 runs
[dowdiness/json] bench benchmark_test.mbt:136 ("json: 100-member object - incremental (edit inner object)") ok
time (mean ± σ)         range (min … max) 
 228.67 µs ± 697.96 ns   227.70 µs … 229.76 µs  in 10 ×    435 runs
[dowdiness/json] bench benchmark_test.mbt:162 ("json: 50-element array - full reparse") ok
time (mean ± σ)         range (min … max) 
 101.75 µs ± 179.40 ns   101.47 µs … 101.97 µs  in 10 ×    983 runs
[dowdiness/json] bench benchmark_test.mbt:171 ("json: 50-element array - incremental (edit nested object)") ok
time (mean ± σ)         range (min … max) 
  96.03 µs ± 229.93 ns    95.63 µs …  96.32 µs  in 10 ×   1044 runs
[dowdiness/lambda] bench benchmarks/zero_copy_benchmark.mbt:37 ("zero-copy: tokenize - integers (baseline)") ok
time (mean ± σ)         range (min … max) 
  11.32 µs ± 147.30 ns    11.22 µs …  11.68 µs  in 10 ×   8549 runs
[dowdiness/lambda] bench benchmarks/zero_copy_benchmark.mbt:46 ("zero-copy: tokenize - short identifiers") ok
time (mean ± σ)         range (min … max) 
  11.93 µs ± 168.60 ns    11.85 µs …  12.41 µs  in 10 ×   8380 runs
[dowdiness/lambda] bench benchmarks/zero_copy_benchmark.mbt:55 ("zero-copy: tokenize - long identifiers") ok
time (mean ± σ)         range (min … max) 
  65.25 µs ± 560.02 ns    64.61 µs …  66.23 µs  in 10 ×   1541 runs
[dowdiness/lambda] bench benchmarks/zero_copy_benchmark.mbt:68 ("zero-copy: full parse - integers (baseline)") ok
time (mean ± σ)         range (min … max) 
  40.80 µs ± 309.48 ns    40.49 µs …  41.49 µs  in 10 ×   2422 runs
[dowdiness/lambda] bench benchmarks/zero_copy_benchmark.mbt:79 ("zero-copy: full parse - short identifiers") ok
time (mean ± σ)         range (min … max) 
  41.49 µs ±  70.49 ns    41.42 µs …  41.62 µs  in 10 ×   2421 runs
[dowdiness/lambda] bench benchmarks/zero_copy_benchmark.mbt:90 ("zero-copy: full parse - long identifiers") ok
time (mean ± σ)         range (min … max) 
  98.36 µs ± 467.67 ns    97.83 µs …  99.02 µs  in 10 ×   1017 runs
[dowdiness/lambda] bench benchmarks/unified_parser_benchmark.mbt:8 ("parser: cold - new + ast()") ok
time (mean ± σ)         range (min … max) 
  22.43 µs ±   2.46 µs    20.04 µs …  26.83 µs  in 10 ×   3115 runs
[dowdiness/lambda] bench benchmarks/unified_parser_benchmark.mbt:20 ("parser: warm - ast() with no source change") ok
time (mean ± σ)         range (min … max) 
  47.96 ns ±   0.32 ns    47.60 ns …  48.73 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/unified_parser_benchmark.mbt:32 ("parser: identity - set_source(same) + ast()") ok
time (mean ± σ)         range (min … max) 
  77.38 ns ±   0.40 ns    76.76 ns …  77.85 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/unified_parser_benchmark.mbt:45 ("parser: full recompute - set_source(new) + ast()") ok
time (mean ± σ)         range (min … max) 
  21.99 µs ± 158.93 ns    21.86 µs …  22.34 µs  in 10 ×   4425 runs
[dowdiness/lambda] bench benchmarks/unified_parser_benchmark.mbt:62 ("parser: undo/redo cycle (set_source)") ok
time (mean ± σ)         range (min … max) 
  21.61 µs ±  54.78 ns    21.55 µs …  21.71 µs  in 10 ×   4621 runs
[dowdiness/lambda] bench benchmarks/unified_parser_benchmark.mbt:84 ("parser: apply_edit - single char flip in nested lambda") ok
time (mean ± σ)         range (min … max) 
  26.95 µs ± 218.77 ns    26.72 µs …  27.43 µs  in 10 ×   3659 runs
[dowdiness/lambda] bench benchmarks/unified_parser_benchmark.mbt:111 ("parity: imperative edit - let init edit") ok
time (mean ± σ)         range (min … max) 
  13.96 µs ± 260.80 ns    13.59 µs …  14.24 µs  in 10 ×   7010 runs
[dowdiness/lambda] bench benchmarks/unified_parser_benchmark.mbt:123 ("parity: parser apply_edit - let init edit") ok
time (mean ± σ)         range (min … max) 
  18.01 µs ± 257.40 ns    17.66 µs …  18.28 µs  in 10 ×   5438 runs
[dowdiness/lambda] bench benchmarks/unified_parser_benchmark.mbt:137 ("parser: diagnostics - valid ↔ malformed cycle") ok
time (mean ± σ)         range (min … max) 
   7.48 µs ±  26.71 ns     7.45 µs …   7.52 µs  in 10 ×  12911 runs
[dowdiness/lambda] bench benchmarks/realistic_benchmark.mbt:94 ("realistic: 40 defs - full reparse") ok
time (mean ± σ)         range (min … max) 
 419.36 µs ±   1.91 µs   417.33 µs … 422.84 µs  in 10 ×    238 runs
[dowdiness/lambda] bench benchmarks/realistic_benchmark.mbt:103 ("realistic: 40 defs - incremental (edit tail)") ok
time (mean ± σ)         range (min … max) 
 485.77 µs ±   3.36 µs   482.00 µs … 493.51 µs  in 10 ×    206 runs
[dowdiness/lambda] bench benchmarks/realistic_benchmark.mbt:118 ("realistic: 40 defs - incremental (edit head block)") ok
time (mean ± σ)         range (min … max) 
 252.25 µs ±   1.64 µs   250.79 µs … 256.43 µs  in 10 ×    386 runs
[dowdiness/lambda] bench benchmarks/realistic_benchmark.mbt:133 ("realistic: 40 defs - incremental (edit middle block)") ok
time (mean ± σ)         range (min … max) 
 254.02 µs ±   1.22 µs   252.71 µs … 256.45 µs  in 10 ×    395 runs
[dowdiness/lambda] bench benchmarks/realistic_benchmark.mbt:150 ("realistic: 80 defs - full reparse") ok
time (mean ± σ)         range (min … max) 
 883.49 µs ±   8.51 µs   872.13 µs … 894.67 µs  in 10 ×    114 runs
[dowdiness/lambda] bench benchmarks/realistic_benchmark.mbt:159 ("realistic: 80 defs - incremental (edit tail)") ok
time (mean ± σ)         range (min … max) 
   1.05 ms ±   9.20 µs     1.04 ms …   1.07 ms  in 10 ×     95 runs
[dowdiness/lambda] bench benchmarks/realistic_benchmark.mbt:174 ("realistic: 80 defs - incremental (edit middle block)") ok
time (mean ± σ)         range (min … max) 
 493.20 µs ±   1.84 µs   491.00 µs … 496.12 µs  in 10 ×    203 runs
[dowdiness/lambda] bench benchmarks/realistic_benchmark.mbt:191 ("realistic: 160 defs - full reparse") ok
time (mean ± σ)         range (min … max) 
   2.05 ms ±  23.06 µs     2.02 ms …   2.09 ms  in 10 ×     50 runs
[dowdiness/lambda] bench benchmarks/realistic_benchmark.mbt:200 ("realistic: 160 defs - incremental (edit tail)") ok
time (mean ± σ)         range (min … max) 
   2.29 ms ±  14.33 µs     2.27 ms …   2.32 ms  in 10 ×     45 runs
[dowdiness/lambda] bench benchmarks/realistic_benchmark.mbt:215 ("realistic: 160 defs - incremental (edit middle block)") ok
time (mean ± σ)         range (min … max) 
 989.44 µs ±   3.36 µs   984.32 µs … 995.74 µs  in 10 ×    102 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:26 ("profile: 80 lets - tokenize only") ok
time (mean ± σ)         range (min … max) 
  43.56 µs ± 100.33 ns    43.45 µs …  43.73 µs  in 10 ×   2290 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:36 ("profile: 80 lets - full reparse") ok
time (mean ± σ)         range (min … max) 
 133.18 µs ± 333.54 ns   132.82 µs … 133.88 µs  in 10 ×    752 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:46 ("profile: 80 lets - incremental (edit tail)") ok
time (mean ± σ)         range (min … max) 
 223.56 µs ± 876.74 ns   222.47 µs … 225.21 µs  in 10 ×    444 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:64 ("profile: 80 lets - incremental (edit head)") ok
time (mean ± σ)         range (min … max) 
 213.19 µs ±   1.27 µs   212.13 µs … 216.22 µs  in 10 ×    470 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:83 ("profile: 320 lets - tokenize only") ok
time (mean ± σ)         range (min … max) 
 183.44 µs ± 652.21 ns   182.36 µs … 184.34 µs  in 10 ×    549 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:92 ("profile: 320 lets - full reparse") ok
time (mean ± σ)         range (min … max) 
 560.19 µs ±   2.45 µs   556.30 µs … 563.90 µs  in 10 ×    180 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:101 ("profile: 320 lets - incremental (edit tail)") ok
time (mean ± σ)         range (min … max) 
 966.92 µs ±   6.23 µs   957.06 µs … 979.08 µs  in 10 ×    103 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:116 ("profile: 320 lets - incremental (edit head)") ok
time (mean ± σ)         range (min … max) 
 909.10 µs ±   5.49 µs   900.83 µs … 915.76 µs  in 10 ×    111 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:153 ("profile: 80 lets - tree build (normal events)") ok
time (mean ± σ)         range (min … max) 
  63.73 µs ± 120.64 ns    63.55 µs …  63.88 µs  in 10 ×   1558 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:174 ("profile: 80 lets - tree build (ReuseNode events)") ok
time (mean ± σ)         range (min … max) 
  39.69 µs ± 288.08 ns    39.30 µs …  40.22 µs  in 10 ×   2508 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:193 ("profile: 320 lets - tree build (normal events)") ok
time (mean ± σ)         range (min … max) 
 333.88 µs ±   1.96 µs   330.60 µs … 337.02 µs  in 10 ×    301 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:212 ("profile: 320 lets - tree build (ReuseNode events)") ok
time (mean ± σ)         range (min … max) 
 182.72 µs ± 849.45 ns   181.39 µs … 183.90 µs  in 10 ×    547 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:251 ("profile: 20 deep lets - full reparse") ok
time (mean ± σ)         range (min … max) 
 163.07 µs ± 403.77 ns   162.25 µs … 163.55 µs  in 10 ×    613 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:260 ("profile: 20 deep lets - incremental (edit tail)") ok
time (mean ± σ)         range (min … max) 
 229.16 µs ±   1.03 µs   227.52 µs … 230.71 µs  in 10 ×    438 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:276 ("profile: 20 very deep lets - full reparse") ok
time (mean ± σ)         range (min … max) 
 310.27 µs ±   2.01 µs   307.21 µs … 312.59 µs  in 10 ×    324 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:285 ("profile: 20 very deep lets - incremental (edit tail)") ok
time (mean ± σ)         range (min … max) 
 434.33 µs ±   2.68 µs   431.76 µs … 440.81 µs  in 10 ×    231 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:303 ("profile: 20 deep lets - build_tree (ReuseNode)") ok
time (mean ± σ)         range (min … max) 
  45.12 µs ± 158.47 ns    44.93 µs …  45.42 µs  in 10 ×   2222 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:323 ("profile: 20 deep lets - build_tree_fully_interned (ReuseNode)") ok
time (mean ± σ)         range (min … max) 
  53.00 µs ± 192.95 ns    52.81 µs …  53.47 µs  in 10 ×   1867 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:359 ("profile: closure call overhead - 960 calls") ok
time (mean ± σ)         range (min … max) 
   2.41 µs ±   6.32 ns     2.41 µs …   2.43 µs  in 10 ×  41382 runs
[dowdiness/lambda] bench benchmarks/profiling_benchmark.mbt:376 ("profile: direct array access - 960 calls") ok
time (mean ± σ)         range (min … max) 
   2.41 µs ±   6.26 ns     2.40 µs …   2.42 µs  in 10 ×  41570 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:7 ("parse scaling - small (5 tokens)") ok
time (mean ± σ)         range (min … max) 
   3.12 µs ±   7.82 ns     3.10 µs …   3.13 µs  in 10 ×  32104 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:16 ("parse scaling - medium (15 tokens)") ok
time (mean ± σ)         range (min … max) 
  13.12 µs ±  30.23 ns    13.08 µs …  13.16 µs  in 10 ×   7594 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:27 ("parse scaling - large (30+ tokens)") ok
time (mean ± σ)         range (min … max) 
  24.36 µs ± 129.67 ns    24.17 µs …  24.51 µs  in 10 ×   4092 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:40 ("incremental vs full - edit at start") ok
time (mean ± σ)         range (min … max) 
  27.30 µs ± 961.03 ns    26.53 µs …  29.63 µs  in 10 ×   3651 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:54 ("incremental vs full - edit at end") ok
time (mean ± σ)         range (min … max) 
  38.80 µs ± 272.01 ns    38.42 µs …  39.27 µs  in 10 ×   2568 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:68 ("incremental vs full - edit in middle") ok
time (mean ± σ)         range (min … max) 
  38.53 µs ± 434.76 ns    37.87 µs …  39.26 µs  in 10 ×   2614 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:82 ("sequential edits - typing simulation") ok
time (mean ± σ)         range (min … max) 
   6.17 µs ±  18.36 ns     6.14 µs …   6.20 µs  in 10 ×  16057 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:95 ("sequential edits - backspace simulation") ok
time (mean ± σ)         range (min … max) 
   6.74 µs ±  14.65 ns     6.71 µs …   6.76 µs  in 10 ×  14753 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:108 ("incremental state baseline - repeated parsing") ok
time (mean ± σ)         range (min … max) 
  17.21 µs ± 161.28 ns    17.03 µs …  17.54 µs  in 10 ×   5846 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:125 ("incremental state baseline - similar expressions") ok
time (mean ± σ)         range (min … max) 
   8.72 µs ±  20.03 ns     8.70 µs …   8.76 µs  in 10 ×  11434 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:137 ("memory pressure - large document") ok
time (mean ± σ)         range (min … max) 
  56.35 µs ± 143.51 ns    56.15 µs …  56.51 µs  in 10 ×   1769 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:154 ("worst case - full invalidation") ok
time (mean ± σ)         range (min … max) 
  27.09 µs ± 240.80 ns    26.83 µs …  27.56 µs  in 10 ×   3715 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:170 ("best case - cosmetic change") ok
time (mean ± σ)         range (min … max) 
   9.95 µs ±  90.98 ns     9.85 µs …  10.10 µs  in 10 ×   9986 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:209 ("phase1: full tokenize - 110 tokens") ok
time (mean ± σ)         range (min … max) 
  11.24 µs ±  24.05 ns    11.20 µs …  11.27 µs  in 10 ×   8917 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:222 ("phase1: incremental tokenize - edit at start (110 tokens)") ok
time (mean ± σ)         range (min … max) 
  15.35 µs ±  74.00 ns    15.25 µs …  15.47 µs  in 10 ×   6410 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:244 ("phase1: incremental tokenize - edit in middle (110 tokens)") ok
time (mean ± σ)         range (min … max) 
  15.36 µs ±  27.44 ns    15.32 µs …  15.40 µs  in 10 ×   6444 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:266 ("phase1: incremental tokenize - edit at end (110 tokens)") ok
time (mean ± σ)         range (min … max) 
  15.16 µs ±  34.65 ns    15.11 µs …  15.20 µs  in 10 ×   6611 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:287 ("phase1: full re-tokenize after edit - 110 tokens") ok
time (mean ± σ)         range (min … max) 
  11.24 µs ±  20.01 ns    11.22 µs …  11.27 µs  in 10 ×   8856 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:303 ("parse_cst - small") ok
time (mean ± σ)         range (min … max) 
   1.86 µs ±  11.57 ns     1.85 µs …   1.89 µs  in 10 ×  53775 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:314 ("parse_cst - large") ok
time (mean ± σ)         range (min … max) 
  15.85 µs ±  61.57 ns    15.77 µs …  15.98 µs  in 10 ×   6321 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:342 ("phase3: full CST reparse, no cursor - 110 tokens") ok
time (mean ± σ)         range (min … max) 
  30.75 µs ±  56.17 ns    30.68 µs …  30.85 µs  in 10 ×   3240 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:364 ("phase3: cursor reuse, edit at end - 110 tokens") ok
time (mean ± σ)         range (min … max) 
  51.98 µs ±  84.17 ns    51.85 µs …  52.10 µs  in 10 ×   1918 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:390 ("phase3: cursor reuse, edit at start - 110 tokens") ok
time (mean ± σ)         range (min … max) 
  34.11 µs ± 231.79 ns    33.85 µs …  34.48 µs  in 10 ×   2947 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:425 ("phase4: let body edit - full reparse, no cursor (baseline)") ok
time (mean ± σ)         range (min … max) 
   1.98 µs ±   4.28 ns     1.98 µs …   1.99 µs  in 10 ×  50135 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:448 ("phase4: let body edit - init IntLiteral reused via cursor") ok
time (mean ± σ)         range (min … max) 
   1.96 µs ±   2.87 ns     1.95 µs …   1.96 µs  in 10 ×  51295 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:473 ("phase4: let init edit - cursor") ok
time (mean ± σ)         range (min … max) 
   2.67 µs ±   9.11 ns     2.65 µs …   2.68 µs  in 10 ×  37563 runs
[dowdiness/lambda] bench benchmarks/performance_benchmark.mbt:498 ("phase4: nested let body edit - multiple inits reused") ok
time (mean ± σ)         range (min … max) 
   3.14 µs ±   5.79 ns     3.13 µs …   3.15 µs  in 10 ×  31928 runs
[dowdiness/lambda] bench benchmarks/let_chain_benchmark.mbt:48 ("let-chain: 80 lets - initial parse") ok
time (mean ± σ)         range (min … max) 
 284.06 µs ±   2.47 µs   281.84 µs … 290.46 µs  in 10 ×    353 runs
[dowdiness/lambda] bench benchmarks/let_chain_benchmark.mbt:58 ("let-chain: 320 lets - initial parse") ok
time (mean ± σ)         range (min … max) 
   1.23 ms ±  10.90 µs     1.22 ms …   1.25 ms  in 10 ×     81 runs
[dowdiness/lambda] bench benchmarks/let_chain_benchmark.mbt:70 ("let-chain: 80 lets - incremental single edit at tail") ok
time (mean ± σ)         range (min … max) 
 511.42 µs ± 904.43 ns   510.28 µs … 513.30 µs  in 10 ×    196 runs
[dowdiness/lambda] bench benchmarks/let_chain_benchmark.mbt:84 ("let-chain: 320 lets - incremental single edit at tail") ok
time (mean ± σ)         range (min … max) 
   2.22 ms ±  17.73 µs     2.20 ms …   2.25 ms  in 10 ×     46 runs
[dowdiness/lambda] bench benchmarks/let_chain_benchmark.mbt:101 ("let-chain: 80 lets - edit-only at tail") ok
time (mean ± σ)         range (min … max) 
 221.41 µs ± 697.05 ns   220.35 µs … 222.37 µs  in 10 ×    453 runs
[dowdiness/lambda] bench benchmarks/let_chain_benchmark.mbt:121 ("let-chain: 320 lets - edit-only at tail") ok
time (mean ± σ)         range (min … max) 
 961.74 µs ±   7.14 µs   950.46 µs … 972.42 µs  in 10 ×    103 runs
[dowdiness/lambda] bench benchmarks/let_chain_benchmark.mbt:141 ("let-chain: 80 lets - full reparse") ok
time (mean ± σ)         range (min … max) 
 217.59 µs ± 497.52 ns   216.71 µs … 218.11 µs  in 10 ×    461 runs
[dowdiness/lambda] bench benchmarks/let_chain_benchmark.mbt:150 ("let-chain: 320 lets - full reparse") ok
time (mean ± σ)         range (min … max) 
 864.86 µs ±   3.12 µs   860.85 µs … 870.03 µs  in 10 ×    116 runs
[dowdiness/lambda] bench benchmarks/let_chain_benchmark.mbt:161 ("let-chain: 80 lets - 50-edit session incremental") ok
time (mean ± σ)         range (min … max) 
  16.69 ms ± 372.94 µs    16.10 ms …  17.25 ms  in 10 ×      6 runs
[dowdiness/lambda] bench benchmarks/let_chain_benchmark.mbt:180 ("let-chain: 80 lets - 50-edit session full reparse") ok
time (mean ± σ)         range (min … max) 
  11.50 ms ±  30.25 µs    11.45 ms …  11.54 ms  in 10 ×      9 runs
[dowdiness/lambda] bench benchmarks/let_chain_benchmark.mbt:204 ("let-chain: 320 lets - 50-edit session incremental") ok
time (mean ± σ)         range (min … max) 
  70.03 ms ±   2.71 ms    65.13 ms …  73.46 ms  in 10 ×      2 runs
[dowdiness/lambda] bench benchmarks/let_chain_benchmark.mbt:223 ("let-chain: 320 lets - 50-edit session full reparse") ok
time (mean ± σ)         range (min … max) 
  47.18 ms ± 231.85 µs    46.76 ms …  47.52 ms  in 10 ×      3 runs
[dowdiness/lambda] bench benchmarks/let_chain_benchmark.mbt:294 ("let-chain: 20 lambda lets - initial parse") ok
time (mean ± σ)         range (min … max) 
 282.90 µs ±   1.43 µs   280.82 µs … 284.84 µs  in 10 ×    352 runs
[dowdiness/lambda] bench benchmarks/let_chain_benchmark.mbt:304 ("let-chain: 20 lambda lets - edit-only at tail") ok
time (mean ± σ)         range (min … max) 
 224.34 µs ±   1.29 µs   222.89 µs … 226.65 µs  in 10 ×    444 runs
[dowdiness/lambda] bench benchmarks/let_chain_benchmark.mbt:327 ("let-chain: 20 lambda lets - full reparse") ok
time (mean ± σ)         range (min … max) 
 290.23 µs ±   1.42 µs   288.66 µs … 292.62 µs  in 10 ×    344 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:104 ("heavy: large document - initial parse") ok
time (mean ± σ)         range (min … max) 
 273.47 µs ±   3.08 µs   268.24 µs … 277.50 µs  in 10 ×    374 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:115 ("heavy: wide arithmetic 100 terms - initial parse") ok
time (mean ± σ)         range (min … max) 
 155.81 µs ± 543.26 ns   154.88 µs … 156.46 µs  in 10 ×    644 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:126 ("heavy: nested application depth 50 - initial parse") ok
time (mean ± σ)         range (min … max) 
   2.31 ms ±   3.31 µs     2.31 ms …   2.32 ms  in 10 ×     44 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:137 ("heavy: large document - cst parse only") ok
time (mean ± σ)         range (min … max) 
 194.33 µs ± 431.00 ns   193.75 µs … 195.00 µs  in 10 ×    515 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:152 ("heavy: typing session - 100 edits at end") ok
time (mean ± σ)         range (min … max) 
  20.99 ms ± 395.12 µs    20.37 ms …  21.56 ms  in 10 ×      6 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:176 ("heavy: typing session - 100 edits in middle") ok
time (mean ± σ)         range (min … max) 
  35.64 ms ± 678.07 µs    34.51 ms …  36.57 ms  in 10 ×      3 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:204 ("heavy: refactoring session - 100 scattered replacements") ok
time (mean ± σ)         range (min … max) 
   9.25 ms ± 108.81 µs     9.16 ms …   9.51 ms  in 10 ×     12 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:236 ("heavy: FULL REPARSE - 100 edits at end") ok
time (mean ± σ)         range (min … max) 
  25.42 ms ± 424.65 µs    25.11 ms …  26.45 ms  in 10 ×      4 runs
[dowdiness/lambda] test benchmarks/heavy_benchmark.mbt:265 ("heavy: FULL REPARSE - 100 edits in middle") failed: Error
    at throw
    at wasm://wasm/00146c92:wasm-function[2319]:0x469e8
    at wasm://wasm/00146c92:wasm-function[354]:0xdcf3
    at wasm://wasm/00146c92:wasm-function[1381]:0x2f1fe
    at wasm://wasm/00146c92:wasm-function[1380]:0x2f109
    at wasm://wasm/00146c92:wasm-function[1379]:0x2f096
    at wasm://wasm/00146c92:wasm-function[353]:0xdbac
    at wasm://wasm/00146c92:wasm-function[73]:0x9d53
    at wasm://wasm/00146c92:wasm-function[202]:0xa5fb
    at wasm://wasm/00146c92:wasm-function[203]:0xa612
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:291 ("heavy: FULL REPARSE - 100 scattered replacements") ok
time (mean ± σ)         range (min … max) 
  12.98 ms ±  35.51 µs    12.93 ms …  13.02 ms  in 10 ×      8 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:322 ("heavy: FULL REPARSE - large document initial parse") ok
time (mean ± σ)         range (min … max) 
 231.81 µs ± 636.01 ns   231.07 µs … 232.68 µs  in 10 ×    433 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:429 ("scale: 100 terms - full reparse") ok
time (mean ± σ)         range (min … max) 
 107.99 µs ± 551.64 ns   107.37 µs … 108.77 µs  in 10 ×    926 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:434 ("scale: 100 terms - incremental single edit") ok
time (mean ± σ)         range (min … max) 
 325.38 µs ±   1.64 µs   323.30 µs … 327.98 µs  in 10 ×    305 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:439 ("scale: 100 terms - 50-edit session incremental") ok
time (mean ± σ)         range (min … max) 
   7.23 ms ±  17.82 µs     7.21 ms …   7.26 ms  in 10 ×     14 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:444 ("scale: 100 terms - 50-edit session full reparse") ok
time (mean ± σ)         range (min … max) 
   5.89 ms ±  17.86 µs     5.87 ms …   5.92 ms  in 10 ×     17 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:451 ("scale: 500 terms - full reparse") ok
time (mean ± σ)         range (min … max) 
 590.55 µs ±   3.80 µs   586.68 µs … 597.17 µs  in 10 ×    168 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:456 ("scale: 500 terms - incremental single edit") ok
time (mean ± σ)         range (min … max) 
   1.82 ms ±  11.99 µs     1.80 ms …   1.84 ms  in 10 ×     56 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:461 ("scale: 500 terms - 50-edit session incremental") ok
time (mean ± σ)         range (min … max) 
  55.36 ms ± 445.85 µs    54.46 ms …  55.93 ms  in 10 ×      2 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:466 ("scale: 500 terms - 50-edit session full reparse") ok
time (mean ± σ)         range (min … max) 
  30.13 ms ± 125.35 µs    30.00 ms …  30.37 ms  in 10 ×      4 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:473 ("scale: 1000 terms - full reparse") ok
time (mean ± σ)         range (min … max) 
   1.23 ms ±   5.09 µs     1.22 ms …   1.24 ms  in 10 ×     81 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:478 ("scale: 1000 terms - incremental single edit") ok
time (mean ± σ)         range (min … max) 
   3.97 ms ±  30.95 µs     3.93 ms …   4.03 ms  in 10 ×     26 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:483 ("scale: 1000 terms - 50-edit session incremental") ok
time (mean ± σ)         range (min … max) 
 109.24 ms ±   3.64 ms   105.44 ms … 118.59 ms  in 10 ×      1 runs
[dowdiness/lambda] bench benchmarks/heavy_benchmark.mbt:488 ("scale: 1000 terms - 50-edit session full reparse") ok
time (mean ± σ)         range (min … max) 
  62.98 ms ± 279.65 µs    62.45 ms …  63.31 ms  in 10 ×      2 runs
[dowdiness/lambda] bench benchmarks/grammar_incremental_benchmark.mbt:164 ("grammar A (hand): let-chain 80 - initial parse") ok
time (mean ± σ)         range (min … max) 
 146.21 µs ± 406.36 ns   145.83 µs … 146.83 µs  in 10 ×    685 runs
[dowdiness/lambda] bench benchmarks/grammar_incremental_benchmark.mbt:174 ("grammar B (interp): let-chain 80 - initial parse") ok
time (mean ± σ)         range (min … max) 
 180.14 µs ± 500.23 ns   179.46 µs … 180.98 µs  in 10 ×    554 runs
[dowdiness/lambda] bench benchmarks/grammar_incremental_benchmark.mbt:191 ("grammar A (hand): deep lambda tree - full parse") ok
time (mean ± σ)         range (min … max) 
 221.51 µs ±   1.74 µs   218.00 µs … 223.32 µs  in 10 ×    452 runs
[dowdiness/lambda] bench benchmarks/grammar_incremental_benchmark.mbt:201 ("grammar B (interp): deep lambda tree - full parse") ok
time (mean ± σ)         range (min … max) 
 144.86 µs ± 972.05 ns   143.53 µs … 146.04 µs  in 10 ×    693 runs
[dowdiness/lambda] bench benchmarks/grammar_incremental_benchmark.mbt:217 ("grammar A (hand): let-chain 80 - incremental edit session (8 edits)") ok
time (mean ± σ)         range (min … max) 
 744.57 µs ±   4.02 µs   739.23 µs … 750.15 µs  in 10 ×    134 runs
[dowdiness/lambda] bench benchmarks/grammar_incremental_benchmark.mbt:234 ("grammar B (interp): let-chain 80 - incremental edit session (8 edits)") ok
time (mean ± σ)         range (min … max) 
 745.61 µs ±   4.35 µs   740.40 µs … 753.35 µs  in 10 ×    134 runs
[dowdiness/lambda] bench benchmarks/grammar_incremental_benchmark.mbt:308 ("grammar A (hand): deep lambda tree - incremental edit session") ok
time (mean ± σ)         range (min … max) 
 816.59 µs ±   4.41 µs   809.37 µs … 822.14 µs  in 10 ×    123 runs
[dowdiness/lambda] bench benchmarks/grammar_incremental_benchmark.mbt:325 ("grammar B (interp): deep lambda tree - incremental edit session") ok
time (mean ± σ)         range (min … max) 
   1.17 ms ±   4.74 µs     1.17 ms …   1.18 ms  in 10 ×     85 runs
[dowdiness/lambda] bench benchmarks/fold_benchmark.mbt:47 ("fold benchmark: 80 lets - initial parse+fold") ok
time (mean ± σ)         range (min … max) 
 283.62 µs ±   2.24 µs   281.53 µs … 289.48 µs  in 10 ×    352 runs
[dowdiness/lambda] bench benchmarks/fold_benchmark.mbt:57 ("fold benchmark: 80 lets - incremental fold after single edit") ok
time (mean ± σ)         range (min … max) 
 223.65 µs ± 625.66 ns   222.72 µs … 224.55 µs  in 10 ×    449 runs
[dowdiness/lambda] bench benchmarks/fold_benchmark.mbt:75 ("fold benchmark: 320 lets - initial parse+fold") ok
time (mean ± σ)         range (min … max) 
   1.23 ms ±   7.34 µs     1.22 ms …   1.24 ms  in 10 ×     82 runs
[dowdiness/lambda] bench benchmarks/fold_benchmark.mbt:85 ("fold benchmark: 320 lets - incremental fold after single edit") ok
time (mean ± σ)         range (min … max) 
 962.06 µs ±   4.27 µs   955.55 µs … 968.96 µs  in 10 ×    105 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:23 ("concrete-syntax-tree - token constructor") ok
time (mean ± σ)         range (min … max) 
  73.59 ns ±   0.24 ns    73.14 ns …  73.85 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:32 ("concrete-syntax-tree - node constructor from 32 children") ok
time (mean ± σ)         range (min … max) 
 160.63 ns ±   0.95 ns   159.74 ns … 163.01 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:47 ("concrete-syntax-tree - equality identical 32 children") ok
time (mean ± σ)         range (min … max) 
 487.35 ns ±   1.35 ns   485.15 ns … 489.22 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:58 ("concrete-syntax-tree - equality mismatch hash fast path") ok
time (mean ± σ)         range (min … max) 
  13.85 ns ±   0.38 ns    13.42 ns …  14.54 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:103 ("interner - intern_token cold miss") ok
time (mean ± σ)         range (min … max) 
 180.34 ns ±   0.32 ns   179.86 ns … 180.81 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:114 ("interner - intern_token warm hit") ok
time (mean ± σ)         range (min … max) 
  53.64 ns ±   0.38 ns    53.16 ns …  54.20 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:125 ("build_tree - x + 1") ok
time (mean ± σ)         range (min … max) 
 411.50 ns ±   1.22 ns   409.43 ns … 413.32 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:136 ("build_tree_interned - x + 1, cold interner") ok
time (mean ± σ)         range (min … max) 
 723.99 ns ±   1.90 ns   721.51 ns … 726.70 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:152 ("build_tree_interned - x + 1, warm interner") ok
time (mean ± σ)         range (min … max) 
 427.79 ns ±   2.21 ns   425.91 ns … 431.45 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:178 ("build_tree - 100 identical ident tokens") ok
time (mean ± σ)         range (min … max) 
   3.26 µs ±  21.83 ns     3.25 µs …   3.32 µs  in 10 ×  30619 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:189 ("build_tree_interned - 100 identical tokens, warm interner") ok
time (mean ± σ)         range (min … max) 
   3.92 µs ±   5.12 ns     3.92 µs …   3.93 µs  in 10 ×  25479 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:226 ("build_tree_fully_interned - x + x, cold") ok
time (mean ± σ)         range (min … max) 
 906.90 ns ±   3.07 ns   903.91 ns … 913.55 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:244 ("build_tree_fully_interned - x + x, warm") ok
time (mean ± σ)         range (min … max) 
 660.30 ns ±   0.96 ns   659.20 ns … 662.20 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:267 ("build_tree_interned - x + x, warm") ok
time (mean ± σ)         range (min … max) 
 424.57 ns ±   0.85 ns   423.35 ns … 426.13 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:283 ("build_tree - x + x") ok
time (mean ± σ)         range (min … max) 
 410.09 ns ±   1.28 ns   408.83 ns … 412.24 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:293 ("node_interner - intern_node cold miss") ok
time (mean ± σ)         range (min … max) 
  76.08 ns ±   0.28 ns    75.60 ns …  76.37 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:306 ("node_interner - intern_node warm hit") ok
time (mean ± σ)         range (min … max) 
  60.98 ns ±   0.33 ns    60.44 ns …  61.51 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/cst_benchmark.mbt:323 ("parse_cst - end-to-end") ok
time (mean ± σ)         range (min … max) 
   4.89 µs ±   5.39 ns     4.89 µs …   4.90 µs  in 10 ×  20445 runs
[dowdiness/lambda] bench benchmarks/block_reparse_benchmark.mbt:75 ("block-reparse: 80 blocks - edit inside block") ok
time (mean ± σ)         range (min … max) 
 329.36 µs ± 949.72 ns   328.16 µs … 331.29 µs  in 10 ×    301 runs
[dowdiness/lambda] bench benchmarks/block_reparse_benchmark.mbt:100 ("block-reparse: 320 blocks - edit inside block") ok
time (mean ± σ)         range (min … max) 
   1.53 ms ±   5.28 µs     1.52 ms …   1.53 ms  in 10 ×     66 runs
[dowdiness/lambda] bench benchmarks/block_reparse_benchmark.mbt:126 ("block-reparse: 80 blocks - full reparse (baseline)") ok
time (mean ± σ)         range (min … max) 
 738.60 µs ±   4.08 µs   732.64 µs … 745.16 µs  in 10 ×    135 runs
[dowdiness/lambda] bench benchmarks/block_reparse_benchmark.mbt:135 ("block-reparse: 320 blocks - full reparse (baseline)") ok
time (mean ± σ)         range (min … max) 
   3.48 ms ±  67.91 µs     3.39 ms …   3.62 ms  in 10 ×     29 runs
[dowdiness/lambda] bench benchmarks/block_reparse_benchmark.mbt:149 ("block-reparse: 80 blocks - 50-edit session") ok
time (mean ± σ)         range (min … max) 
  26.34 ms ± 299.12 µs    26.04 ms …  26.84 ms  in 10 ×      4 runs
[dowdiness/lambda] bench benchmarks/block_reparse_benchmark.mbt:177 ("block-reparse: 320 blocks - 50-edit session") ok
time (mean ± σ)         range (min … max) 
 108.12 ms ±   1.92 ms   105.57 ms … 111.49 ms  in 10 ×      1 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:6 ("full parse - simple") ok
time (mean ± σ)         range (min … max) 
   1.34 µs ±   1.73 ns     1.34 µs …   1.35 µs  in 10 ×  74416 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:15 ("full parse - lambda") ok
time (mean ± σ)         range (min … max) 
   3.88 µs ±  12.57 ns     3.86 µs …   3.90 µs  in 10 ×  25818 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:26 ("full parse - nested lambdas") ok
time (mean ± σ)         range (min … max) 
   7.61 µs ±  32.83 ns     7.55 µs …   7.64 µs  in 10 ×  13101 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:37 ("full parse - arithmetic") ok
time (mean ± σ)         range (min … max) 
   5.52 µs ±  93.23 ns     5.46 µs …   5.75 µs  in 10 ×  18288 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:48 ("full parse - complex") ok
time (mean ± σ)         range (min … max) 
  13.03 µs ±  37.63 ns    12.97 µs …  13.07 µs  in 10 ×   7697 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:59 ("tokenization") ok
time (mean ± σ)         range (min … max) 
 819.40 ns ±   2.42 ns   817.21 ns … 825.34 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:70 ("incremental - initial parse") ok
time (mean ± σ)         range (min … max) 
   1.84 µs ±   5.00 ns     1.83 µs …   1.85 µs  in 10 ×  54074 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:80 ("incremental - small edit") ok
time (mean ± σ)         range (min … max) 
   6.20 µs ±   9.06 ns     6.19 µs …   6.21 µs  in 10 ×  16150 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:92 ("incremental - multiple edits") ok
time (mean ± σ)         range (min … max) 
  11.79 µs ±  31.60 ns    11.73 µs …  11.84 µs  in 10 ×   8440 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:106 ("incremental - replacement") ok
time (mean ± σ)         range (min … max) 
  10.07 µs ± 110.03 ns     9.91 µs …  10.20 µs  in 10 ×  10256 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:118 ("damage tracking") ok
time (mean ± σ)         range (min … max) 
  23.23 ns ±   0.25 ns    22.94 ns …  23.61 ns  in 10 × 100000 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:128 ("error recovery - valid") ok
time (mean ± σ)         range (min … max) 
   3.87 µs ±   9.95 ns     3.85 µs …   3.88 µs  in 10 ×  25818 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:139 ("error recovery - error") ok
time (mean ± σ)         range (min … max) 
   4.94 µs ±  32.37 ns     4.92 µs …   5.03 µs  in 10 ×  20205 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:150 ("full parse - let") ok
time (mean ± σ)         range (min … max) 
   4.41 µs ±  12.72 ns     4.39 µs …   4.43 µs  in 10 ×  22672 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:161 ("full parse - nested let") ok
time (mean ± σ)         range (min … max) 
   8.92 µs ± 174.13 ns     8.82 µs …   9.29 µs  in 10 ×  11223 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:173 ("incremental - let body edit") ok
time (mean ± σ)         range (min … max) 
  11.77 µs ±  22.26 ns    11.74 µs …  11.80 µs  in 10 ×   8440 runs
[dowdiness/lambda] bench benchmarks/benchmark.mbt:188 ("incremental - let init edit") ok
time (mean ± σ)         range (min … max) 
  13.63 µs ±  49.54 ns    13.56 µs …  13.74 µs  in 10 ×   7345 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:242 ("bench: zero-width boundary reuse regular items=8 old=plain zw=0") ok
time (mean ± σ)         range (min … max) 
   2.18 µs ±   3.23 ns     2.18 µs …   2.19 µs  in 10 ×  44199 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:249 ("bench: zero-width boundary reuse regular items=8 old=plain zw=1") ok
time (mean ± σ)         range (min … max) 
   3.97 µs ±   7.14 ns     3.96 µs …   3.99 µs  in 10 ×  25228 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:256 ("bench: zero-width boundary reuse regular items=8 old=plain zw=2") ok
time (mean ± σ)         range (min … max) 
   4.92 µs ±   8.88 ns     4.91 µs …   4.94 µs  in 10 ×  20342 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:263 ("bench: zero-width boundary reuse regular items=8 old=plain zw=4") ok
time (mean ± σ)         range (min … max) 
   6.63 µs ±  29.41 ns     6.61 µs …   6.71 µs  in 10 ×  15108 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:270 ("bench: zero-width boundary reuse regular items=8 old=plain zw=8") ok
time (mean ± σ)         range (min … max) 
  10.15 µs ±  10.88 ns    10.13 µs …  10.16 µs  in 10 ×   9861 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:277 ("bench: zero-width boundary reuse regular items=8 old=plain zw=16") ok
time (mean ± σ)         range (min … max) 
  17.93 µs ±  27.91 ns    17.90 µs …  17.98 µs  in 10 ×   5590 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:284 ("bench: zero-width boundary reuse repeat items=64 old=plain zw=0") ok
time (mean ± σ)         range (min … max) 
   1.20 µs ±   7.09 ns     1.20 µs …   1.22 µs  in 10 ×  83330 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:291 ("bench: zero-width boundary reuse repeat items=64 old=plain zw=1") ok
time (mean ± σ)         range (min … max) 
   1.83 µs ±   2.51 ns     1.82 µs …   1.83 µs  in 10 ×  54629 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:298 ("bench: zero-width boundary reuse repeat items=64 old=plain zw=2") ok
time (mean ± σ)         range (min … max) 
   2.31 µs ±   2.19 ns     2.31 µs …   2.31 µs  in 10 ×  43372 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:305 ("bench: zero-width boundary reuse repeat items=64 old=plain zw=4") ok
time (mean ± σ)         range (min … max) 
   3.22 µs ±   5.93 ns     3.21 µs …   3.23 µs  in 10 ×  31176 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:312 ("bench: zero-width boundary reuse repeat items=64 old=plain zw=8") ok
time (mean ± σ)         range (min … max) 
   5.07 µs ±   7.29 ns     5.07 µs …   5.09 µs  in 10 ×  19673 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:319 ("bench: zero-width boundary reuse repeat items=64 old=plain zw=16") ok
time (mean ± σ)         range (min … max) 
   8.93 µs ±  20.36 ns     8.91 µs …   8.98 µs  in 10 ×  11188 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:326 ("bench: zero-width boundary reuse regular items=4 old=plain zw=8") ok
time (mean ± σ)         range (min … max) 
   4.67 µs ±   8.07 ns     4.66 µs …   4.69 µs  in 10 ×  21403 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:333 ("bench: zero-width boundary reuse repeat items=16 old=plain zw=8") ok
time (mean ± σ)         range (min … max) 
   2.86 µs ±   5.43 ns     2.85 µs …   2.86 µs  in 10 ×  35059 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:340 ("bench: zero-width boundary reuse regular items=8 old=token-interned zw=16") ok
time (mean ± σ)         range (min … max) 
  17.76 µs ±  28.77 ns    17.72 µs …  17.81 µs  in 10 ×   5632 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:347 ("bench: zero-width boundary reuse regular items=8 old=fully-interned zw=16") ok
time (mean ± σ)         range (min … max) 
  17.72 µs ±  31.40 ns    17.67 µs …  17.79 µs  in 10 ×   5644 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:354 ("bench: zero-width boundary reuse repeat items=64 old=token-interned zw=16") ok
time (mean ± σ)         range (min … max) 
   8.94 µs ±  11.79 ns     8.93 µs …   8.96 µs  in 10 ×  11183 runs
[dowdiness/loom] bench core/parser_zero_width_boundary_bench_wbtest.mbt:361 ("bench: zero-width boundary reuse repeat items=64 old=fully-interned zw=16") ok
time (mean ± σ)         range (min … max) 
   8.94 µs ±   5.87 ns     8.94 µs …   8.95 µs  in 10 ×  11185 runs
[dowdiness/markdown] bench benchmark_test.mbt:80 ("markdown: 10x (~200 lines) - tokenize") ok
time (mean ± σ)         range (min … max) 
 103.64 µs ±   2.63 µs   101.59 µs … 108.30 µs  in 10 ×    954 runs
[dowdiness/markdown] bench benchmark_test.mbt:89 ("markdown: 10x (~200 lines) - full parse") ok
time (mean ± σ)         range (min … max) 
 445.39 µs ±  12.04 µs   432.40 µs … 468.97 µs  in 10 ×    194 runs
[dowdiness/markdown] bench benchmark_test.mbt:98 ("markdown: 10x (~200 lines) - incremental") ok
time (mean ± σ)         range (min … max) 
 350.11 µs ±   1.70 µs   348.29 µs … 352.37 µs  in 10 ×    287 runs
[dowdiness/markdown] bench benchmark_test.mbt:114 ("markdown: 50x (~1000 lines) - tokenize") ok
time (mean ± σ)         range (min … max) 
 519.16 µs ±   1.06 µs   517.88 µs … 521.23 µs  in 10 ×    193 runs
[dowdiness/markdown] bench benchmark_test.mbt:123 ("markdown: 50x (~1000 lines) - full parse") ok
time (mean ± σ)         range (min … max) 
   2.23 ms ±  14.59 µs     2.22 ms …   2.26 ms  in 10 ×     45 runs
[dowdiness/markdown] bench benchmark_test.mbt:132 ("markdown: 50x (~1000 lines) - incremental") ok
time (mean ± σ)         range (min … max) 
   1.79 ms ±   8.68 µs     1.78 ms …   1.80 ms  in 10 ×     56 runs
[dowdiness/markdown] bench benchmark_test.mbt:147 ("markdown: 100x (~2000 lines) - tokenize") ok
time (mean ± σ)         range (min … max) 
   1.06 ms ±   3.57 µs     1.05 ms …   1.06 ms  in 10 ×     95 runs
[dowdiness/markdown] bench benchmark_test.mbt:156 ("markdown: 100x (~2000 lines) - full parse") ok
time (mean ± σ)         range (min … max) 
   4.53 ms ±  32.74 µs     4.49 ms …   4.59 ms  in 10 ×     22 runs
[dowdiness/markdown] bench benchmark_test.mbt:165 ("markdown: 100x (~2000 lines) - incremental") ok
time (mean ± σ)         range (min … max) 
   3.61 ms ±  19.51 µs     3.58 ms …   3.64 ms  in 10 ×     28 runs
[dowdiness/markdown] bench benchmark_test.mbt:184 ("markdown: realistic doc - full parse (CST)") ok
time (mean ± σ)         range (min … max) 
 127.18 µs ± 349.54 ns   126.86 µs … 127.92 µs  in 10 ×    785 runs
[dowdiness/markdown] bench benchmark_test.mbt:193 ("markdown: realistic doc - full parse (CST+AST)") ok
time (mean ± σ)         range (min … max) 
 190.46 µs ± 504.33 ns   189.71 µs … 191.39 µs  in 10 ×    525 runs
[dowdiness/markdown] bench benchmark_test.mbt:204 ("markdown: realistic doc - tokenize only") ok
time (mean ± σ)         range (min … max) 
  53.07 µs ± 784.09 ns    50.85 µs …  53.44 µs  in 10 ×   1874 runs
[dowdiness/markdown] bench benchmark_test.mbt:223 ("markdown: realistic doc - lowering SyntaxNode -> Block") ok
time (mean ± σ)         range (min … max) 
  54.08 µs ± 173.17 ns    53.81 µs …  54.35 µs  in 10 ×   1856 runs
[dowdiness/markdown] bench benchmark_test.mbt:233 ("markdown: realistic doc - lowering SyntaxNode -> MarkdownIR -> Block") ok
time (mean ± σ)         range (min … max) 
  55.94 µs ± 524.18 ns    55.43 µs …  57.22 µs  in 10 ×   1689 runs
[dowdiness/markdown] bench benchmark_test.mbt:245 ("markdown: 50x doc - lowering SyntaxNode -> Block") ok
time (mean ± σ)         range (min … max) 
 637.44 µs ±   1.71 µs   635.51 µs … 640.34 µs  in 10 ×    158 runs
[dowdiness/markdown] bench benchmark_test.mbt:255 ("markdown: 50x doc - lowering SyntaxNode -> MarkdownIR -> Block") ok
time (mean ± σ)         range (min … max) 
 784.40 µs ±  17.57 µs   767.27 µs … 814.93 µs  in 10 ×    130 runs
[dowdiness/markdown] bench benchmark_test.mbt:273 ("markdown: realistic doc - incremental (edit paragraph)") ok
time (mean ± σ)         range (min … max) 
 217.95 µs ±   2.70 µs   214.19 µs … 221.21 µs  in 10 ×    464 runs
[dowdiness/markdown] bench benchmark_test.mbt:291 ("markdown: realistic doc - incremental (edit heading)") ok
time (mean ± σ)         range (min … max) 
 202.24 µs ±   5.02 µs   199.26 µs … 215.75 µs  in 10 ×    500 runs
[dowdiness/markdown] bench benchmark_test.mbt:309 ("markdown: realistic doc - incremental (edit list item)") ok
time (mean ± σ)         range (min … max) 
 213.96 µs ± 762.58 ns   212.84 µs … 214.96 µs  in 10 ×    466 runs
[dowdiness/markdown] bench benchmark_test.mbt:327 ("markdown: realistic doc - incremental (edit code block)") ok
time (mean ± σ)         range (min … max) 
 203.63 µs ± 329.22 ns   203.10 µs … 204.03 µs  in 10 ×    490 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:58 ("bench: insert_at sequential (1000)") ok
time (mean ± σ)         range (min … max) 
 942.98 µs ±  19.95 µs   923.74 µs … 992.14 µs  in 10 ×    105 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:69 ("bench: insert_at sequential (10000)") ok
time (mean ± σ)         range (min … max) 
  14.25 ms ± 136.72 µs    14.07 ms …  14.47 ms  in 10 ×      7 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:80 ("bench: insert_at random (1000)") ok
time (mean ± σ)         range (min … max) 
 852.49 µs ±   1.91 µs   850.42 µs … 855.52 µs  in 10 ×    116 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:93 ("bench: get_at random (1000)") ok
time (mean ± σ)         range (min … max) 
 859.99 µs ±   4.62 µs   850.19 µs … 863.73 µs  in 10 ×    116 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:109 ("bench: delete_at sequential (1000)") ok
time (mean ± σ)         range (min … max) 
 722.76 µs ±   5.90 µs   718.98 µs … 738.78 µs  in 10 ×    139 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:120 ("bench: from_array (1000)") ok
time (mean ± σ)         range (min … max) 
  18.08 µs ±  87.22 ns    17.96 µs …  18.23 µs  in 10 ×   5527 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:129 ("bench: from_array (10000)") ok
time (mean ± σ)         range (min … max) 
 258.10 µs ±   1.48 µs   256.51 µs … 261.59 µs  in 10 ×    386 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:138 ("bench: iter (1000)") ok
time (mean ± σ)         range (min … max) 
   7.59 µs ± 107.38 ns     7.40 µs …   7.72 µs  in 10 ×  13056 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:148 ("bench: view middle range (1000)") ok
time (mean ± σ)         range (min … max) 
  31.62 µs ± 159.95 ns    31.39 µs …  31.84 µs  in 10 ×   3158 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:157 ("bench: delete_range middle (1000)") ok
time (mean ± σ)         range (min … max) 
  38.26 µs ± 128.73 ns    38.01 µs …  38.44 µs  in 10 ×   2637 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:166 ("bench: min_degree=2 insert (1000)") ok
time (mean ± σ)         range (min … max) 
   1.25 ms ±   4.88 µs     1.25 ms …   1.26 ms  in 10 ×     81 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:177 ("bench: min_degree=5 insert (1000)") ok
time (mean ± σ)         range (min … max) 
 873.80 µs ±   4.09 µs   867.92 µs … 881.45 µs  in 10 ×    114 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:188 ("bench: min_degree=10 insert (1000)") ok
time (mean ± σ)         range (min … max) 
 936.13 µs ±   6.16 µs   927.30 µs … 945.46 µs  in 10 ×    107 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:199 ("bench: min_degree=16 insert (1000)") ok
time (mean ± σ)         range (min … max) 
   1.08 ms ±   1.13 µs     1.08 ms …   1.09 ms  in 10 ×     92 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:210 ("bench: min_degree=32 insert (1000)") ok
time (mean ± σ)         range (min … max) 
   1.34 ms ±   8.85 µs     1.33 ms …   1.35 ms  in 10 ×     76 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:272 ("bench: insert_at sequential mergeable (10000)") ok
time (mean ± σ)         range (min … max) 
   1.85 ms ±  14.99 µs     1.83 ms …   1.88 ms  in 10 ×     55 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:283 ("bench: from_array mergeable (10000)") ok
time (mean ± σ)         range (min … max) 
  46.78 µs ±  74.39 ns    46.65 µs …  46.87 µs  in 10 ×   2135 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:295 ("bench: view middle mergeable (10000)") ok
time (mean ± σ)         range (min … max) 
 144.44 ns ±   0.64 ns   143.71 ns … 145.24 ns  in 10 × 100000 runs
[dowdiness/order-tree] bench order_tree_benchmark.mbt:307 ("bench: delete_range middle mergeable (10000)") ok
time (mean ± σ)         range (min … max) 
  77.48 µs ±   1.05 µs    76.31 µs …  79.36 µs  in 10 ×   1292 runs
[dowdiness/rle] bench rle_benchmark.mbt:45 ("runs - range iter (small)") ok
time (mean ± σ)         range (min … max) 
   7.77 µs ±  51.67 ns     7.71 µs …   7.86 µs  in 10 ×  12626 runs
[dowdiness/rle] bench rle_benchmark.mbt:60 ("runs - range iter (middle)") ok
time (mean ± σ)         range (min … max) 
  18.86 µs ± 135.93 ns    18.78 µs …  19.24 µs  in 10 ×   5319 runs
[dowdiness/rle] bench rle_benchmark.mbt:76 ("runs - concat batch") ok
time (mean ± σ)         range (min … max) 
   2.55 µs ±  39.80 ns     2.51 µs …   2.63 µs  in 10 ×  38731 runs
[dowdiness/rle] bench rle_benchmark.mbt:87 ("runs - extend batch") ok
time (mean ± σ)         range (min … max) 
   2.53 µs ±  33.42 ns     2.51 µs …   2.62 µs  in 10 ×  38794 runs
[dowdiness/rle] bench rle_benchmark.mbt:99 ("runs - from_array_batch") ok
time (mean ± σ)         range (min … max) 
  55.61 µs ± 429.79 ns    54.98 µs …  56.06 µs  in 10 ×   1802 runs
[dowdiness/seam] bench syntax_node_bench_wbtest.mbt:34 ("bench: token_at_offset interior hit mid-tree") ok
time (mean ± σ)         range (min … max) 
   2.04 µs ±  39.45 ns     2.01 µs …   2.10 µs  in 10 ×  46821 runs
[dowdiness/seam] bench syntax_node_bench_wbtest.mbt:41 ("bench: token_at_offset boundary Between mid-tree") ok
time (mean ± σ)         range (min … max) 
   3.86 µs ±   5.75 ns     3.86 µs …   3.87 µs  in 10 ×  25865 runs
[dowdiness/seam] bench syntax_node_bench_wbtest.mbt:48 ("bench: token_at_offset out-of-range miss (full scan)") ok
time (mean ± σ)         range (min … max) 
   4.08 µs ±  45.81 ns     4.00 µs …   4.15 µs  in 10 ×  24199 runs
[dowdiness/seam] bench event_bench_wbtest.mbt:60 ("bench: build_tree with ReuseNode (rebuild_subtree)") ok
time (mean ± σ)         range (min … max) 
 113.91 µs ± 241.33 ns   113.49 µs … 114.24 µs  in 10 ×    819 runs
[dowdiness/seam] bench event_bench_wbtest.mbt:77 ("bench: build_tree_interned with ReuseNode (re_intern_tokens_only)") ok
time (mean ± σ)         range (min … max) 
 189.19 µs ± 877.16 ns   188.29 µs … 191.07 µs  in 10 ×    526 runs
[dowdiness/seam] bench event_bench_wbtest.mbt:97 ("bench: EventBuffer push_parser_reuse_node_rebased (matching source rebase)") ok
time (mean ± σ)         range (min … max) 
 172.31 µs ± 763.57 ns   171.48 µs … 173.38 µs  in 10 ×    580 runs
[dowdiness/seam] bench event_bench_wbtest.mbt:118 ("bench: EventBuffer push_parser_reuse_node_rebased_unchecked (validated source rebase)") ok
time (mean ± σ)         range (min … max) 
 127.21 µs ± 704.24 ns   126.45 µs … 128.57 µs  in 10 ×    784 runs
[dowdiness/seam] bench cst_traits_wbtest.mbt:126 ("bench: text_len hand-written") ok
time (mean ± σ)         range (min … max) 
 432.90 µs ± 546.10 ns   432.23 µs … 433.93 µs  in 10 ×    232 runs
[dowdiness/seam] bench cst_traits_wbtest.mbt:134 ("bench: text_len via accept_fold[TextLen]") ok
time (mean ± σ)         range (min … max) 
 464.46 µs ± 896.61 ns   463.54 µs … 465.75 µs  in 10 ×    216 runs
[dowdiness/seam] bench cst_traits_wbtest.mbt:142 ("bench: text_len via closure fold") ok
time (mean ± σ)         range (min … max) 
 746.41 µs ±   2.09 µs   743.41 µs … 749.80 µs  in 10 ×    135 runs
[dowdiness/seam] bench cst_traits_wbtest.mbt:150 ("bench: node_count hand-written") ok
time (mean ± σ)         range (min … max) 
 347.45 µs ± 593.54 ns   346.73 µs … 348.71 µs  in 10 ×    288 runs
[dowdiness/seam] bench cst_traits_wbtest.mbt:158 ("bench: node_count via accept_transform_fold[NodeCount]") ok
time (mean ± σ)         range (min … max) 
 380.54 µs ±   1.47 µs   379.24 µs … 384.17 µs  in 10 ×    263 runs
[dowdiness/seam] bench cst_traits_wbtest.mbt:168 ("bench: node_count via closure transform_fold") ok
time (mean ± σ)         range (min … max) 
 407.33 µs ±   1.12 µs   405.88 µs … 409.66 µs  in 10 ×    245 runs
[dowdiness/seam] bench cst_traits_wbtest.mbt:204 ("bench: token_count (trivia filter) via CstElement::token_count") ok
time (mean ± σ)         range (min … max) 
 473.62 µs ± 785.84 ns   472.56 µs … 475.02 µs  in 10 ×    213 runs
[dowdiness/visualizer] bench incr_tap_benchmark.mbt:44 ("bench/incr_tap/snapshot_fanout_256") ok
time (mean ± σ)         range (min … max) 
  57.49 µs ±   1.00 µs    56.59 µs …  60.09 µs  in 10 ×   1655 runs
[dowdiness/visualizer] bench incr_tap_benchmark.mbt:51 ("bench/incr_tap/snapshot_fanout_2048") ok
time (mean ± σ)         range (min … max) 
 576.72 µs ±   5.22 µs   570.97 µs … 587.66 µs  in 10 ×    174 runs
[dowdiness/visualizer] bench incr_tap_benchmark.mbt:58 ("bench/incr_tap/to_visual_graph_fanout_256") ok
time (mean ± σ)         range (min … max) 
 108.74 µs ± 242.82 ns   108.44 µs … 109.09 µs  in 10 ×    914 runs
[dowdiness/visualizer] bench incr_tap_benchmark.mbt:64 ("bench/incr_tap/to_visual_graph_fanout_2048") ok
time (mean ± σ)         range (min … max) 
   1.03 ms ±   7.47 µs     1.02 ms …   1.04 ms  in 10 ×     97 runs
Total tests: 428, passed: 427, failed: 1. [wasm-gc]
node count: 402
node count: 802
node count: 2002
[dowdiness/canopy] bench editor/view_updater_benchmark_wbtest.mbt:32 ("viewnode serialization (100 defs)") ok
time (mean ± σ)         range (min … max) 
   1.46 ms ±  12.81 µs     1.45 ms …   1.48 ms  in 10 ×     69 runs
[dowdiness/canopy] bench editor/view_updater_benchmark_wbtest.mbt:43 ("viewnode serialization (200 defs)") ok
time (mean ± σ)         range (min … max) 
   3.34 ms ±  50.00 µs     3.27 ms …   3.42 ms  in 10 ×     30 runs
[dowdiness/canopy] bench editor/view_updater_benchmark_wbtest.mbt:54 ("viewnode serialization (500 defs)") ok
time (mean ± σ)         range (min … max) 
  15.03 ms ± 968.15 µs    13.82 ms …  16.76 ms  in 10 ×      7 runs
[dowdiness/canopy] bench editor/view_updater_benchmark_wbtest.mbt:65 ("compute_view_patches (100 defs, single edit)") ok
time (mean ± σ)         range (min … max) 
   1.35 ms ±  45.06 µs     1.32 ms …   1.44 ms  in 10 ×     76 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:98 ("json object - incremental keystroke (20 members)") ok
time (mean ± σ)         range (min … max) 
   1.04 ms ±  53.47 µs   965.23 µs …   1.11 ms  in 10 ×     87 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:103 ("json object - incremental keystroke (100 members)") ok
time (mean ± σ)         range (min … max) 
   4.12 ms ±  84.71 µs     4.03 ms …   4.26 ms  in 10 ×     25 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:108 ("json object - incremental keystroke (500 members)") ok
time (mean ± σ)         range (min … max) 
  27.13 ms ± 343.67 µs    26.76 ms …  27.84 ms  in 10 ×      4 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:113 ("json object - incremental keystroke (1000 members)") ok
time (mean ± σ)         range (min … max) 
  60.92 ms ± 355.14 µs    60.44 ms …  61.44 ms  in 10 ×      2 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:118 ("json array - incremental keystroke (20 elements)") ok
time (mean ± σ)         range (min … max) 
 787.82 µs ± 154.05 µs   565.49 µs … 996.05 µs  in 10 ×    208 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:123 ("json array - incremental keystroke (100 elements)") ok
time (mean ± σ)         range (min … max) 
   1.93 ms ±  51.12 µs     1.87 ms …   2.00 ms  in 10 ×     55 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:128 ("json array - incremental keystroke (500 elements)") ok
time (mean ± σ)         range (min … max) 
  12.84 ms ±  85.46 µs    12.76 ms …  12.97 ms  in 10 ×      8 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:133 ("json array - incremental keystroke (1000 elements)") ok
time (mean ± σ)         range (min … max) 
  32.81 ms ± 807.01 µs    31.84 ms …  34.75 ms  in 10 ×      4 runs
[dowdiness/canopy] bench lang/json/companion/dispatch_benchmark.mbt:95 ("text intent dispatch - direct call (100 members)") ok
time (mean ± σ)         range (min … max) 
   3.82 ms ±  38.51 µs     3.77 ms …   3.88 ms  in 10 ×     27 runs
[dowdiness/canopy] bench lang/json/companion/dispatch_benchmark.mbt:100 ("text intent dispatch - caps field (100 members)") ok
time (mean ± σ)         range (min … max) 
   3.84 ms ±  44.47 µs     3.78 ms …   3.90 ms  in 10 ×     27 runs
[dowdiness/canopy] bench lang/json/companion/dispatch_benchmark.mbt:105 ("text intent dispatch - caps optional field (100 members)") ok
time (mean ± σ)         range (min … max) 
   3.82 ms ±  30.26 µs     3.78 ms …   3.89 ms  in 10 ×     27 runs
[dowdiness/canopy] bench lang/json/companion/dispatch_benchmark.mbt:110 ("text intent dispatch - direct call (1000 members)") ok
time (mean ± σ)         range (min … max) 
  50.54 ms ±   1.46 ms    49.19 ms …  54.27 ms  in 10 ×      3 runs
[dowdiness/canopy] bench lang/json/companion/dispatch_benchmark.mbt:115 ("text intent dispatch - caps field (1000 members)") ok
time (mean ± σ)         range (min … max) 
  50.38 ms ± 469.40 µs    49.52 ms …  51.05 ms  in 10 ×      2 runs
[dowdiness/canopy] bench lang/json/companion/dispatch_benchmark.mbt:120 ("text intent dispatch - caps optional field (1000 members)") ok
time (mean ± σ)         range (min … max) 
  51.15 ms ±   1.65 ms    49.65 ms …  55.44 ms  in 10 ×      3 runs
[dowdiness/canopy] bench lang/json/companion/dispatch_benchmark.mbt:143 ("isolated dispatch - direct call x1000") ok
time (mean ± σ)         range (min … max) 
 679.37 ns ±   6.11 ns   670.31 ns … 687.45 ns  in 10 × 100000 runs
[dowdiness/canopy] bench lang/json/companion/dispatch_benchmark.mbt:154 ("isolated dispatch - caps field x1000") ok
time (mean ± σ)         range (min … max) 
 668.13 ns ±   3.58 ns   663.00 ns … 674.76 ns  in 10 × 100000 runs
[dowdiness/canopy] bench lang/json/companion/dispatch_benchmark.mbt:169 ("isolated dispatch - caps optional field x1000") ok
time (mean ± σ)         range (min … max) 
 676.29 ns ±   6.04 ns   667.77 ns … 684.62 ns  in 10 × 100000 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:38 ("tree refresh unchanged (20 defs)") ok
time (mean ± σ)         range (min … max) 
   5.72 µs ±   6.23 ns     5.71 µs …   5.73 µs  in 10 ×  16866 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:48 ("tree refresh unchanged (80 defs)") ok
time (mean ± σ)         range (min … max) 
  25.45 µs ± 107.98 ns    25.33 µs …  25.65 µs  in 10 ×   3662 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:58 ("tree refresh unchanged (320 defs)") ok
time (mean ± σ)         range (min … max) 
 114.85 µs ±   2.48 µs   113.06 µs … 119.10 µs  in 10 ×    870 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:68 ("tree refresh unchanged (1000 defs)") ok
time (mean ± σ)         range (min … max) 
 455.31 µs ±   3.26 µs   451.30 µs … 460.84 µs  in 10 ×    220 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:80 ("tree refresh 1 changed (20 defs)") ok
time (mean ± σ)         range (min … max) 
  11.46 µs ±  45.61 ns    11.41 µs …  11.53 µs  in 10 ×   8730 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:95 ("tree refresh 1 changed (320 defs)") ok
time (mean ± σ)         range (min … max) 
 225.29 µs ±   1.48 µs   223.01 µs … 228.08 µs  in 10 ×    445 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:110 ("tree refresh 1 changed (1000 defs)") ok
time (mean ± σ)         range (min … max) 
 799.49 µs ±   3.31 µs   795.80 µs … 805.40 µs  in 10 ×    125 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:125 ("tree refresh 1 changed (80 defs)") ok
time (mean ± σ)         range (min … max) 
  48.41 µs ± 110.31 ns    48.28 µs …  48.61 µs  in 10 ×   2071 runs
[dowdiness/canopy] bench projection/reconcile_lcs_benchmark_wbtest.mbt:61 ("reconcile wide-siblings (20 defs)") ok
time (mean ± σ)         range (min … max) 
  17.52 µs ± 124.98 ns    17.40 µs …  17.68 µs  in 10 ×   5752 runs
[dowdiness/canopy] bench projection/reconcile_lcs_benchmark_wbtest.mbt:66 ("reconcile wide-siblings (80 defs)") ok
time (mean ± σ)         range (min … max) 
 129.21 µs ±   1.02 µs   128.50 µs … 131.92 µs  in 10 ×    773 runs
[dowdiness/canopy] bench projection/reconcile_lcs_benchmark_wbtest.mbt:71 ("reconcile wide-siblings (320 defs)") ok
time (mean ± σ)         range (min … max) 
   1.49 ms ±  10.41 µs     1.48 ms …   1.52 ms  in 10 ×     68 runs
[dowdiness/canopy] bench projection/reconcile_lcs_benchmark_wbtest.mbt:76 ("reconcile wide-siblings (1000 defs)") ok
time (mean ± σ)         range (min … max) 
  13.86 ms ±  36.36 µs    13.81 ms …  13.90 ms  in 10 ×      8 runs
Total tests: 33, passed: 33, failed: 0. [js]
Warning: no test entry found.
Total tests: 0, passed: 0, failed: 0. [native]

Benchmarks run with --release flag

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@event-graph-walker`:
- Line 1: The event-graph-walker submodule pointer is pinned to commit SHA
edfe8ce1feae052dd86c286d0179b615c3aaf9a4, which does not exist or is
inaccessible in the submodule repository. Verify the correct commit SHA that
should be targeted in the event-graph-walker repository by checking the
repository history and ensuring it is a valid, existing commit. Update the
submodule reference to point to the correct, valid commit SHA that exists
upstream, then verify the submodule can be fetched successfully before pushing
the changes.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: f50134d8-5df8-47ca-b31c-cfd90f93bae6

📥 Commits

Reviewing files that changed from the base of the PR and between 894294a and c076ec1.

📒 Files selected for processing (4)
  • alga
  • event-graph-walker
  • lang/markdown/proj/moon.pkg
  • loom

Comment thread event-graph-walker
@@ -1 +1 @@
Subproject commit 0ed747a5e55c4eb1ac9e336acf732a4939ed87b9
Subproject commit edfe8ce1feae052dd86c286d0179b615c3aaf9a4

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

TARGET_SHA="edfe8ce1feae052dd86c286d0179b615c3aaf9a4"

echo "Superproject gitlink entry:"
git ls-tree HEAD event-graph-walker

if [ -d "event-graph-walker" ]; then
  echo
  echo "Checking submodule commit existence and metadata:"
  git -C event-graph-walker rev-parse --verify "${TARGET_SHA}^{commit}"
  git -C event-graph-walker show --no-patch --pretty=fuller "${TARGET_SHA}"
  echo
  echo "Recent submodule history (for manual provenance check):"
  git -C event-graph-walker log --oneline --decorate -n 30
else
  echo "Submodule directory not present in this checkout; verify in CI or a full clone with submodules initialized."
fi

Repository: dowdiness/canopy

Length of output: 483


Submodule pointer targets non-existent commit — verification failed.

The gitlink update pins event-graph-walker to commit edfe8ce1feae052dd86c286d0179b615c3aaf9a4, but this SHA cannot be resolved in the submodule repository. The system returned "not our ref" and "could not fetch from promisor remote", indicating the commit does not exist or is inaccessible. Verify the SHA is correct and exists upstream before merging.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@event-graph-walker` at line 1, The event-graph-walker submodule pointer is
pinned to commit SHA edfe8ce1feae052dd86c286d0179b615c3aaf9a4, which does not
exist or is inaccessible in the submodule repository. Verify the correct commit
SHA that should be targeted in the event-graph-walker repository by checking the
repository history and ensuring it is a valid, existing commit. Update the
submodule reference to point to the correct, valid commit SHA that exists
upstream, then verify the submodule can be fetched successfully before pushing
the changes.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3e2a42a639

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread loom
@@ -1 +1 @@
Subproject commit d2c6c34157da4c8f0def90ec0c71bc366b5111e2
Subproject commit aa26fe00bbc346a7414ddc99b7d19b77a9ec4709

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve surplus indented-code whitespace

The loom pointer now includes the new indented-code implementation where examples/markdown/lexer.mbt builds IndentedCodeText from input[end:line_end] after end has skipped all leading whitespace, and markdown_ir.mbt trims leading whitespace again. For indented code lines with more than the required four columns (for example x), CommonMark removes only one 4-column indent and should preserve the remaining two spaces, but this revision renders the content as x, corrupting Markdown code blocks that intentionally contain leading whitespace.

Useful? React with 👍 / 👎.

@dowdiness dowdiness merged commit 5af9c40 into main Jun 23, 2026
29 checks passed
@dowdiness dowdiness deleted the fix/warnings branch June 29, 2026 07:34
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