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

Rollup of 10 pull requests #120303

Closed
wants to merge 24 commits into from
Closed

Commits on Nov 30, 2023

  1. Configuration menu
    Copy the full SHA
    bed0c9d View commit details
    Browse the repository at this point in the history

Commits on Jan 10, 2024

  1. Configuration menu
    Copy the full SHA
    b152de2 View commit details
    Browse the repository at this point in the history

Commits on Jan 22, 2024

  1. Configuration menu
    Copy the full SHA
    41dcba8 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    21e5bea View commit details
    Browse the repository at this point in the history

Commits on Jan 23, 2024

  1. MCP rust-lang#705: Provide the option `-Csymbol-mangling-version=hash…

    …ed -Z unstable-options` to shorten symbol names by replacing them with a digest.
    
    Enrich test cases
    h1467792822 committed Jan 23, 2024
    Configuration menu
    Copy the full SHA
    1b1040d View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    823e8b0 View commit details
    Browse the repository at this point in the history
  3. Remove uses of no-system-llvm

    It looks like none of these are actually needed.
    nikic committed Jan 23, 2024
    Configuration menu
    Copy the full SHA
    31f5f03 View commit details
    Browse the repository at this point in the history
  4. Remove support for no-system-llvm

    Also add tests for min-system-llvm-version.
    nikic committed Jan 23, 2024
    Configuration menu
    Copy the full SHA
    f4f589a View commit details
    Browse the repository at this point in the history
  5. Add the wasm32-wasi-preview2 target

    Signed-off-by: Ryan Levick <me@ryanlevick.com>
    rylev committed Jan 23, 2024
    Configuration menu
    Copy the full SHA
    31ecf34 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    ba75970 View commit details
    Browse the repository at this point in the history
  7. Remove extra # from url

    est31 committed Jan 23, 2024
    Configuration menu
    Copy the full SHA
    9676e18 View commit details
    Browse the repository at this point in the history

Commits on Jan 24, 2024

  1. Add NonZero*::count_ones

    WaffleLapkin committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    0b1d7ff View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    eabfe45 View commit details
    Browse the repository at this point in the history
  3. Add @davidtwco to debuginfo group in triage.toml

    Co-authored-by: David Wood <agile.lion3441@fuligin.ink>
    michaelwoerister and davidtwco committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    db4cf5d View commit details
    Browse the repository at this point in the history
  4. Rollup merge of rust-lang#114764 - pitaj:style-delimited-expressions,…

    … r=joshtriplett
    
    [style edition 2024] Combine all delimited exprs as last argument
    
    Closes rust-lang/style-team#149
    
    If this is merged, the rustfmt option `overflow_delimited_expr` should be enabled by default in style edition 2024.
    
    [Rendered](https://github.com/pitaj/rust/blob/style-delimited-expressions/src/doc/style-guide/src/expressions.md#combinable-expressions)
    
    r? joshtriplett
    fmease committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    f96156e View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#118326 - WaffleLapkin:nz_count_ones, r=scot…

    …tmcm
    
    Add `NonZero*::count_ones`
    
    This PR adds the following APIs to the standard library:
    
    ```rust
    impl NonZero* {
        pub const fn count_ones(self) -> NonZeroU32;
    }
    ```
    
    This is potentially interesting, given that `count_ones` can't ever return 0.
    
    r? libs-api
    fmease committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    3301e4e View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#118636 - h1467792822:dev, r=michaelwoerister

    Add the unstable option  to reduce the binary size of dynamic library…
    
    # Motivation
    
    The average length of symbol names in the rust standard library is about 100 bytes, while the average length of symbol names in the C++ standard library is about 65 bytes. In some embedded environments where dynamic library are widely used, rust dynamic library symbol name space hash become one of the key bottlenecks of application, Especially when the existing C/C++ module is reconstructed into the rust module.
    
    The unstable option `-Z symbol_mangling_version=hashed` is added to solve the bottleneck caused by too long dynamic library symbol names.
    
    ## Test data
    
    The following is a set of test data on the ubuntu 18.04 LTS environment. With this plug-in, the space saving rate of dynamic libraries can reach about 20%.
    
    The test object is the standard library of rust (built based on Xargo), tokio crate, and hyper crate.
    
    The contents of the Cargo.toml file in the construction project of the three dynamic libraries are as follows:
    
    ```txt
    # Cargo.toml
    [profile.release]
    panic = "abort"
    opt-leve="z"
    codegen-units=1
    strip=true
    debug=true
    ```
    The built dynamic library also removes the `.rustc` segments that are not needed at run time and then compares the size. The detailed data is as follows:
    
    1. libstd.so
    > | symbol_mangling_version | size | saving rate |
    > | --- | --- | --- |
    > | legacy | 804896 ||
    > | hashed | 608288 | 0.244 |
    > | v0 | 858144 ||
    > | hashed | 608288 | 0.291 |
    
    2. libhyper.so
    > | symbol_mangling_version(libhyper.so) | symbol_mangling_version(libstd.so) | size | saving rate |
    > | --- | --- | --- | --- |
    > | legacy | legacy | 866312 ||
    > | hashed | legacy | 645128 |0.255|
    > | legacy | hashed | 854024 ||
    > | hashed | hashed | 632840 |0.259|
    fmease committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    1e15157 View commit details
    Browse the repository at this point in the history
  7. Rollup merge of rust-lang#119460 - Zalathar:improper-region, r=wesley…

    …wiser
    
    coverage: Never emit improperly-ordered coverage regions
    
    If we emit a coverage region that is improperly ordered (end < start), `llvm-cov` will fail with `coveragemap_error::malformed`, which is inconvenient for users and also very hard to debug.
    
    Ideally we would fix the root causes of these situations, but they tend to occur in very obscure edge-case scenarios (often involving nested macros), and we don't always have a good MCVE to work from. So it makes sense to also have a catch-all check that will prevent improperly-ordered regions from ever being emitted.
    
    ---
    
    This is mainly aimed at resolving rust-lang#119453. We don't have a specific way to reproduce it, which is why I haven't been able to add a test case in this PR. But based on the information provided in that issue, this change seems likely to avoid the error in `llvm-cov`.
    
    ````@rustbot```` label +A-code-coverage
    fmease committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    f051cb2 View commit details
    Browse the repository at this point in the history
  8. Rollup merge of rust-lang#119616 - rylev:wasm32-wasi-preview2, r=petr…

    …ochenkov,m-ou-se
    
    Add a new `wasm32-wasi-preview2` target
    
    This is the initial implementation of the MCP rust-lang/compiler-team#694 creating a new tier 3 target `wasm32-wasi-preview2`. That MCP has been seconded and will most likely be approved in a little over a week from now. For more information on the need for this target, please read the [MCP](rust-lang/compiler-team#694).
    
    There is one aspect of this PR that will become insta-stable once these changes reach a stable compiler:
    * A new `target_family` named `wasi` is introduced. This target family incorporates all wasi targets including `wasm32-wasi` and its derivative `wasm32-wasi-preview1-threads`. The difference between `target_family = wasi` and `target_os = wasi` will become much clearer when `wasm32-wasi` is renamed to `wasm32-wasi-preview1` and the `target_os` becomes `wasm32-wasi-preview1`. You can read about this target rename in [this MCP](rust-lang/compiler-team#695) which has also been seconded and will hopefully be officially approved soon.
    
    Additional technical details include:
    * Both `std::sys::wasi_preview2` and `std::os::wasi_preview2` have been created and mostly use `#[path]` annotations on their submodules to reach into the existing `wasi` (soon to be `wasi_preview1`) modules. Over time the differences between `wasi_preview1` and `wasi_preview2` will grow and most like all `#[path]` based module aliases will fall away.
    * Building `wasi-preview2` relies on a [`wasi-sdk`](https://github.com/WebAssembly/wasi-sdk) in the same way that `wasi-preview1` does (one must include a `wasi-root` path in the `Config.toml` pointing to sysroot included in the wasi-sdk). The target should build against [wasi-sdk v21](https://github.com/WebAssembly/wasi-sdk/releases/tag/wasi-sdk-21) without modifications. However, the wasi-sdk itself is growing [preview2 support](WebAssembly/wasi-sdk#370) so this might shift rapidly. We will be following along quickly to make sure that building the target remains possible as the wasi-sdk changes.
    * This requires a [patch to libc](https://github.com/rylev/rust-libc/tree/wasm32-wasi-preview2) that we'll need to land in conjunction with this change. Until that patch lands the target won't actually build.
    fmease committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    2fb0d75 View commit details
    Browse the repository at this point in the history
  9. Rollup merge of rust-lang#120185 - Zalathar:auto-derived, r=wesleywiser

    coverage: Don't instrument `#[automatically_derived]` functions
    
    This PR makes the coverage instrumentor detect and skip functions that have [`#[automatically_derived]`](https://doc.rust-lang.org/reference/attributes/derive.html#the-automatically_derived-attribute) on their enclosing impl block.
    
    Most notably, this means that methods generated by built-in derives (e.g. `Clone`, `Debug`, `PartialEq`) are now ignored by coverage instrumentation, and won't appear as executed or not-executed in coverage reports.
    
    This is a noticeable change in user-visible behaviour, but overall I think it's a net improvement. For example, we've had a few user requests for this sort of change (e.g. rust-lang#105055, rust-lang#84605 (comment)), and I believe it's the behaviour that most users will expect/prefer by default.
    
    It's possible to imagine situations where users would want to instrument these derived implementations, but I think it's OK to treat that as an opportunity to consider adding more fine-grained option flags to control the details of coverage instrumentation, while leaving this new behaviour as the default.
    
    (Also note that while `-Cinstrument-coverage` is a stable feature, the exact details of coverage instrumentation are allowed to change. So we *can* make this change; the main question is whether we *should*.)
    
    Fixes rust-lang#105055.
    fmease committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    662b7b6 View commit details
    Browse the repository at this point in the history
  10. Rollup merge of rust-lang#120265 - nikic:no-no-system-llvm, r=nagisa

    Remove no-system-llvm
    
    We currently have a bunch of codegen tests that use no-system-llvm -- however, all of those tests also pass with system LLVM 16.
    
    I've opted to remove `no-system-llvm` entirely, as there's basically no valid use case for it anymore:
    
     * The only thing this option could have legitimately been used for (testing the target feature support that requires an LLVM patch) doesn't use it, and the need for this will go away with LLVM 18 anyway.
     * In cases where the test depends on optimizations/fixes from newer LLVM versions, `min-llvm-version` should be used instead.
     * In case it depends on optimization/fixes from newer LLVM versions that have been backported into our fork, `min-system-llvm-version` (with the major version larger than the one in our fork) should be used instead.
    
    r? ````@cuviper````
    fmease committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    c8f1531 View commit details
    Browse the repository at this point in the history
  11. Rollup merge of rust-lang#120284 - petrochenkov:typrivisit2, r=oli-obk

    privacy: Refactor top-level visiting in `TypePrivacyVisitor`
    
    Full hierarchical visiting (`nested_filter::All`) is not necessary, visiting all item-likes in isolation is enough.
    Tracking current item is not necessary, just keeping the current `mod` item is enough.
    `visit_generic_arg` should behave like its default version, including checking types of const arguments.
    Some comments, including FIXMEs, are also added.
    
    Noticed while reading code to review rust-lang#113671.
    r? `@oli-obk`
    fmease committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    7064e06 View commit details
    Browse the repository at this point in the history
  12. Rollup merge of rust-lang#120285 - est31:remove_extra_pound, r=fmease

    Remove extra # from url in suggestion
    
    The suggestion added in rust-lang#119805 contains an unnecessary # hash sign.
    fmease committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    b45eed4 View commit details
    Browse the repository at this point in the history
  13. Rollup merge of rust-lang#120299 - michaelwoerister:review-rotation-u…

    …pdate, r=davidtwco
    
    Add mw to review rotation and add some owner assignments
    
    I've also added a `debuginfo` group and fixed the ownership assignment for the `incremental` group. I hope I got the syntax right.
    
    r? `@davidtwco`
    fmease committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    f79440e View commit details
    Browse the repository at this point in the history