Skip to content

Inject compiler_builtins during postprocessing rather than via AST #136226

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 3 commits into from

Conversation

tgross35
Copy link
Contributor

@tgross35 tgross35 commented Jan 29, 2025

compiler_builtins is currently injected into the AST as extern crate compiler_builtins as _. This has made gating via diagnostics difficult because it appears in the crate graph as a non-private dependency, and there isn't an easy way to differentiate between the injected AST and user-specified extern crate compiler_builtins.

Resolve this by injecting compiler_builtins during postprocessing rather than early in the AST. Most of the time this isn't even needed because it shows up in std or core's crate graph, but injection is still needed to ensure #![no_core] works correctly.

A similar change was attempted at 1 but this encountered errors building proc_macro and rustc-std-workspace-std. Similar failures showed up while working on this patch, which were traced back to compiler_builtins showing up in the graph twice (once via dependency and once via injection). This is resolved by not injecting if a #![compiler_builtins] crate already exists.

This PR is a smaller subset of changes, split from #135501. #135501 builds on this to resolve a couple remaining privacy issues and actually do the update that has been troublesome.

try-job: aarch64-gnu
try-job: dist-x86_64-linux
try-job: i686-mingw
try-job: x86_64-gnu-distcheck
try-job: x86_64-msvc-1
try-job: x86_64-rust-for-linux
try-job: test-various

@rustbot
Copy link
Collaborator

rustbot commented Jan 29, 2025

r? @petrochenkov

