aot: consume producer-owned runtime link metadata#968
Merged
Conversation
234d733 to
f73fc29
Compare
2bf72c1 to
b666fc1
Compare
b666fc1 to
a7f0d53
Compare
f73fc29 to
0c54684
Compare
a7f0d53 to
7e33847
Compare
8ab26a8 to
6a491ad
Compare
b3d3cbd to
7e5112e
Compare
dank-openai
added a commit
that referenced
this pull request
May 19, 2026
# Problem Solved The earlier standalone-runtime prototype proved the deployment boundary, but it kept runtime ABI ownership in Rust by mirroring live XLS callback objects. Runtime ABI ownership should come from XLS itself; Rust consumers should only provide generated wrapper glue and link the released runtime artifact. # What Changed - Make standalone runtime-AOT wrappers the intended generated form. - Replace the Rust-owned shadow runtime with thin integration over the XLS-owned standalone runtime ABI. - Keep runtime assertions supported and reject trace-bearing artifacts until the later trace extension lands. - Preserve typed wrapper ergonomics while linking generated consumers against the released static runtime archive. # Validation - Focused generated-wrapper and standalone-runtime tests passed on macOS and Ubuntu 24.04. - Final branch self-review found one constructor leak path in `StandaloneRunner::new`; the amended head fixes it, and the follow-up review was clean. - Broader workspace validation reached the changed AOT suites; unrelated local environment gaps remain recorded in the workstream (`pre-commit` shim without a real binary on this Mac, and missing `/opt/eda-tools/xlsynth/latest/block_to_verilog_main` for existing ECO tests). # Landing Order This wave-1 consumer now follows the landed public producer handoff: - `xlsynth/xlsynth#8` at `9f60a292e369287f2b8b7be2218dc18dddf23568` - `xlsynth/rules_xlsynth#58` at `d560634e4c292ecac0bc499d17173f8984d75ef5` Final product consumers still wait for the later wave-2 producer chain before repinning. <!-- spr-stack:start --> **Stack**: - #980 - #971 - #968 - ➡ #964⚠️ *Part of a stack created by [spr-multicommit](https://github.com/mattskl-openai/spr-multicommit). Do not merge manually using the UI - doing so may have unexpected results.* <!-- spr-stack:end -->
7e5112e to
1c20fa8
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1c20fa8d24
ℹ️ 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".
1c20fa8 to
801d57b
Compare
meheff
approved these changes
May 19, 2026
801d57b to
fcc7d93
Compare
Read the XLS-owned link manifest in xlsynth-aot-runtime instead of hard-coding platform support libraries in Rust. branch:dank-spr/xlsynth-aot-runtime-link-metadata
Advance the shared required XLS release tag to v0.47.0 now that the public release carries the standalone AOT runtime archive and link TOML.
fcc7d93 to
350c8ef
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Read the XLS-owned runtime link manifest alongside
libxls_aot_runtime.aand turn it into the Cargo link directives for the current target. That removes the Rust-side duplicate of the platform support-library list, so the producer artifact itself stays authoritative about what must be linked.For example, the XLS-owned input can look like:
With that input, macOS builds emit the
c++andCoreFoundationlink directives, while Linux builds emit the Linux support libraries from the manifest. This PR wires that contract through both supported entry paths:XLSYNTH_ARTIFACT_CONFIGnow resolves the runtime archive plusaot_runtime_link_config_path, and direct Cargo users provide the pairedXLS_AOT_RUNTIME_PATH/XLS_AOT_RUNTIME_LINK_CONFIG_PATHvariables.The build script validates the manifest version and target entry, fails clearly when the archive/config pair is incomplete or malformed, and uses the selected target table instead of hard-coded Rust lists. The AOT docs describe the paired-input contract for direct Cargo consumers.
Stack: