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 11 pull requests #74468

Merged
merged 36 commits into from
Jul 18, 2020
Merged

Rollup of 11 pull requests #74468

merged 36 commits into from
Jul 18, 2020

Commits on Jul 16, 2020

  1. First cut of std::lazy module

    matklad authored and KodrAus committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    cac1768 View commit details
    Browse the repository at this point in the history
  2. integrate Lazy into std layout

    This commit refactors the initial implementation to fit into std and
    makes some other changes:
    
    - use MaybeUninit internally in SyncOnceCell
    - correctly impl Drop for lazy::Once
    - port Lazy::take from once_cell from: matklad/once_cell#100
    
    Co-Authored-By: Paul Dicker <pitdicker@users.noreply.github.com>
    KodrAus and pitdicker committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    237a977 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    d1263f5 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    d101794 View commit details
    Browse the repository at this point in the history
  5. appease tidy

    KodrAus committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    1f1cda6 View commit details
    Browse the repository at this point in the history
  6. ci: Set shell: bash as a default, remove duplicates

    A follow-up to rust-lang#74406, this commit merely removes the `shell: bash`
    lines where they are explicitly added in favor of setting defaults for
    *all* "run" steps.
    
    Signed-off-by: Kristofer Rye <kristofer.rye@gmail.com>
    rye committed Jul 16, 2020
    Configuration menu
    Copy the full SHA
    ab23a2a View commit details
    Browse the repository at this point in the history

Commits on Jul 17, 2020

  1. Configuration menu
    Copy the full SHA
    b26ecd2 View commit details
    Browse the repository at this point in the history
  2. include changes to Cargo.lock

    KodrAus committed Jul 17, 2020
    Configuration menu
    Copy the full SHA
    48844fe View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    d866160 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    b5076fb View commit details
    Browse the repository at this point in the history
  5. ci: Stop setting CI_OVERRIDE_SHELL environment variable

    This will render the src/ci/exec-with-shell.py script more or less
    useless, but we're going to replace that by just using the system bash
    instead.
    
    Signed-off-by: Kristofer Rye <kristofer.rye@gmail.com>
    rye committed Jul 17, 2020
    Configuration menu
    Copy the full SHA
    49f5078 View commit details
    Browse the repository at this point in the history
  6. ci: Replace exec-with-shell wrapper with "plain bash"

    Also, promote defaults.run.shell from inside only the primary jobs to
    the top level.
    
    The src/ci/exec-with-shell.py wrapper script was formerly used to change
    out the shell mid-job by intercepting a CI_OVERRIDE_SHELL environment
    variable.  Now, instead, we just set `bash` as the global default across
    all jobs, and we also delete the exec-with-shell.py script.
    
    Signed-off-by: Kristofer Rye <kristofer.rye@gmail.com>
    rye committed Jul 17, 2020
    Configuration menu
    Copy the full SHA
    586629c View commit details
    Browse the repository at this point in the history
  7. Add regression test for rust-lang#69414

    Closes rust-lang#69414 (no longer ICEs after rust-lang#74159)
    Alexendoo committed Jul 17, 2020
    Configuration menu
    Copy the full SHA
    f7979d3 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    b0a7fbd View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    2e431c6 View commit details
    Browse the repository at this point in the history
  10. document test changes

    erikdesjardins committed Jul 17, 2020
    Configuration menu
    Copy the full SHA
    3924672 View commit details
    Browse the repository at this point in the history
  11. improper_ctypes_definitions: allow Box

    This commit stops linting against `Box` in `extern "C" fn`s for the
    `improper_ctypes_definitions` lint - boxes are documented to be
    FFI-safe.
    
    Signed-off-by: David Wood <david@davidtw.co>
    davidtwco committed Jul 17, 2020
    Configuration menu
    Copy the full SHA
    95df802 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    4127ed1 View commit details
    Browse the repository at this point in the history
  13. rustbuild: drop tool::should_install

    Always install when the build succeeds
    
    Fixes rust-lang#74431
    
    Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
    Keruspe committed Jul 17, 2020
    Configuration menu
    Copy the full SHA
    4adb13c View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    91314e2 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    748634e View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    4b6a027 View commit details
    Browse the repository at this point in the history
  17. Allows pathdiff package

    FedericoPonzi committed Jul 17, 2020
    Configuration menu
    Copy the full SHA
    5702ce8 View commit details
    Browse the repository at this point in the history

