Skip to content

aot: carry standalone runtime link metadata#59

Merged
dank-openai merged 1 commit into
mainfrom
dank-spr/rules-xlsynth-aot-runtime-link-metadata
May 20, 2026
Merged

aot: carry standalone runtime link metadata#59
dank-openai merged 1 commit into
mainfrom
dank-spr/rules-xlsynth-aot-runtime-link-metadata

Conversation

@dank-openai

@dank-openai dank-openai commented May 11, 2026

Copy link
Copy Markdown
Collaborator

Before this change, a runtime bundle could effectively say:

Here is the standalone archive.
Figure out the rest of the native link contract elsewhere.

After this change, the bundle says:

Here is the standalone archive.
Here is the producer-authored link manifest that belongs with it.
Consume them together.

Concretely, the generated runtime repo now exports:

  • @<name>_runtime//:xls_aot_runtime
  • @<name>_runtime//:xls_aot_runtime_file
  • @<name>_runtime//:xls_aot_runtime_link_config_file

and the generated xlsynth_artifact_config.toml records both:

aot_runtime_path = "libxls_aot_runtime.a"
aot_runtime_link_config_path = "libxls_aot_runtime_link.toml"

The producer-owned TOML currently looks like this conceptually:

format_version = 1

[targets.macos]
system_libraries = ["c++"]
frameworks = ["CoreFoundation"]

[targets.linux]
system_libraries = ["c++", "c++abi", "unwind", "pthread", "dl"]
frameworks = []

Stack:

⚠️ Part of a stack created by spr-multicommit. Do not merge manually using the UI - doing so may have unexpected results.

@dank-openai dank-openai force-pushed the dank-spr/rules-xlsynth-aot-runtime-link-metadata branch from bfc008b to 7060d35 Compare May 13, 2026 14:59
@dank-openai dank-openai force-pushed the dank/wip/rules-xlsynth-xls-owned-runtime-aot branch from f3011e4 to 1b2b4fe Compare May 13, 2026 14:59
dank-openai added a commit that referenced this pull request May 18, 2026
# Problem Solved
Consumers need a normal bundle surface for the XLS-owned standalone AOT
runtime archive after it is released. They should not need to rediscover
native artifact filenames or special-case local validation paths.

# What Changed
- Teach bundle materialization and download logic about the optional
standalone runtime archive.
- Export the archive through generated runtime repos and artifact config
when a bundle publishes it.
- Keep older non-AOT release bundles usable when they do not contain the
new archive.
- Add self-tests covering artifact resolution and generated runtime
exports.

# Validation
- Existing `rules_xlsynth` self-tests passed for the updated runtime
bundle surface.
- The design was validated in downstream carrier proofs on macOS and
Ubuntu 24.04 with bundles that expose the archive to real AOT consumers.

# Landing Order
Depends on xlsynth/xlsynth#8. This is the bundle-contract handoff
between the XLS producer artifact and downstream public and private
consumers.


<!-- spr-stack:start -->
**Stack**:
-   #59
- ➡ #58

⚠️ *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 -->
Materialize the runtime link manifest with the archive and keep the generated artifact config pair self-contained for downstream consumers.

branch:dank-spr/rules-xlsynth-aot-runtime-link-metadata
@dank-openai dank-openai force-pushed the dank-spr/rules-xlsynth-aot-runtime-link-metadata branch from 7060d35 to d65666b Compare May 18, 2026 21:04
@dank-openai dank-openai changed the base branch from dank/wip/rules-xlsynth-xls-owned-runtime-aot to main May 18, 2026 21:04
@dank-openai dank-openai requested a review from meheff May 19, 2026 03:21
@dank-openai dank-openai reopened this May 20, 2026
@dank-openai dank-openai merged commit 1a4677b into main May 20, 2026
4 of 6 checks passed
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.

2 participants