Skip to content

Bump corgi to WIP 4b1d23b - #925

Merged
frankmcsherry merged 3 commits into
TimelyDataflow:master-nextfrom
frankmcsherry:ddir-corgi-bump
Oct 9, 2026
Merged

frankmcsherry merged 3 commits into
TimelyDataflow:master-nextfrom
frankmcsherry:ddir-corgi-bump

Conversation

@frankmcsherry

@frankmcsherry frankmcsherry commented Oct 9, 2026 •

Copy link
Copy Markdown
Member

Moves the corgi pin from 7d46146 to 4b1d23b, and follows corgi's surface changes in the lowering.

List indexing uses Gather, which is total: an index outside the list reads the zero of the element's shape, where the old Get panicked.
Weave reads its tags as bytes, so a list literal narrows its iota positions with Cast(8).
AddU64 and CmpOp::Gt are now the immediate forms BinImm and RelImm.
Corgi's reference values (Ref) are read as the rows they name, when transcoding and when ordering reduce values.

Corgi now orders lists lexicographically, as DDIR does.
Reduce's Min and Collect read list values in corgi's own order, and the adapter that ranked lists lexicographically is removed.
Signed integer leaves are still swizzled for the sort.

The workspace MSRV rises from 1.86 to 1.88, because corgi uses std::hint::select_unpredictable, stable since Rust 1.88.

Checked: cargo test -p interactive passes, and all 33 AoC parts give the expected answers on the corgi backend.
On a 3,000-node graph, min and collect over lists of different lengths give identical output before and after removing the adapter.

Timed with codegen-units=1, binaries interleaved, three runs each, one worker:

Workload Before After
Reachability, 1M nodes / 2M edges (pin 7d46146 → c068d1a) 2.00–2.02s 2.00–2.06s
AoC, all 33 parts (pin 7d46146 → c068d1a) 2.66–2.67s 2.68–2.71s
List min and collect, 400K nodes / 4M edges (adapter → corgi's order) 3.26–3.28s 3.15–3.16s

🤖 Generated with Claude Code

frankmcsherry and others added 3 commits October 9, 2026 11:08
Corgi's surface ops moved since 7d46146; the lowering follows.
List indexing uses `Gather`, which is total: an index outside the list reads the zero of the element's shape.
`Weave` reads its tags as bytes, so a list literal narrows its `iota` positions with `Cast(8)`.
`AddU64` and `CmpOp::Gt` are now the immediate forms `BinImm` and `RelImm`.
Corgi's reference values (`Ref`) are read as the rows they name, when transcoding and when ordering reduce values.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Corgi now orders lists lexicographically, as DDIR does.
Reduce's `Min` and `Collect` read list values in Corgi's own order, and the adapter that ranked lists lexicographically is removed.
Signed integer leaves are still swizzled for the sort.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Corgi uses `std::hint::select_unpredictable`, stable since Rust 1.88.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@frankmcsherry
frankmcsherry merged commit 9db8aef into TimelyDataflow:master-next Oct 9, 2026
6 checks passed
@frankmcsherry
frankmcsherry deleted the ddir-corgi-bump branch October 9, 2026 16:26
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