Commits on Jul 18, 2020

  1. Configuration menu
    Copy the full SHA
    fe63905 View commit details
    Browse the repository at this point in the history
  2. Run fmt

    Manishearth committed Jul 18, 2020
    Configuration menu
    Copy the full SHA
    c41db4c View commit details
    Browse the repository at this point in the history
  3. Rollup merge of rust-lang#72414 - KodrAus:feat/stdlazy, r=Mark-Simula…

    …crum
    
     Add lazy initialization primitives to std
    
    Follow-up to rust-lang#68198
    
    Current RFC: rust-lang/rfcs#2788
    
    Rebased and fixed up a few of the dangling comments. Some notes carried over from the previous PR:
    
    - [ ] Naming. I'm ok to just roll with the `Sync` prefix like `SyncLazy` for now, but [have a personal preference for `Atomic`](rust-lang/rfcs#2788 (comment)) like `AtomicLazy`.
    - [x] [Poisoning](rust-lang/rfcs#2788 (comment)). It seems like there's [some regret around poisoning in other `std::sync` types that we might want to just avoid upfront for `std::lazy`, especially if that would align with a future `std::mutex` that doesn't poison](https://rust-lang.zulipchat.com/#narrow/stream/219381-t-libs/topic/parking_lot.3A.3AMutex.20in.20std/near/190331199). Personally, if we're adding these types to `std::lazy` instead of `std::sync`, I'd be on-board with not worrying about poisoning in `std::lazy`, and potentially deprecating `std::sync::Once` and `lazy_static` in favour of `std::lazy` down the track if it's possible, rather than attempting to replicate their behavior. cc @Amanieu @sfackler.
    - [ ] [Consider making`SyncOnceCell::get` blocking](matklad/once_cell#92). There doesn't seem to be consensus in the linked PR on whether or not that's strictly better than the non-blocking variant.
    
    In general, none of these seem to be really blocking an initial unstable merge, so we could possibly kick off a FCP if y'all are happy?
    
    cc @matklad @pitdicker have I missed anything, or were there any other considerations that have come up since we last looked at this?
    Manishearth authored Jul 18, 2020
    Configuration menu
    Copy the full SHA
    01418bd View commit details
    Browse the repository at this point in the history
  4. Rollup merge of rust-lang#74069 - erikdesjardins:bad-niche, r=nikomat…

    …sakis
    
    Compare tagged/niche-filling layout and pick the best one
    
    Finishes up rust-lang#71045, and so fixes rust-lang#63866.
    
    cc @eddyb
    r? @nikomatsakis (since @eddyb wrote the first commit)
    Manishearth authored Jul 18, 2020
    Configuration menu
    Copy the full SHA
    e775b4d View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#74418 - rye:gha-dedup-shell-setting, r=piet…

    …roalbini
    
    ci: Set `shell: bash` as a default, remove duplicates
    
    A follow-up to rust-lang#74406, this commit merely removes the `shell: bash` lines where they were added in favor of setting defaults for *all* "run" steps in the jobs that run the tests.
    
    The changes in rust-lang#74406 were needed because of an upstream change to the `windows-2019` GitHub Actions image. Previously, the configuration worked fine without specifying `shell: bash`, but for some reason this broke with a new change that was deployed today. The preceding PR was a hotfix to get CI passing, but there was a slightly less duplicative way to specify the default shell for the jobs, which was to set the `defaults.run` option.
    
    This change applies to the `pr`, `try`, `auto`, and `auto-fallible` jobs, which are derived from the YAML-anchor `base-ci-job`.  I did not apply these changes to the `master`, `try-success`, `try-failure`, `auto-success`, or `auto-failure` jobs because they have only a few steps.
    
    cc/r? @Mark-Simulacrum
    Manishearth authored Jul 18, 2020
    Configuration menu
    Copy the full SHA
    7b66c66 View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#74441 - eddyb:zlib-on-nixos, r=nagisa

    bootstrap.py: patch RPATH on NixOS to handle the new zlib dependency.
    
    This is a stop-gap until rust-lang#74420 is resolved (assuming we'll patch beta to statically link zlib).
    
    However, I've been meaning to rewrite the NixOS support we have in `bootstrap.py` for a while now, and had to in order to cleanly add zlib as a dependency (the second commit is a relatively small delta in functionality, compared to the first).
    
    Previously, we would extract the `ld-linux.so` path from the output of `ldd /run/current-system/sw/bin/sh`, which assumes a lot. On top of that we didn't use any symlinks, which meant if the user ran  GC (`nix-collect-garbage`), e.g. after updating their system, their `stage0` binaries would suddenly be broken (i.e. referring to files that no longer exist).
    We were also using `patchelf` directly, assuming it can be found in `$PATH` (which is not necessarily true).
    
    My new approach relies on using `nix-build` to get the following "derivations" (packages, more or less):
    * `stdenv.cc.bintools`, which has a `nix-support/dynamic-linker` file containing the path to `ld-linux.so`
      * reading this file is [the canonical way to run `patchelf --set-interpreter`](https://github.com/NixOS/nixpkgs/search?l=Nix&q=%22--set-interpreter+%24%28cat+%24NIX_CC%2Fnix-support%2Fdynamic-linker%29%22)
    * `patchelf` (so that the user doesn't need to have it installed)
    * `zlib`, for the `libz.so` dependency of `libLLVM-*.so` (until rust-lang#74420 is resolved, presumably)
    
    This is closer to how software is built on Nix, but I've tried to keep it as simple as possible (and not add e.g. a `stage0.nix` file).
    Symlinks to each of those dependencies are kept in `stage0/.nix-deps`, which prevents GC from invalidating `stage0` binaries.
    
    r? @nagisa cc @Mark-Simulacrum @oli-obk @davidtwco
    Manishearth authored Jul 18, 2020
    Configuration menu
    Copy the full SHA
    8d1bb0e View commit details
    Browse the repository at this point in the history
  7. Rollup merge of rust-lang#74444 - Alexendoo:test-69414, r=nikomatsakis

    Add regression test for rust-lang#69414
    
    Closes rust-lang#69414 (no longer ICEs after rust-lang#74159)
    Manishearth authored Jul 18, 2020
    Configuration menu
    Copy the full SHA
    378f46d View commit details
    Browse the repository at this point in the history
  8. Rollup merge of rust-lang#74448 - davidtwco:improper-ctypes-definitio…

    …ns-boxes, r=davidtwco
    
    improper_ctypes_definitions: allow `Box`
    
    Addresses rust-lang#72700 (comment).
    
    This PR stops linting against `Box` in `extern "C" fn`s for the `improper_ctypes_definitions` lint - boxes are documented to be FFI-safe.
    
    cc @alexcrichton @CryZe
    Manishearth authored Jul 18, 2020
    Configuration menu
    Copy the full SHA
    f276dd4 View commit details
    Browse the repository at this point in the history
  9. Rollup merge of rust-lang#74449 - tmiasko:cmpxchg-test, r=nikomatsakis

    Test codegen of compare_exchange operations
    
    Add a codegen test for compare_exchange to verify that rustc emits expected LLVM IR.
    Manishearth authored Jul 18, 2020
    Configuration menu
    Copy the full SHA
    18e8089 View commit details
    Browse the repository at this point in the history
  10. Rollup merge of rust-lang#74450 - aticu:master, r=jonas-schievink

    Fix `Safety` docs for `from_raw_parts_mut`
    
    This aligns the wording more with the documentation of e.g. `drop_in_place`, `replace`, `swap` and `swap_nonoverlapping` from `core::ptr`.
    
    Also if the pointer were really only valid for writes, it would be trivial to introduce UB from safe code, after calling `core::slice::from_raw_parts_mut`.
    Manishearth authored Jul 18, 2020
    Configuration menu
    Copy the full SHA
    9597744 View commit details
    Browse the repository at this point in the history
  11. Rollup merge of rust-lang#74453 - Manishearth:intra-doc-std, r=jyn514

    Use intra-doc links in `str` and `BTreeSet`
    
    Fixes rust-lang#32129, fixes  rust-lang#32130
    
    A _slight_ degradation in quality is that the `#method.foo` links would previously link to the same page on `String`'s documentation, and now they will navigate to `str`. Not a big deal IMO, and we can also try to improve that.
    Manishearth authored Jul 18, 2020
    Configuration menu
    Copy the full SHA
    0d669a9 View commit details
    Browse the repository at this point in the history
  12. Rollup merge of rust-lang#74457 - Keruspe:install, r=Mark-Simulacrum

    rustbuild: drop tool::should_install
    
    Always install when the build succeeds
    
    Fixes rust-lang#74431
    Manishearth authored Jul 18, 2020
    Configuration menu
    Copy the full SHA
    5f76240 View commit details
    Browse the repository at this point in the history
  13. Rollup merge of rust-lang#74464 - FedericoPonzi:fix-rust-lang#67108, …

    …r=Manishearth
    
    Use pathdiff crate
    
    I wanted to tackle a simple issue, and stumbled upon rust-lang#67108: this pr removes the function which was exported to the external crate as required in the todo/issue.
    I've tested it with:
    ```
    ./x.py build --stage 1 --keep-stage 1 src/librustc_codegen_ssa
    ```
    And it looks like it's compiling
    Manishearth authored Jul 18, 2020
    Configuration menu
    Copy the full SHA
    cae9c50 View commit details
    Browse the repository at this point in the history