Skip to content
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

dump bootstrap shims #118647

Merged
merged 3 commits into from
Dec 11, 2023
Merged

dump bootstrap shims #118647

merged 3 commits into from
Dec 11, 2023

Conversation

onur-ozkan
Copy link
Member

@onur-ozkan onur-ozkan commented Dec 5, 2023

When making changes to the bootstrap that shouldn't change its behavior, this feature will help developers perform comparisons to check whether the bootstrap behavior has changed or not. As an example, when removing Python from the bootstrap by migrating to Rust, this feature will be super useful for ensuring that the behavior remains unaffected. It will assist me in performing comparisons to verify that the bootstrap behavior and its outputs remains consistent throughout the migration process.

This can also be used for different purposes. For example, allowing CI to dump the shims and upload them so that developers can download them and compare with their local dump to see if CI affects the bootstrap unexpectedly. Or, make CI perform comparisons on specific bootstrap tests to check for behavior changes between the master and PR branches.

@rustbot
Copy link
Collaborator

rustbot commented Dec 5, 2023

r? @clubby789

(rustbot has picked a reviewer for you, use r? to override)

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) labels Dec 5, 2023
@onur-ozkan onur-ozkan removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Dec 5, 2023
@bors
Copy link
Contributor

bors commented Dec 10, 2023

