1. 30 7月, 2021 19 次提交
    • A
    • B
      Auto merge of #87615 - JohnTitor:rollup-t5jpmrg, r=JohnTitor · 1195bea5
      bors 提交于
      Rollup of 10 pull requests
      
      Successful merges:
      
       - #87052 (Optimize fmt::PadAdapter::wrap)
       - #87522 (Fix assert in diy_float)
       - #87553 (Fix typo in rustc_driver::version)
       - #87554 (2229: Discr should be read when PatKind is Range)
       - #87564 (min_type_alias_impl_trait is going to be removed in 1.56)
       - #87574 (Update the examples in `String` and `VecDeque::retain`)
       - #87583 (Refactor compression cache in v0 symbol mangler)
       - #87585 (Add missing links for core::char types)
       - #87594 (fs File get_path procfs usage for netbsd same as linux.)
       - #87602 ([backtraces]: look for the `begin` symbol only after seeing `end`)
      
      Failed merges:
      
      r? `@ghost`
      `@rustbot` modify labels: rollup
      1195bea5
    • Y
      Rollup merge of #87602 - wesleywiser:partially_fix_short_backtraces_windows_optimized, r=dtolnay · 84e18828
      Yuki Okushi 提交于
      [backtraces]: look for the `begin` symbol only after seeing `end`
      
      On `x86_64-pc-windows-msvc`, we often get backtraces which look like
          this:
      
          ```
          10:     0x7ff77e0e9be5 - std::panicking::rust_panic_with_hook
          11:     0x7ff77e0e11b4 - std::sys_common::backtrace::__rust_begin_short_backtrace::h5769736bdb11136c
          12:     0x7ff77e0e116f - std::sys_common::backtrace::__rust_end_short_backtrace::h61c7ecb1b55338ae
          13:     0x7ff77e0f89dd - std::panicking::begin_panic::h8e60ef9f82a41805
          14:     0x7ff77e0e108c - d
          15:     0x7ff77e0e1069 - c
          16:     0x7ff77e0e1059 - b
          17:     0x7ff77e0e1049 - a
          18:     0x7ff77e0e1039 - core::ptr::drop_in_place<std::rt::lang_start<()>::{{closure}}>::h1bfcd14d5e15ba81
          19:     0x7ff77e0e1186 - std::sys_common::backtrace::__rust_begin_short_backtrace::h5769736bdb11136c
          20:     0x7ff77e0e100c - std::rt::lang_start::{{closure}}::ha054184bbf9921e3
          ```
      
      Notice that `__rust_begin_short_backtrace` appears on frame 11 before
          `__rust_end_short_backtrace` on frame 12. This is because in typical
          release binaries without debug symbols, dbghelp.dll, which we use to walk
          and symbolize the stack, does not know where CGU internal functions
          start or end and so the closure invoked by `__rust_end_short_backtrace`
          is incorrectly described as `__rust_begin_short_backtrace` because it
          happens to be near that symbol.
      
      While that can obviously change, this has been happening quite
          consistently since #75048. Since this is a very small change to the std
          and the change makes sense by itself, I think this is worth doing.
      
      This doesn't completely resolve the situation for release binaries on
          Windows, since without debug symbols, the stack printed can still show
          incorrect symbol names (this is why the test uses `#[no_mangle]`) but it
          does slightly improve the situation in that you see the same backtrace
          you would see with `RUST_BACKTRACE=full` or in a debugger (without the
          uninteresting bits at the top and bottom).
      
      Fixes part of #87481
      84e18828
    • Y
      Rollup merge of #87594 - devnexen:netbsd_fs_getfiledescriptor_path, r=joshtriplett · 0180d4ca
      Yuki Okushi 提交于
      fs File get_path procfs usage for netbsd same as linux.
      0180d4ca
    • Y
      Rollup merge of #87585 - GuillaumeGomez:char-types-doc, r=joshtriplett · 6e61383b
      Yuki Okushi 提交于
      Add missing links for core::char types
      6e61383b
    • Y
      Rollup merge of #87583 - tmiasko:compression-cache, r=wesleywiser · 1757d6b3
      Yuki Okushi 提交于
      Refactor compression cache in v0 symbol mangler
      
      * Remove redundant option around compression caches (they are always present).
      * Flatten compression caches into symbol mangler to avoid dynamic memory allocation.
      * Implement printer for `&mut SymbolMangler` instead of `SymbolMangler` to avoid passing now slightly larger symbol mangler by value.
      1757d6b3
    • Y
      Rollup merge of #87574 - cuviper:retain-examples, r=joshtriplett · 3bc6c283
      Yuki Okushi 提交于
      Update the examples in `String` and `VecDeque::retain`
      
      The examples added in #60396 used a "clever" post-increment hack,
      unrelated to the actual point of the examples. That hack was found
      [confusing] in the users forum, and #81811 already changed the `Vec`
      example to use a more direct iterator. This commit changes `String` and
      `VecDeque` in the same way for consistency.
      
      [confusing]: https://users.rust-lang.org/t/help-understand-strange-expression/62858
      3bc6c283
    • Y
      Rollup merge of #87564 - spastorino:adjust-min-tait-removed-version, r=jackh726 · 55ce7ed5
      Yuki Okushi 提交于
      min_type_alias_impl_trait is going to be removed in 1.56
      
      #87501 removed `min_type_alias_impl_trait` but meanwhile that PR was approved in homu queue, a new beta was cut so we need to bump the version because it won't be removed in 1.55.
      
      r? ```@oli-obk```
      
      ```@bors``` rollup=always
      55ce7ed5
    • Y
      Rollup merge of #87554 - sexxi-goose:fix-issue-87426, r=nikomatsakis · aaef1a16
      Yuki Okushi 提交于
      2229: Discr should be read when PatKind is Range
      
      This PR fixes an issue related to pattern matching in closures when Edition 2021 is enabled.
      
      - If any of the patterns the discr is being matched on is `PatKind::Range` then the discr should be read
      
      r? ```@nikomatsakis```
      
      Closes https://github.com/rust-lang/rust/issues/87426
      aaef1a16
    • Y
      Rollup merge of #87553 - bjorn3:fix_hotplug_codegen_version, r=wesleywiser · 7e4b1737
      Yuki Okushi 提交于
      Fix typo in rustc_driver::version
      
      This caused rustc `-Zcodegen-backend=foo.so -vV` to look for `oo.so` instead of `foo.so`
      7e4b1737
    • Y
      Rollup merge of #87522 - frogtd:patch-1, r=yaahc · fd79e774
      Yuki Okushi 提交于
      Fix assert in diy_float
      
      The shifting should have gone the other way, the current incarnation is always true.
      fd79e774
    • Y
      Rollup merge of #87052 - phlopsi:patch-1, r=jyn514 · c25b979d
      Yuki Okushi 提交于
      Optimize fmt::PadAdapter::wrap
      
      After adding the first `write!` usage to my project and printing the result to the console, I noticed, that my binary contains the strings "called `Option::unwrap()` on a `None` value`" and more importantly "C:\Users\Patrick Fischer\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\fmt\builders.rs", with my release build being configured as follows:
      ```
      [profile.release]
      panic = "abort"
      codegen-units = 1
      strip = "symbols" # the important bit
      lto = true
      ```
      I am in a no_std environment and my custom panic handler is a simple `loop {}`. I did not expect the above information to be preserved. I heavily suspect the edited function to be the culprit. It contains the only direct use of `Option::unwrap` in the entire file and I tracked the symbols in the assembly to be used from the section `_ZN68_$LT$core..fmt..builders..PadAdapter$u20$as$u20$core..fmt..Write$GT$9write_str17ha1d5e5efe167202aE`.
      
      Aside from me suspecting this function to be the culprit, the replaced code performs the same operation as `Option::insert`, but without the `unreachable_unchecked` optimization `Option::insert` provides. Therefore, it makes sense to me to use the more optimized version, instead.
      
      As I don't change any semantics, I hope a simple pull request suffices.
      c25b979d
    • B
      Auto merge of #87483 - oli-obk:tait_ice, r=lqd · f7395528
      bors 提交于
      Mir borrowck does not generate lifetime variables for 'static lifetimes during opaque type resolution
      
      Fixes #87455
      
      This situation was unreachable before #87287 as we used to just grab the resolved opaque type from typeck and replaced all regions with new inference vars. After #87287 we let the `InferCx` in mir borrowck figure out the opaque type all by itself (which it already did before, but it only used the result to sanity check with the typeck result).
      f7395528
    • B
      Auto merge of #87445 - amalik18:issue-83584-fix, r=kennytm · fe1c942e
      bors 提交于
      Fix may not to appropriate might not or must not
      
      I went through and changed occurrences of `may not` to be more explicit with `might not` and `must not`.
      fe1c942e
    • B
      Auto merge of #87285 - GuillaumeGomez:intra-doc-span, r=estebank · e66a8c26
      bors 提交于
      Improve intra doc errors display
      
      #87169
      
      `@jyn514` This is what I had in mind to avoid having duplicated backticks. I also gave a try to simply updating the span for the suggestion/help messages but I think this current one is better because less "noisy". Anyway, that allows you to see the result. ;)
      e66a8c26
    • B
      Auto merge of #85901 - ijackson:bufwriter-tweaks, r=joshtriplett · 49272389
      bors 提交于
      Bufwriter disassembly tweaks
      
      In #80690 `@BurntSushi` observed that `WriterPanicked` was erroneously not exported, and suggested renaming `into_raw_parts` to `into_parts`. (More info in my commit messages.)
      
      r? `@BurntSushi`
      49272389
    • W
      [backtraces]: look for the `begin` symbol only after seeing `end` · 286cdc81
      Wesley Wiser 提交于
      On `x86_64-pc-windows-msvc`, we often get backtraces which look like
      this:
      
      ```
      10:     0x7ff77e0e9be5 - std::panicking::rust_panic_with_hook
      11:     0x7ff77e0e11b4 - std::sys_common::backtrace::__rust_begin_short_backtrace::h5769736bdb11136c
      12:     0x7ff77e0e116f - std::sys_common::backtrace::__rust_end_short_backtrace::h61c7ecb1b55338ae
      13:     0x7ff77e0f89dd - std::panicking::begin_panic::h8e60ef9f82a41805
      14:     0x7ff77e0e108c - d
      15:     0x7ff77e0e1069 - c
      16:     0x7ff77e0e1059 - b
      17:     0x7ff77e0e1049 - a
      18:     0x7ff77e0e1039 - core::ptr::drop_in_place<std::rt::lang_start<()>::{{closure}}>::h1bfcd14d5e15ba81
      19:     0x7ff77e0e1186 - std::sys_common::backtrace::__rust_begin_short_backtrace::h5769736bdb11136c
      20:     0x7ff77e0e100c - std::rt::lang_start::{{closure}}::ha054184bbf9921e3
      ```
      
      Notice that `__rust_begin_short_backtrace` appears on frame 11 before
      `__rust_end_short_backtrace` on frame 12. This is because in typical
      release binaries without debug symbols, dbghelp.dll, which we use to walk
      and symbolize the stack, does not know where CGU internal functions
      start or end and so the closure invoked by `__rust_end_short_backtrace`
      is incorrectly described as `__rust_begin_short_backtrace` because it
      happens to be near that symbol.
      
      While that can obviously change, this has been happening quite
      consistently since #75048. Since this is a very small change to the std
      and the change makes sense by itself, I think this is worth doing.
      
      This doesn't completely resolve the situation for release binaries on
      Windows, since without debug symbols, the stack printed can still show
      incorrect symbol names (this is why the test uses `#[no_mangle]`) but it
      does slightly improve the situation in that you see the same backtrace
      you would see with `RUST_BACKTRACE=full` or in a debugger (without the
      uninteresting bits at the top and bottom).
      286cdc81
    • W
      Add regression test · 3fda7086
      Wesley Wiser 提交于
      3fda7086
    • D
      ce1bd700
  2. 29 7月, 2021 21 次提交