Repository navigation
Conversation
Collaborator
|
rustbot has assigned @Mark-Simulacrum. Use Why was this reviewer chosen?The reviewer was selected based on:
|
Member
|
@bors r+ rollup |
Contributor
Zalathar
added a commit
to Zalathar/rust
that referenced
this pull request
Nov 12, 2026
…ns, r=Mark-Simulacrum Avoid redundant scans when extracting stage0 archives [`getnames()`](https://github.com/python/cpython/blob/b4e48a444ea02921ce4b701fe165e6cfd4cf5845/Lib/tarfile.py#L1991-L1995) calls [`getmembers()`](https://github.com/python/cpython/blob/b4e48a444ea02921ce4b701fe165e6cfd4cf5845/Lib/tarfile.py#L1981-L1989), which can scan the entire archive if its members have not already been loaded. Iterating over tar directly (https://github.com/python/cpython/blob/v3.10.12/Lib/tarfile.py#L2715-L2747) allows archive entries to be handled one at a time. Passing each `TarInfo` directly to [`extract()`](https://docs.python.org/3.10/library/tarfile.html#tarfile.TarFile.extract) also avoids name-based lookup, removing the preliminary scan and its associated repeated decompression. With cached stage0 archives, `RustBuild.download_toolchain()` improved from 6.44 s to 3.50 s (medians of two runs per version). The rustc, rust-std, and cargo archives were extracted in parallel into fresh directories. Output hashes were verified separately.
rust-bors Bot
pushed a commit
that referenced
this pull request
Nov 12, 2026
Rollup of 6 pull requests Successful merges: - #165778 (Bump stage0 to 1.101.0-beta.1) - #163077 (feat: support nested functions with `#[offload_kernel]`) - #165578 (Avoid `Hash::hash` when stable-hashing various types) - #165729 (tests: Add regression test for infinite recursive dereference) - #165819 (Avoid redundant scans when extracting stage0 archives) - #165822 (Remove unused compiler modules and types)
Zalathar
added a commit
to Zalathar/rust
that referenced
this pull request
Nov 12, 2026
…ns, r=Mark-Simulacrum Avoid redundant scans when extracting stage0 archives [`getnames()`](https://github.com/python/cpython/blob/b4e48a444ea02921ce4b701fe165e6cfd4cf5845/Lib/tarfile.py#L1991-L1995) calls [`getmembers()`](https://github.com/python/cpython/blob/b4e48a444ea02921ce4b701fe165e6cfd4cf5845/Lib/tarfile.py#L1981-L1989), which can scan the entire archive if its members have not already been loaded. Iterating over tar directly (https://github.com/python/cpython/blob/v3.10.12/Lib/tarfile.py#L2715-L2747) allows archive entries to be handled one at a time. Passing each `TarInfo` directly to [`extract()`](https://docs.python.org/3.10/library/tarfile.html#tarfile.TarFile.extract) also avoids name-based lookup, removing the preliminary scan and its associated repeated decompression. With cached stage0 archives, `RustBuild.download_toolchain()` improved from 6.44 s to 3.50 s (medians of two runs per version). The rustc, rust-std, and cargo archives were extracted in parallel into fresh directories. Output hashes were verified separately.
rust-bors Bot
pushed a commit
that referenced
this pull request
Nov 12, 2026
Rollup of 12 pull requests Successful merges: - #165804 (cg_llvm: Use an invariant lifetime brand for LLVM values) - #165778 (Bump stage0 to 1.101.0-beta.1) - #165412 (Implement `core::ops::FnAddr`) - #165487 (Migrate built-in macros `pattern_type` & `view_type` to macros 2.0 that expand to internal syntax) - #165818 (do not lint `redundant_lifetimes` on items from external macros) - #163077 (feat: support nested functions with `#[offload_kernel]`) - #164795 (Extend support of lint `explicit_outlives_requirements` to checked type aliases) - #165578 (Avoid `Hash::hash` when stable-hashing various types) - #165729 (tests: Add regression test for infinite recursive dereference) - #165819 (Avoid redundant scans when extracting stage0 archives) - #165822 (Remove unused compiler modules and types) - #165824 (Add regression test for HRTB projection bound with TryFrom error)
Member
|
Contributor
|
This pull request was unapproved. This PR was contained in a rollup (#165843), which was unapproved. |
Contributor
|
⌛ Trying commit ce09ca6 with merge 61389fc… To cancel the try build, run the command Workflow: https://github.com/rust-lang/rust/actions/runs/43155951269 |
rust-bors Bot
pushed a commit
that referenced
this pull request
Nov 12, 2026
Avoid redundant scans when extracting stage0 archives try-job: dist-x86_64-msvc
Member
|
Looks like the CI failure was probably unrelated flakiness, though I'm marking this as iffy in case this PR is the cause of the flakiness. @bors r=Mark-Simulacrum rollup=iffy |
Contributor
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.
getnames()callsgetmembers(), which can scan the entire archive if its members have not already been loaded. Iterating over tar directly (https://github.com/python/cpython/blob/v3.10.12/Lib/tarfile.py#L2715-L2747) allows archive entries to be handled one at a time. Passing eachTarInfodirectly toextract()also avoids name-based lookup, removing the preliminary scan and its associated repeated decompression.With cached stage0 archives,
RustBuild.download_toolchain()improved from 6.44 s to 3.50 s (medians of two runs per version). The rustc, rust-std, and cargo archives were extracted in parallel into fresh directories. Output hashes were verified separately.