bootstrap: Allow building individual crates by jyn514 · Pull Request #95503 · rust-lang/rust (original) (raw)
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 andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Conversation43 Commits3 Checks0 Files changed
Conversation
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
[ Show hidden characters]({{ revealButtonHref }})
This aims to be as unintrusive as possible, but did still require adding a new tail_args
field to all Rustc
and Std
steps.
New library and compiler crates are added to the sysroot as they are built, since it's useful to have e.g. just alloc and not std.
Fixes #44293.
(rust-highfive has picked a reviewer for you, use r? to override)
@rustbot label -S-waiting-on-review +S-block
@rustbot label: -S-waiting-on-review +S-blocked
Status: Blocked on something else such as an RFC or other implementation work.
and removed S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
labels
jyn514 marked this pull request as draft
jyn514 added a commit to jyn514/rust that referenced this pull request
While working on rust-lang#95503,
I realized that this will interfere with existing command lines:
Currently people run x build library/std
expecting it to be added to the sysroot,
but after that change, it will only build libstd
without making it available
for the toolchain.
It's debatable whether that's a breaking change that will be accepted; if so, this PR is absolutely
necessary to make sure there's a command for "build the standard library and add it to the sysroot".
Even if not, though, I think x build library
is more clear about what actually happens than the
current x build library/std
.
For consistency, also add support for compiler
and all other command variants. Note that doc compiler
was already supported, so in a sense this is just fixing an existing inconsistency.
I plan to change the dev-guide and various instructions in the README to build library
once this is merged.
This comment has been minimized.
@rustbot label -S-blocked +S-waiting-on-author
rustbot added S-waiting-on-author
Status: This is awaiting some action (such as code changes or more information) from the author.
and removed S-blocked
Status: Blocked on something else such as an RFC or other implementation work.
labels
jyn514 changed the title
[blocked] Allow building individual crates bootstrap: Allow building individual crates
jyn514 marked this pull request as ready for review
rustbot added S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
and removed S-waiting-on-author
Status: This is awaiting some action (such as code changes or more information) from the author.
labels
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
jyn514 added S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
and removed S-waiting-on-author
Status: This is awaiting some action (such as code changes or more information) from the author.
labels
This makes it much simpler to add new interned types, rather than having to add 4+ impl blocks for each type.
- Add
Interned<Vec<String>>
and use it for tail args - Refactor
cache.rs
not to need a separate impl for each internable type
jyn514 added S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
and removed S-waiting-on-author
Status: This is awaiting some action (such as code changes or more information) from the author.
labels
📌 Commit d0011b0 has been approved by Mark-Simulacrum
bors added S-waiting-on-bors
Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
and removed S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
labels
bors added a commit to rust-lang-ci/rust that referenced this pull request
…laumeGomez
Rollup of 6 pull requests
Successful merges:
- rust-lang#95503 (bootstrap: Allow building individual crates)
- rust-lang#96814 (Fix repr(align) enum handling)
- rust-lang#98256 (Fix whitespace handling after where clause)
- rust-lang#98880 (Proper macOS libLLVM symlink when cross compiling)
- rust-lang#98944 (Edit
rustc_mir_dataflow::framework::lattice::FlatSet
docs) - rust-lang#98951 (Update books)
Failed merges:
r? @ghost
@rustbot
modify labels: rollup
krasimirgg added a commit to krasimirgg/rust that referenced this pull request
…r=Mark-Simulacrum"
This reverts commit 0a7f2c3, reversing changes made to 41ad4d9.
jyn514 added a commit to jyn514/rustc-dev-guide that referenced this pull request
Since rust-lang/rust#95503, library/std
means
"build just std and its dependencies"; to get the old behavior that built
proc_macro
and test
, you need x build library
.
- Update
library/std
tolibrary
- Remove the
-i
suggestions;incremental = true
is already the default for most profiles, in which case-i
does nothing. If you don't have incremental enabled, I still think suggesting-i
is bad idea, because it's easy to forget once, at which point you'll end up rebuilding the whole compiler / standard library. - Remove a few repetitive sections and don't discuss incremental in such detail Incremental works well enough that it should "just work" for most people; I don't think it needs multiple paragraphs of explanation so early in the guide.
- Clarify that
test library/std
only tests libstd in a few places
tshepang pushed a commit to rust-lang/rustc-dev-guide that referenced this pull request
Since rust-lang/rust#95503, library/std
means
"build just std and its dependencies"; to get the old behavior that built
proc_macro
and test
, you need x build library
.
- Update
library/std
tolibrary
- Remove the
-i
suggestions;incremental = true
is already the default for most profiles, in which case-i
does nothing. If you don't have incremental enabled, I still think suggesting-i
is bad idea, because it's easy to forget once, at which point you'll end up rebuilding the whole compiler / standard library. - Remove a few repetitive sections and don't discuss incremental in such detail Incremental works well enough that it should "just work" for most people; I don't think it needs multiple paragraphs of explanation so early in the guide.
- Clarify that
test library/std
only tests libstd in a few places
jyn514 deleted the build-single-crate branch
Kobzol pushed a commit to Kobzol/rust that referenced this pull request
Since rust-lang#95503, library/std
means
"build just std and its dependencies"; to get the old behavior that built
proc_macro
and test
, you need x build library
.
- Update
library/std
tolibrary
- Remove the
-i
suggestions;incremental = true
is already the default for most profiles, in which case-i
does nothing. If you don't have incremental enabled, I still think suggesting-i
is bad idea, because it's easy to forget once, at which point you'll end up rebuilding the whole compiler / standard library. - Remove a few repetitive sections and don't discuss incremental in such detail Incremental works well enough that it should "just work" for most people; I don't think it needs multiple paragraphs of explanation so early in the guide.
- Clarify that
test library/std
only tests libstd in a few places
bors pushed a commit to rust-lang-ci/rust that referenced this pull request
Since rust-lang#95503, library/std
means
"build just std and its dependencies"; to get the old behavior that built
proc_macro
and test
, you need x build library
.
- Update
library/std
tolibrary
- Remove the
-i
suggestions;incremental = true
is already the default for most profiles, in which case-i
does nothing. If you don't have incremental enabled, I still think suggesting-i
is bad idea, because it's easy to forget once, at which point you'll end up rebuilding the whole compiler / standard library. - Remove a few repetitive sections and don't discuss incremental in such detail Incremental works well enough that it should "just work" for most people; I don't think it needs multiple paragraphs of explanation so early in the guide.
- Clarify that
test library/std
only tests libstd in a few places
Kobzol pushed a commit to Kobzol/rustc-dev-guide that referenced this pull request
Since rust-lang/rust#95503, library/std
means
"build just std and its dependencies"; to get the old behavior that built
proc_macro
and test
, you need x build library
.
- Update
library/std
tolibrary
- Remove the
-i
suggestions;incremental = true
is already the default for most profiles, in which case-i
does nothing. If you don't have incremental enabled, I still think suggesting-i
is bad idea, because it's easy to forget once, at which point you'll end up rebuilding the whole compiler / standard library. - Remove a few repetitive sections and don't discuss incremental in such detail Incremental works well enough that it should "just work" for most people; I don't think it needs multiple paragraphs of explanation so early in the guide.
- Clarify that
test library/std
only tests libstd in a few places
Labels
Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)
Relevant to the infrastructure team, which will review and decide on the PR/issue.