Skip to content

Allow unstable-fn to target primitives#889

Draft
saulshanabrook wants to merge 1 commit into
egraphs-good:mainfrom
saulshanabrook:codex/split-unstable-fn-primitive-targets
Draft

Allow unstable-fn to target primitives#889
saulshanabrook wants to merge 1 commit into
egraphs-good:mainfrom
saulshanabrook:codex/split-unstable-fn-primitive-targets

Conversation

@saulshanabrook
Copy link
Copy Markdown
Member

@saulshanabrook saulshanabrook commented May 18, 2026

Context

unstable-fn function containers could target table functions, but primitive overloads needed matching typechecking and runtime resolution support. General follow up on #832

Changes

  • Extends unstable-fn type constraints to account for primitive overloads.
  • Resolves primitive function containers for scheduled rules and merge functions.
  • Keeps resolver APIs private to this implementation.
  • Adds tests for primitive-backed function containers and merge-function use.

Validation

  • cargo test --lib test_unstable_function_container_primitives
  • cargo test --test files --features bin unstable_fn
  • cargo fmt
  • git diff --check

@saulshanabrook saulshanabrook force-pushed the codex/split-unstable-fn-primitive-targets branch from 5eecf36 to a821985 Compare May 18, 2026 20:38
@codspeed-hq
Copy link
Copy Markdown

codspeed-hq Bot commented May 18, 2026

Merging this PR will improve performance by 8.47%

⚡ 1 improved benchmark
✅ 24 untouched benchmarks
⏩ 215 skipped benchmarks1

Performance Changes

Mode Benchmark BASE HEAD Efficiency
Simulation tests[repro-665-set-union] 627.6 ms 578.6 ms +8.47%

Tip

Curious why this is faster? Comment @codspeedbot explain why this is faster on this PR, or directly use the CodSpeed MCP with your agent.


Comparing saulshanabrook:codex/split-unstable-fn-primitive-targets (671b2b5) with main (8c1c70b)2

Open in CodSpeed

Footnotes

  1. 215 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

  2. No successful run was found on main (d330f2c) during the generation of this report, so 8c1c70b was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

@saulshanabrook saulshanabrook force-pushed the codex/split-unstable-fn-primitive-targets branch from a821985 to 671b2b5 Compare May 20, 2026 18:59
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