☔ The latest upstream changes (presumably #118069) made this pull request unmergeable. Please resolve the merge conflicts.

@bors bors added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Dec 10, 2023
When making changes to the bootstrap that shouldn't change its behavior,
this feature will help developers perform comparisons to check whether the
bootstrap behavior has changed or not.

This can also be used for different purposes. For example, allowing CI to
dump the shims and upload them so that developers can download them and compare
with their local dump to see if CI affects the bootstrap unexpectedly. Or, make CI
perform comparisons on specific bootstrap tests to check for behavior changes between
the master and PR branches.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
Signed-off-by: onur-ozkan <work@onurozkan.dev>
To ensure deterministic results we must sort the dump lines.
This is necessary because the order of rustc invocations different
almost all the time.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
@onur-ozkan onur-ozkan marked this pull request as ready for review December 11, 2023 11:26
@rustbot
Copy link
Collaborator

rustbot commented Dec 11, 2023

This PR modifies src/bootstrap/src/core/config.

If appropriate, please update CONFIG_CHANGE_HISTORY in src/bootstrap/src/utils/change_tracker.rs and change-id in config.example.toml.

@onur-ozkan onur-ozkan 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 Dec 11, 2023
@clubby789
Copy link
Contributor

@bors r+

@bors
Copy link
Contributor

bors commented Dec 11, 2023

📌 Commit 2de3cf8 has been approved by clubby789

It is now in the queue for this repository.

@bors 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 Dec 11, 2023
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Dec 11, 2023
…=clubby789

dump bootstrap shims

When making changes to the bootstrap that shouldn't change its behavior, this feature will help developers perform comparisons to check whether the bootstrap behavior has changed or not. As an example, when removing Python from the bootstrap by migrating to Rust, this feature will be super useful for ensuring that the behavior remains unaffected. It will assist me in performing comparisons to verify that the bootstrap behavior and its outputs remains consistent throughout the migration process.

This can also be used for different purposes. For example, allowing CI to dump the shims and upload them so that developers can download them and compare with their local dump to see if CI affects the bootstrap unexpectedly. Or, make CI perform comparisons on specific bootstrap tests to check for behavior changes between the master and PR branches.
bors added a commit to rust-lang-ci/rust that referenced this pull request Dec 11, 2023
…iaskrgr

Rollup of 6 pull requests

Successful merges:

 - rust-lang#118647 (dump bootstrap shims)
 - rust-lang#118708 (tests: add sanity-check assembly test for every target)
 - rust-lang#118797 (End locals' live range before suspending coroutine)
 - rust-lang#118818 (llvm-wrapper: adapt for LLVM API change)
 - rust-lang#118826 (Edit target doc template to remove email)
 - rust-lang#118827 (Update table for linker-plugin-lto docs)

r? `@ghost`
`@rustbot` modify labels: rollup
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Dec 11, 2023
…=clubby789

dump bootstrap shims

When making changes to the bootstrap that shouldn't change its behavior, this feature will help developers perform comparisons to check whether the bootstrap behavior has changed or not. As an example, when removing Python from the bootstrap by migrating to Rust, this feature will be super useful for ensuring that the behavior remains unaffected. It will assist me in performing comparisons to verify that the bootstrap behavior and its outputs remains consistent throughout the migration process.

This can also be used for different purposes. For example, allowing CI to dump the shims and upload them so that developers can download them and compare with their local dump to see if CI affects the bootstrap unexpectedly. Or, make CI perform comparisons on specific bootstrap tests to check for behavior changes between the master and PR branches.
@matthiaskrgr
Copy link
Member

Could this cause #118834 (comment) ?

matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Dec 11, 2023
…=clubby789

dump bootstrap shims

When making changes to the bootstrap that shouldn't change its behavior, this feature will help developers perform comparisons to check whether the bootstrap behavior has changed or not. As an example, when removing Python from the bootstrap by migrating to Rust, this feature will be super useful for ensuring that the behavior remains unaffected. It will assist me in performing comparisons to verify that the bootstrap behavior and its outputs remains consistent throughout the migration process.

This can also be used for different purposes. For example, allowing CI to dump the shims and upload them so that developers can download them and compare with their local dump to see if CI affects the bootstrap unexpectedly. Or, make CI perform comparisons on specific bootstrap tests to check for behavior changes between the master and PR branches.
@onur-ozkan
Copy link
Member Author

Could this cause #118834 (comment) ?

No

bors added a commit to rust-lang-ci/rust that referenced this pull request Dec 11, 2023
…iaskrgr

Rollup of 6 pull requests

Successful merges:

 - rust-lang#118647 (dump bootstrap shims)
 - rust-lang#118708 (tests: add sanity-check assembly test for every target)
 - rust-lang#118818 (llvm-wrapper: adapt for LLVM API change)
 - rust-lang#118826 (Edit target doc template to remove email)
 - rust-lang#118827 (Update table for linker-plugin-lto docs)
 - rust-lang#118835 (Fix again `rustc_codegen_gcc` tests)

r? `@ghost`
`@rustbot` modify labels: rollup
bors added a commit to rust-lang-ci/rust that referenced this pull request Dec 11, 2023
…iaskrgr

Rollup of 8 pull requests

Successful merges:

 - rust-lang#118620 (resolve: Use `def_kind` query to cleanup some code)
 - rust-lang#118647 (dump bootstrap shims)
 - rust-lang#118726 (Do not parenthesize exterior struct lit inside match guards)
 - rust-lang#118818 (llvm-wrapper: adapt for LLVM API change)
 - rust-lang#118822 (Extract exhaustiveness into its own crate)
 - rust-lang#118826 (Edit target doc template to remove email)
 - rust-lang#118827 (Update table for linker-plugin-lto docs)
 - rust-lang#118835 (Fix again `rustc_codegen_gcc` tests)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit ea82b11 into rust-lang:master Dec 11, 2023
11 checks passed
@rustbot rustbot added this to the 1.76.0 milestone Dec 11, 2023
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Dec 11, 2023
Rollup merge of rust-lang#118647 - onur-ozkan:bootstrap-shims-dump, r=clubby789

dump bootstrap shims

When making changes to the bootstrap that shouldn't change its behavior, this feature will help developers perform comparisons to check whether the bootstrap behavior has changed or not. As an example, when removing Python from the bootstrap by migrating to Rust, this feature will be super useful for ensuring that the behavior remains unaffected. It will assist me in performing comparisons to verify that the bootstrap behavior and its outputs remains consistent throughout the migration process.

This can also be used for different purposes. For example, allowing CI to dump the shims and upload them so that developers can download them and compare with their local dump to see if CI affects the bootstrap unexpectedly. Or, make CI perform comparisons on specific bootstrap tests to check for behavior changes between the master and PR branches.
bors added a commit to rust-lang-ci/rust that referenced this pull request Dec 13, 2023
Unbreak non-unix non-windows bootstrap

Fixes rust-lang#118862.

rust-lang#118647 added a new use of std::io::Write that is not conditional on any cfg.

https://github.com/rust-lang/rust/blob/028b6d152e904bbc02dc3cd67e4cbdffcbd039e1/src/bootstrap/src/bin/main.rs#L134

```console
error[E0599]: no method named `write_all` found for struct `File` in the current scope
   --> src/bin/main.rs:134:21
    |
134 |             t!(file.write_all(lines.join("\n").as_bytes()));
    |                     ^^^^^^^^^ method not found in `File`
    |
    = help: items from traits can only be used if the trait is in scope
help: the following trait is implemented but not in scope; perhaps add a `use` for it:
    |
8   + use std::io::Write;
    |
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants