Skip to content

Take #2 on normalizing rs_std/cc_std.#1410

Open
copybara-service[bot] wants to merge 1 commit into
mainfrom
test_946771812
Open

Take #2 on normalizing rs_std/cc_std.#1410
copybara-service[bot] wants to merge 1 commit into
mainfrom
test_946771812

Conversation

@copybara-service

Copy link
Copy Markdown

Take #2 on normalizing rs_std/cc_std.

If we move the logic to another library, which is deployed with the release, then both cc_std and rs_std can live at head. Any version-specific stuff can be done by depending on that other library. (I don't really know why I didn't think of this earlier.)

In Rust's case, this has to be a bazel library, with build-time feature flags. (This would avoid the surprising cc_std/cc_std_impl split.)

In C++'s case, it's a header with some defines you can #ifdef on. (Could also reuse existing headers in bindings_support, but this might be less discoverable in the moment.) Could also use defines, but it's a bit of a heavy hammer, as it affects all transitive rdeps whether they include this transitively or only depend on it without including it (due to e.g. hourglass deps).

This doesn't actually do anything, would need to wait for a crosstool release before we can migrate cc_std and rs_std. But I think after this, we could have everything except support/internal live at head, unless I am missing something.

If we move the logic to another library, which is deployed with the release, then both `cc_std` and `rs_std` can live at head. Any version-specific stuff can be done by depending on that other library. (I don't really know why I didn't think of this earlier.)

In Rust's case, this has to be a bazel library, with build-time feature flags. (This would avoid the surprising cc_std/cc_std_impl split.)

In C++'s case, it's a header with some defines you can `#ifdef` on. (Could also reuse existing headers in bindings_support, but this might be less discoverable in the moment.) Could also use `defines`, but it's a bit of a heavy hammer, as it affects all transitive rdeps whether they include this transitively or only depend on it without including it (due to e.g. hourglass deps).

This doesn't actually do anything, would need to wait for a crosstool release before we can migrate cc_std and rs_std. But I think after this, we could have everything except support/internal live at head, unless I am missing something.

PiperOrigin-RevId: 946771812
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