Repository navigation
Conversation
….2.2 Add two writers next to build_host_anchor_object_for_target: * build_host_strong_anchor_object_for_target defines the artifact link anchor as a strong global symbol in the anchor section, with no .oxart payload. * build_host_strong_anchor_object_for_target_with_legacy_anchor does the same with a weak legacy alias, matching the symbol bindings of build_host_object_for_target_with_legacy_anchor for full embeds. The existing weak anchor-only writer is unchanged; both share one helper that takes the binding strength. The backend needs these for issue 1365: a selected library whose cuda_module only has generic kernels it does not monomorphize still gets the anchor keep-alive reference from the macro, so it must define the anchor without embedding a bundle (PR 1372). The API is additive, so this is a patch bump. Per check-oxide-artifacts-parity.sh the release then gets published and the SIMT and backend requirements move to 0.2.2 with a relock. Tests: two new object tests check the strong binding, the weak legacy alias, and that discovery still finds no artifact bundle. Signed-off-by: Dundy Pasupuleti <dundysm@gmail.com>
5 of 7 tasks
This branch has not been deployed
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.
Summary
Adds the strong anchor-only writers that #1372 needs and bumps
oxide-artifactsto 0.2.2, so the backend change in #1372 can consume them from crates.io.The backend builds against the crates.io release, not the in-tree crate. #1372 called these functions directly, so it could not compile against 0.2.1. This splits the release part out, following the order in
check-oxide-artifacts-parity.sh: bump, publish, then repoint and relock.Change
build_host_strong_anchor_object_for_target(target, anchor): an anchor-only host object whose anchor is a strong global definition, the same binding a full.oxartembed gives it. There is no.oxartpayload, so discovery finds no bundle.build_host_strong_anchor_object_for_target_with_legacy_anchor(target, anchor, legacy): the same, plus a weak legacy alias. This matches the bindings ofbuild_host_object_for_target_with_legacy_anchor.build_host_anchor_object_for_targetis unchanged (still weak). All three share one private helper that takes the binding strength.version = "0.2.2". The API is additive, so it is a patch bump.cuda-oxide/Cargo.lockonly picks up the member's new version.Why the backend needs it (#1365): a selected library whose
#[cuda_module]only has generic kernels it does not monomorphize still gets the anchor keep-alive reference from the macro. The backend has to define that anchor without embedding a bundle, and with the same strong binding as a full embed, so archive member extraction behaves the same.Release steps
oxide-artifacts release paritywill report that the in-tree version (0.2.2) is ahead of the manifests and locks (0.2.1). That is the expected state between bump and publish.oxide-artifacts 0.2.2from this head (cargo publish -p oxide-artifacts@0.2.2fromcuda-oxide/; the dry run packages cleanly).cuda-oxide/Cargo.tomlandcuda-oxide/crates/rustc-codegen-cuda/Cargo.tomland relocks every lock withscripts/sync-example-locks.sh, so the parity guard is green before merge. If you prefer to relock yourselves, that works too.Test plan
cargo test -p oxide-artifacts --all-targets --features object(24 passed, 2 new)cargo clippy -p oxide-artifacts@0.2.2 --all-targets -- -D warnings, with and without--features objectcargo fmt --all -- --checkRUSTDOCFLAGS="-D warnings" cargo doc -p oxide-artifacts@0.2.2 --no-deps --features objectcargo publish --dry-run -p oxide-artifacts@0.2.2cargo deny checkfor the host, SIMT, and backend workspaces, pluscheck-example-license-policy.shcuda-oxide/scripts/check-*.shpass; parity fails as described aboverustc-codegen-cuda) passescargo check,cargo clippy --all-targets -- -D warnings, andcargo testagainst this crate via a local[patch.crates-io]Reviewers
cc @nihalpasham (published 0.2.1) @xavierforge (#72 anchor and embedding owners, same as #1372)