rustbot has assigned @petrochenkov.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Jan 29, 2025
@tgross35 tgross35 changed the title [experiment] Inject compiler_builtins directly rather than in AST [wip Inject compiler_builtins directly rather than in AST Jan 29, 2025
@tgross35 tgross35 changed the title [wip Inject compiler_builtins directly rather than in AST [wip] Inject compiler_builtins directly rather than in AST Jan 29, 2025
@rust-log-analyzer

This comment has been minimized.

@rust-cloud-vms rust-cloud-vms bot force-pushed the builtins-is-private-dep branch from 00390e8 to 4bd1a8c Compare January 29, 2025 05:03
@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@tgross35
Copy link
Contributor Author

tgross35 commented Jan 29, 2025

The current bug is that compiler_builtins depends on rustc_std_workspace_core, which for some reason is resolving its dependency core with a different cnum than the first time core was loaded. I think this is the same behavior @Amanieu was running into at #113634 (comment).

 INFO rustc_metadata::creader POSTPROCESS
 INFO rustc_metadata::creader resolving crate `compiler_builtins`
 INFO rustc_metadata::creader falling back to a load
 INFO rustc_metadata::creader register newly loaded library for `compiler_builtins`
 INFO rustc_metadata::creader register crate `compiler_builtins` (cnum = 14. private_dep = true)
 INFO rustc_metadata::creader resolving dep `compiler_builtins`->`rustc_std_workspace_core` hash: `f67002fa0554298ad26d2bf8107374d1` extra filename: `-0f3268257eb1faf9`
 INFO rustc_metadata::creader resolving crate `rustc_std_workspace_core`
 INFO rustc_metadata::creader falling back to a load
 INFO rustc_metadata::creader register newly loaded library for `rustc_std_workspace_core`
 INFO rustc_metadata::creader register crate `rustc_std_workspace_core` (cnum = 15. private_dep = false)
 INFO rustc_metadata::creader resolving dep `rustc_std_workspace_core`->`core` hash: `fc48f0a1c1d99c8755223ff791e4cabc` extra filename: `-af66f1d2fa6253c2`
 INFO rustc_metadata::creader resolving crate `core`
 INFO rustc_metadata::creader falling back to a load
 INFO rustc_metadata::creader register newly loaded library for `core`
 INFO rustc_metadata::creader returning false for core is private
 INFO rustc_metadata::creader register crate `core` (cnum = 16. private_dep = false)
 INFO rustc_metadata::creader resolving dep `compiler_builtins`->`core` hash: `fc48f0a1c1d99c8755223ff791e4cabc` extra filename: `-af66f1d2fa6253c2`
 INFO rustc_metadata::creader resolving crate `core`
 INFO rustc_metadata::creader library for `core` was loaded previously, cnum 16
 INFO rustc_metadata::creader returning false for core is private
 INFO rustc_metadata::creader panic runtime injection skipped, only generating rlib

@tgross35
Copy link
Contributor Author

tgross35 commented Jan 29, 2025

Actually it looks like compiler_builtins is getting loaded twice, once as a dependency of std and once via injection, which gives it two different hashes. Going to try skipping injection if it is already in the graph.

edit: trying that here #136234

@petrochenkov petrochenkov self-assigned this Jan 29, 2025
@petrochenkov petrochenkov added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jan 29, 2025
@tgross35 tgross35 force-pushed the builtins-is-private-dep branch from f1db482 to 2a7db56 Compare January 29, 2025 23:39
@tgross35
Copy link
Contributor Author

@bors try

bors added a commit to rust-lang-ci/rust that referenced this pull request Jan 29, 2025
…<try>

[wip] Inject `compiler_builtins` directly rather than in AST

try-job: test-various
try-job: x86_64-msvc
@bors

This comment was marked as outdated.

Introduce an enum that represents the different possible sources for
dependencies, and use them where possible. This will enable more fine
grained control and provides better context than passing the `dep_root`
tuple.

Use this to ensure that injected crates always show up as private by
default.
@rust-log-analyzer

This comment has been minimized.

I had to do a lot of debug by printing; having these `Debug` traits in
place made it easier. Additionally, add some more information to
existing `info!` statements.
@tgross35 tgross35 force-pushed the builtins-is-private-dep branch from 2a7db56 to 081741b Compare January 30, 2025 00:07
@tgross35
Copy link
Contributor Author

@bors try

@tgross35 tgross35 changed the title [wip] Inject compiler_builtins directly rather than in AST Inject compiler_builtins during postprocessing rather than via AST Jan 30, 2025
@bors
Copy link
Collaborator

bors commented Jan 30, 2025

⌛ Trying commit 55facbb with merge a3ee377...

bors added a commit to rust-lang-ci/rust that referenced this pull request Jan 30, 2025
…<try>

Inject `compiler_builtins` during postprocessing rather than via AST

`compiler_builtins` is currently injected into the AST as `extern crate compiler_builtins as _`. This has made gating via diagnostics difficult because it appears in the crate graph as a non-private dependency, and there isn't an easy way to differentiate between the injected AST and user-specified `extern crate compiler_builtins`.

Resolve this by injecting `compiler_builtins` during postprocessing rather than early in the AST. Most of the time this isn't even needed because it shows up in `std` or `core`'s crate graph, but injection is still needed to ensure `#![no_core]` works correctly.

A similar change was attempted at [1] but this encountered errors building `proc_macro` and `rustc-std-workspace-std`. Similar failures showed up while working on this patch, which were traced back to `compiler_builtins` showing up in the graph twice (once via dependency and once via injection). This is resolved by not injecting if a `#![compiler_builtins]` crate already exists.

[1]: rust-lang#113634

try-job: dist-x86_64-linux
try-job: x86_64-gnu-distcheck
try-job: x86_64-msvc-1
try-job: x86_64-rust-for-linux
try-job: test-various
bors added a commit to rust-lang-ci/rust that referenced this pull request Jan 30, 2025
…, r=<try>

Resolve `compiler_builtins` not being treated as private; clean up rust-lang#135278

Follow up of rust-lang#135278

Do the following (one per commit):

* Do not make dependencies of `std` private by default
* Update remaining sysroot crates to use `public-dependencies`
* Force `compiler_builtins` to be private, since it is an injected `extern crate`
* Ensure that marking a dependency private makes its dependents private by default as well
* Do the `compiler_builtins` update that has been blocked on this

Based on top of rust-lang#136226 so there are a few preceding commits.

try-job: test-various
try-job: x86_64-msvc-1
@rust-log-analyzer

This comment has been minimized.

@bors
Copy link
Collaborator

bors commented Jan 30, 2025

💔 Test failed - checks-actions

@tgross35
Copy link
Contributor Author

...so close.

All of the failed tests build staticlibs, postprocessing must not run with that option.

`compiler_builtins` is currently injected as `extern crate
compiler_builtins as _`. This has made gating via diagnostics difficult
because it appears in the crate graph as a non-private dependency, and
there isn't an easy way to differentiate between the injected AST and
user-specified `extern crate compiler_builtins`.

Resolve this by injecting `compiler_builtins` during postprocessing
rather than early in the AST. Most of the time this isn't even needed
because it shows up in `std` or `core`'s crate graph, but injection is
still needed to ensure `#![no_core]` works correctly.

A similar change was attempted at [1] but this encountered errors
building `proc_macro` and `rustc-std-workspace-std`. Similar failures
showed up while working on this patch, which were traced back to
`compiler_builtins` showing up in the graph twice (once via dependency
and once via injection). This is resolved by not injecting if a
`#![compiler_builtins]` crate already exists.

[1]: rust-lang#113634
@tgross35 tgross35 force-pushed the builtins-is-private-dep branch from 42661ed to 0112499 Compare January 30, 2025 08:30
@tgross35
Copy link
Contributor Author

It looks like Implicit means it doesn't get linked in static libs

// All crates are available in an rlib format, so we're just going to link
// everything in explicitly so long as it's actually required.
let mut ret = IndexVec::new();
assert_eq!(ret.push(Linkage::Static), LOCAL_CRATE);
for &cnum in tcx.crates(()) {
assert_eq!(
ret.push(match tcx.dep_kind(cnum) {
CrateDepKind::Explicit => Linkage::Static,
CrateDepKind::MacrosOnly | CrateDepKind::Implicit => Linkage::NotLinked,
}),
cnum
);
}
. Trying again with implicit -> explicit.

@bors try

@bors
Copy link
Collaborator

bors commented Jan 30, 2025

⌛ Trying commit 0112499 with merge 9bd0b76...

bors added a commit to rust-lang-ci/rust that referenced this pull request Jan 30, 2025
…<try>

Inject `compiler_builtins` during postprocessing rather than via AST

`compiler_builtins` is currently injected into the AST as `extern crate compiler_builtins as _`. This has made gating via diagnostics difficult because it appears in the crate graph as a non-private dependency, and there isn't an easy way to differentiate between the injected AST and user-specified `extern crate compiler_builtins`.

Resolve this by injecting `compiler_builtins` during postprocessing rather than early in the AST. Most of the time this isn't even needed because it shows up in `std` or `core`'s crate graph, but injection is still needed to ensure `#![no_core]` works correctly.

A similar change was attempted at [1] but this encountered errors building `proc_macro` and `rustc-std-workspace-std`. Similar failures showed up while working on this patch, which were traced back to `compiler_builtins` showing up in the graph twice (once via dependency and once via injection). This is resolved by not injecting if a `#![compiler_builtins]` crate already exists.

This PR is a smaller subset of changes, split from rust-lang#135501. rust-lang#135501 builds on this to resolve a couple remaining privacy issues and actually do the update that has been troublesome.

[1]: rust-lang#113634

try-job: aarch64-gnu
try-job: dist-x86_64-linux
try-job: i686-mingw
try-job: x86_64-gnu-distcheck
try-job: x86_64-msvc-1
try-job: x86_64-rust-for-linux
try-job: test-various
bors added a commit to rust-lang-ci/rust that referenced this pull request Jan 30, 2025
…, r=<try>

Resolve `compiler_builtins` not being treated as private; clean up rust-lang#135278

Follow up of rust-lang#135278

Do the following (one per commit):

* Do not make dependencies of `std` private by default
* Update remaining sysroot crates to use `public-dependencies`
* Ensure that marking a dependency private makes its dependents private by default as well
* Do the `compiler_builtins` update that has been blocked on this

Based on top of rust-lang#136226 so there are a few preceding commits.

try-job: test-various
try-job: x86_64-msvc-1
@bors
Copy link
Collaborator

bors commented Jan 30, 2025

☀️ Try build successful - checks-actions
Build commit: 9bd0b76 (9bd0b76dacf5bdb1e1667d010cfd6e26268dcc36)

@tgross35
Copy link
Contributor Author

#135501 includes this PR plus the couple of remaining changes to make the update actually work. Since the difference between the two is reasonably small, I am going to close this PR in favor of that one (fyi @petrochenkov if you were planning to review).

@tgross35 tgross35 closed this Jan 30, 2025
@tgross35 tgross35 deleted the builtins-is-private-dep branch January 31, 2025 21:20
bors added a commit to rust-lang-ci/rust that referenced this pull request Feb 20, 2025
…, r=<try>

Inject `compiler_builtins` during postprocessing and ensure it is made private

Follow up of rust-lang#135278

Do the following:

* Inject `compiler_builtins` during postprocessing, rather than injecting `extern crate compiler_builtins as _` into the AST
* Do not make dependencies of `std` private by default (this was added in rust-lang#135278)
* Make sure sysroot crates correctly mark their dependencies private/public
* Ensure that marking a dependency private makes its dependents private by default as well, unless otherwise specified
* Do the `compiler_builtins` update that has been blocked on this

There is more detail in the commit messages. This includes the changes I was working on in rust-lang#136226.

try-job: test-various
try-job: x86_64-msvc-1
try-job: x86_64-msvc-2
try-job: i686-mingw
bors added a commit to rust-lang-ci/rust that referenced this pull request Feb 20, 2025
…, r=<try>

Inject `compiler_builtins` during postprocessing and ensure it is made private

Follow up of rust-lang#135278

Do the following:

* Inject `compiler_builtins` during postprocessing, rather than injecting `extern crate compiler_builtins as _` into the AST
* Do not make dependencies of `std` private by default (this was added in rust-lang#135278)
* Make sure sysroot crates correctly mark their dependencies private/public
* Ensure that marking a dependency private makes its dependents private by default as well, unless otherwise specified
* Do the `compiler_builtins` update that has been blocked on this

There is more detail in the commit messages. This includes the changes I was working on in rust-lang#136226.

try-job: test-various
try-job: x86_64-msvc-1
try-job: x86_64-msvc-2
try-job: i686-mingw-1
try-job: i686-mingw-2
try-job: i686-mingw-3
bors added a commit to rust-lang-ci/rust that referenced this pull request Feb 20, 2025
…, r=<try>

Inject `compiler_builtins` during postprocessing and ensure it is made private

Follow up of rust-lang#135278

Do the following:

* Inject `compiler_builtins` during postprocessing, rather than injecting `extern crate compiler_builtins as _` into the AST
* Do not make dependencies of `std` private by default (this was added in rust-lang#135278)
* Make sure sysroot crates correctly mark their dependencies private/public
* Ensure that marking a dependency private makes its dependents private by default as well, unless otherwise specified
* Do the `compiler_builtins` update that has been blocked on this

There is more detail in the commit messages. This includes the changes I was working on in rust-lang#136226.

try-job: test-various
try-job: x86_64-msvc-1
try-job: x86_64-msvc-2
try-job: i686-mingw-1
try-job: i686-mingw-2
bors added a commit to rust-lang-ci/rust that referenced this pull request Feb 20, 2025
…, r=<try>

Inject `compiler_builtins` during postprocessing and ensure it is made private

Follow up of rust-lang#135278

Do the following:

* Inject `compiler_builtins` during postprocessing, rather than injecting `extern crate compiler_builtins as _` into the AST
* Do not make dependencies of `std` private by default (this was added in rust-lang#135278)
* Make sure sysroot crates correctly mark their dependencies private/public
* Ensure that marking a dependency private makes its dependents private by default as well, unless otherwise specified
* Do the `compiler_builtins` update that has been blocked on this

There is more detail in the commit messages. This includes the changes I was working on in rust-lang#136226.

try-job: test-various
try-job: x86_64-msvc-1
try-job: x86_64-msvc-2
try-job: i686-mingw-1
try-job: i686-mingw-2
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Feb 22, 2025
…te, r=bjorn3

Inject `compiler_builtins` during postprocessing and ensure it is made private

Follow up of rust-lang#135278

Do the following:

* Inject `compiler_builtins` during postprocessing, rather than injecting `extern crate compiler_builtins as _` into the AST
* Do not make dependencies of `std` private by default (this was added in rust-lang#135278)
* Make sure sysroot crates correctly mark their dependencies private/public
* Ensure that marking a dependency private makes its dependents private by default as well, unless otherwise specified
* Do the `compiler_builtins` update that has been blocked on this

There is more detail in the commit messages. This includes the changes I was working on in rust-lang#136226.

try-job: test-various
try-job: x86_64-msvc-1
try-job: x86_64-msvc-2
try-job: i686-mingw-1
try-job: i686-mingw-2
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Feb 22, 2025
…te, r=bjorn3

Inject `compiler_builtins` during postprocessing and ensure it is made private

Follow up of rust-lang#135278

Do the following:

* Inject `compiler_builtins` during postprocessing, rather than injecting `extern crate compiler_builtins as _` into the AST
* Do not make dependencies of `std` private by default (this was added in rust-lang#135278)
* Make sure sysroot crates correctly mark their dependencies private/public
* Ensure that marking a dependency private makes its dependents private by default as well, unless otherwise specified
* Do the `compiler_builtins` update that has been blocked on this

There is more detail in the commit messages. This includes the changes I was working on in rust-lang#136226.

try-job: test-various
try-job: x86_64-msvc-1
try-job: x86_64-msvc-2
try-job: i686-mingw-1
try-job: i686-mingw-2
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Feb 22, 2025
…te, r=bjorn3

Inject `compiler_builtins` during postprocessing and ensure it is made private

Follow up of rust-lang#135278

Do the following:

* Inject `compiler_builtins` during postprocessing, rather than injecting `extern crate compiler_builtins as _` into the AST
* Do not make dependencies of `std` private by default (this was added in rust-lang#135278)
* Make sure sysroot crates correctly mark their dependencies private/public
* Ensure that marking a dependency private makes its dependents private by default as well, unless otherwise specified
* Do the `compiler_builtins` update that has been blocked on this

There is more detail in the commit messages. This includes the changes I was working on in rust-lang#136226.

try-job: test-various
try-job: x86_64-msvc-1
try-job: x86_64-msvc-2
try-job: i686-mingw-1
try-job: i686-mingw-2
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Feb 22, 2025
…te, r=bjorn3

Inject `compiler_builtins` during postprocessing and ensure it is made private

Follow up of rust-lang#135278

Do the following:

* Inject `compiler_builtins` during postprocessing, rather than injecting `extern crate compiler_builtins as _` into the AST
* Do not make dependencies of `std` private by default (this was added in rust-lang#135278)
* Make sure sysroot crates correctly mark their dependencies private/public
* Ensure that marking a dependency private makes its dependents private by default as well, unless otherwise specified
* Do the `compiler_builtins` update that has been blocked on this

There is more detail in the commit messages. This includes the changes I was working on in rust-lang#136226.

try-job: test-various
try-job: x86_64-msvc-1
try-job: x86_64-msvc-2
try-job: i686-mingw-1
try-job: i686-mingw-2
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Feb 23, 2025
Rollup merge of rust-lang#135501 - tgross35:stdlib-dependencies-private, r=bjorn3

Inject `compiler_builtins` during postprocessing and ensure it is made private

Follow up of rust-lang#135278

Do the following:

* Inject `compiler_builtins` during postprocessing, rather than injecting `extern crate compiler_builtins as _` into the AST
* Do not make dependencies of `std` private by default (this was added in rust-lang#135278)
* Make sure sysroot crates correctly mark their dependencies private/public
* Ensure that marking a dependency private makes its dependents private by default as well, unless otherwise specified
* Do the `compiler_builtins` update that has been blocked on this

There is more detail in the commit messages. This includes the changes I was working on in rust-lang#136226.

try-job: test-various
try-job: x86_64-msvc-1
try-job: x86_64-msvc-2
try-job: i686-mingw-1
try-job: i686-mingw-2
RalfJung pushed a commit to RalfJung/miri that referenced this pull request Feb 24, 2025
Inject `compiler_builtins` during postprocessing and ensure it is made private

Follow up of rust-lang/rust#135278

Do the following:

* Inject `compiler_builtins` during postprocessing, rather than injecting `extern crate compiler_builtins as _` into the AST
* Do not make dependencies of `std` private by default (this was added in #135278)
* Make sure sysroot crates correctly mark their dependencies private/public
* Ensure that marking a dependency private makes its dependents private by default as well, unless otherwise specified
* Do the `compiler_builtins` update that has been blocked on this

There is more detail in the commit messages. This includes the changes I was working on in rust-lang/rust#136226.

try-job: test-various
try-job: x86_64-msvc-1
try-job: x86_64-msvc-2
try-job: i686-mingw-1
try-job: i686-mingw-2
github-merge-queue bot pushed a commit to rust-lang/rust-analyzer that referenced this pull request Feb 24, 2025
Inject `compiler_builtins` during postprocessing and ensure it is made private

Follow up of rust-lang/rust#135278

Do the following:

* Inject `compiler_builtins` during postprocessing, rather than injecting `extern crate compiler_builtins as _` into the AST
* Do not make dependencies of `std` private by default (this was added in #135278)
* Make sure sysroot crates correctly mark their dependencies private/public
* Ensure that marking a dependency private makes its dependents private by default as well, unless otherwise specified
* Do the `compiler_builtins` update that has been blocked on this

There is more detail in the commit messages. This includes the changes I was working on in rust-lang/rust#136226.

try-job: test-various
try-job: x86_64-msvc-1
try-job: x86_64-msvc-2
try-job: i686-mingw-1
try-job: i686-mingw-2
bjorn3 pushed a commit to rust-lang/rustc_codegen_cranelift that referenced this pull request Feb 24, 2025
Inject `compiler_builtins` during postprocessing and ensure it is made private

Follow up of rust-lang/rust#135278

Do the following:

* Inject `compiler_builtins` during postprocessing, rather than injecting `extern crate compiler_builtins as _` into the AST
* Do not make dependencies of `std` private by default (this was added in #135278)
* Make sure sysroot crates correctly mark their dependencies private/public
* Ensure that marking a dependency private makes its dependents private by default as well, unless otherwise specified
* Do the `compiler_builtins` update that has been blocked on this

There is more detail in the commit messages. This includes the changes I was working on in rust-lang/rust#136226.

try-job: test-various
try-job: x86_64-msvc-1
try-job: x86_64-msvc-2
try-job: i686-mingw-1
try-job: i686-mingw-2
github-actions bot pushed a commit to tautschnig/verify-rust-std that referenced this pull request Mar 11, 2025
…te, r=bjorn3

Inject `compiler_builtins` during postprocessing and ensure it is made private

Follow up of rust-lang#135278

Do the following:

* Inject `compiler_builtins` during postprocessing, rather than injecting `extern crate compiler_builtins as _` into the AST
* Do not make dependencies of `std` private by default (this was added in rust-lang#135278)
* Make sure sysroot crates correctly mark their dependencies private/public
* Ensure that marking a dependency private makes its dependents private by default as well, unless otherwise specified
* Do the `compiler_builtins` update that has been blocked on this

There is more detail in the commit messages. This includes the changes I was working on in rust-lang#136226.

try-job: test-various
try-job: x86_64-msvc-1
try-job: x86_64-msvc-2
try-job: i686-mingw-1
try-job: i686-mingw-2
github-actions bot pushed a commit to tautschnig/verify-rust-std that referenced this pull request Mar 11, 2025
…te, r=bjorn3

Inject `compiler_builtins` during postprocessing and ensure it is made private

Follow up of rust-lang#135278

Do the following:

* Inject `compiler_builtins` during postprocessing, rather than injecting `extern crate compiler_builtins as _` into the AST
* Do not make dependencies of `std` private by default (this was added in rust-lang#135278)
* Make sure sysroot crates correctly mark their dependencies private/public
* Ensure that marking a dependency private makes its dependents private by default as well, unless otherwise specified
* Do the `compiler_builtins` update that has been blocked on this

There is more detail in the commit messages. This includes the changes I was working on in rust-lang#136226.

try-job: test-various
try-job: x86_64-msvc-1
try-job: x86_64-msvc-2
try-job: i686-mingw-1
try-job: i686-mingw-2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
rla-silenced Silences rust-log-analyzer postings to the PR it's added on. S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants