1. 28 3月, 2021 12 次提交
  2. 27 3月, 2021 26 次提交
    • S
      Add regression tests for #56445 · 09275802
      Simon Jakobi 提交于
      Closes #56445.
      09275802
    • J
      Update rustup cross-compilation docs link · d5bcdd34
      Jon Jensen 提交于
      d5bcdd34
    • B
      Auto merge of #83245 - the8472:generalize-slice-fill, r=m-ou-se · 10100388
      bors 提交于
      Generalize and inline slice::fill specializations
      
      This makes the memset specialization applicable to more types. And since the code now lives in a generic method it is also eligible for cross-crate inlining which  should fix #83235
      10100388
    • I
      Use detailed and shorter fs error explaination · 5495ce08
      Ivan Tham 提交于
      Includes suggestion from the8472 https://github.com/rust-lang/rust/issues/79390#issuecomment-733263336
      
      More detail error explanation in fs doc
      5495ce08
    • M
      Improve Debug implementations of Mutex and RwLock. · 5402abc4
      Mara Bos 提交于
      They now show the poison flag and use debug_non_exhaustive.
      5402abc4
    • M
      Derive Debug for io::Chain instead of manually implementing it. · 7c01e6c3
      Mara Bos 提交于
      The manual implementation has the same bounds, so I don't think there's
      any reason for a manual implementation. The names used in the derive
      implementation are even nicer (`first`/`second`) than the manual
      implementation (`t`/`u`), and include the `done_first` field too.
      7c01e6c3
    • M
      Fix Debug implementation for RwLock{Read,Write}Guard. · d7301539
      Mara Bos 提交于
      This would attempt to print the Debug representation of the lock that
      the guard has locked, which will try to lock again, fail, and just print
      "<locked>" unhelpfully.
      
      After this change, this just prints the contents of the mutex, like the
      other smart pointers (and MutexGuard) do.
      d7301539
    • M
      Use DebugStruct::finish_non_exhaustive() in std. · 2afa4cc9
      Mara Bos 提交于
      2afa4cc9
    • B
      Auto merge of #78618 - workingjubilee:ieee754-fmt, r=m-ou-se · aef11409
      bors 提交于
      Add IEEE 754 compliant fmt/parse of -0, infinity, NaN
      
      This pull request improves the Rust float formatting/parsing libraries to comply with IEEE 754's formatting expectations around certain special values, namely signed zero, the infinities, and NaN. It also adds IEEE 754 compliance tests that, while less stringent in certain places than many of the existing flt2dec/dec2flt capability tests, are intended to serve as the beginning of a roadmap to future compliance with the standard. Some relevant documentation is also adjusted with clarifying remarks.
      
      This PR follows from discussion in https://github.com/rust-lang/rfcs/issues/1074, and closes #24623.
      
      The most controversial change here is likely to be that -0 is now printed as -0. Allow me to explain: While there appears to be community support for an opt-in toggle of printing floats as if they exist in the naively expected domain of numbers, i.e. not the extended reals (where floats live), IEEE 754-2019 is clear that a float converted to a string should be capable of being transformed into the original floating point bit-pattern when it satisfies certain conditions (namely, when it is an actual numeric value i.e. not a NaN and the original and destination float width are the same). -0 is given special attention here as a value that should have its sign preserved. In addition, the vast majority of other programming languages not only output `-0` but output `-0.0` here.
      
      While IEEE 754 offers a broad leeway in how to handle producing what it calls a "decimal character sequence", it is clear that the operations a language provides should be capable of round tripping, and it is confusing to advertise the f32 and f64 types as binary32 and binary64 yet have the most basic way of producing a string and then reading it back into a floating point number be non-conformant with the standard. Further, existing documentation suggested that e.g. -0 would be printed with -0 regardless of the presence of the `+` fmt character, but it prints "+0" instead if given such (which was what led to the opening of #24623).
      
      There are other parsing and formatting issues for floating point numbers which prevent Rust from complying with the standard, as well as other well-documented challenges on the arithmetic level, but I hope that this can be the beginning of motion towards solving those challenges.
      aef11409
    • Ö
      format macro argument parsing fix · 5b9bac2a
      Ömer Sinan Ağacan 提交于
      When the character next to `{}` is "shifted" (when mapping a byte index
      in the format string to span) we should avoid shifting the span end
      index, so first map the index of `}` to span, then bump the span,
      instead of first mapping the next byte index to a span (which causes
      bumping the end span too much).
      
      Regression test added.
      
      Fixes #83344
      5b9bac2a
    • B
      Auto merge of #83547 - JohnTitor:rollup-qh7j6hg, r=JohnTitor · feaac19f
      bors 提交于
      Rollup of 9 pull requests
      
      Successful merges:
      
       - #83239 (Remove/replace some outdated crates from the dependency tree)
       - #83328 (Fixes to inline assmebly tests)
       - #83343 (Simplify and fix byte skipping in format! string parser)
       - #83388 (Make # pretty print format easier to discover)
       - #83431 (Tell GitHub to highlight `config.toml.example` as TOML)
       - #83508 (Use the direct link to the platform support page)
       - #83511 (compiletest: handle llvm_version with suffix like "12.0.0libcxx")
       - #83524 (Document that the SocketAddr memory representation is not stable)
       - #83525 (fix doc comment for `ty::Dynamic`)
      
      Failed merges:
      
      r? `@ghost`
      `@rustbot` modify labels: rollup
      feaac19f
    • K
      lazily calls some fns · 229d1999
      klensy 提交于
      229d1999
    • Y
      Rollup merge of #83525 - rust-lang:lcnr-doc-patch, r=jonas-schievink · 1b01e0d3
      Yuki Okushi 提交于
      fix doc comment for `ty::Dynamic`
      1b01e0d3
    • Y
      Rollup merge of #83524 - faern:document-socketaddr-mem-layout, r=sfackler · d340f63c
      Yuki Okushi 提交于
      Document that the SocketAddr memory representation is not stable
      
      Intended to help out with #78802. Work has been put into finding and fixing code that assumes the memory layout of `SocketAddrV4` and `SocketAddrV6`. But it turns out there are cases where new code continues to make the same assumption ([example](https://github.com/spacejam/seaslug/commit/96927dc2b7b918860a79c4eb6336051e52c6137a#diff-917db3d8ca6f862ebf42726b23c72a12b35e584e497ebdb24e474348d7c6ffb6R610-R621)).
      
      The memory layout of a type in `std` is never part of the public API. Unless explicitly stated I guess. But since that is invalidly relied upon by a considerable amount of code for these particular types, it might make sense to explicitly document this. This can be temporary. Once #78802 lands it does not make sense to rely on the layout any longer, and this documentation can also be removed.
      d340f63c
    • Y
      Rollup merge of #83511 - 12101111:fix-llvm-version-suffix, r=Mark-Simulacrum · e675d255
      Yuki Okushi 提交于
      compiletest: handle llvm_version with suffix like "12.0.0libcxx"
      
      The previous code only remove the suffix begin with `-`, but Gentoo Linux [define `LLVM_VERSION_SUFFIX="libcxx"`](https://github.com/gentoo/gentoo/blob/604d79f327176eecb05293d7154e24231229cb31/sys-devel/llvm/llvm-11.1.0.ebuild#L378) when llvm is linked to libc++ and lead to a panic:
      
      ```
      thread 'main' panicked at 'Malformed version component: ParseIntError { kind: InvalidDigit }', src/tools/compiletest/src/header.rs:968:28
      ```
      
      This new code will handle all suffix not beginning with digit or dot.
      e675d255
    • Y
      Rollup merge of #83508 - JohnTitor:platform-support-link, r=joshtriplett · 60cf7729
      Yuki Okushi 提交于
      Use the direct link to the platform support page
      60cf7729
    • Y
      Rollup merge of #83431 - camelid:config-example-gitattributes, r=Mark-Simulacrum · 9df2b5f8
      Yuki Okushi 提交于
      Tell GitHub to highlight `config.toml.example` as TOML
      
      This should be a nice small quality of life improvement when looking at
      `config.toml.example` on GitHub or looking at diffs of it in PRs.
      9df2b5f8
    • Y
      Rollup merge of #83388 - alamb:alamb/fmt-dcs, r=Mark-Simulacrum · c1432679
      Yuki Okushi 提交于
      Make # pretty print format easier to discover
      
      # Rationale:
      
      I use (cargo cult?) three formats in rust:  `{}`, debug `{:?}`, and pretty-print debug `{:#?}`. I discovered `{:#?}` in some blog post or guide when I started working in Rust. While `#` is documented I think it is hard to discover. So taking the good advice of ```@carols10cents```  I am trying to improve the docs with a PR
      
      As a reminder "pretty print" means that where `{:?}` will print something like
      ```
      foo: { b1: 1, b2: 2}
      ```
      
      `{:#?}` will prints something like
      ```
      foo {
        b1: 1
        b2: 3
      }
      ```
      
      # Changes
      Add an example to `fmt` to try and make it easier to discover `#`
      c1432679
    • Y
      Rollup merge of #83343 - osa1:issue83340, r=jackh726 · d7216bae
      Yuki Okushi 提交于
      Simplify and fix byte skipping in format! string parser
      
      Fixes '\\' handling in format strings.
      
      Fixes #83340
      d7216bae
    • Y
      Rollup merge of #83328 - tmiasko:asm-test, r=joshtriplett · 14d0d51f
      Yuki Okushi 提交于
      Fixes to inline assmebly tests
      
      * Join test thread to make assertion effective in sym.rs test case
      * Use a single codegen unit to reduce non-determinism in srcloc.rs test #82886
      14d0d51f
    • Y
      Rollup merge of #83239 - JohnTitor:reduce-deps, r=Mark-Simulacrum · 5473b6dc
      Yuki Okushi 提交于
      Remove/replace some outdated crates from the dependency tree
      
      - Remove `cloudabi` by updating `parking_lot` to 0.11.1.
      - Replace `packed_simd` with `packed_simd2` by updating `bytecount` to 0.6.2.
      5473b6dc
    • B
      Auto merge of #83418 - ehuss:update-cargo, r=ehuss · f811f140
      bors 提交于
      Update cargo
      
      12 commits in 90691f2bfe9a50291a98983b1ed2feab51d5ca55..1e8703890f285befb5e32627ad4e0a0454dde1fb
      2021-03-16 21:36:55 +0000 to 2021-03-26 16:59:39 +0000
      - tests: Tolerate "exit status" in error messages (rust-lang/cargo#9307)
      - Default macOS targets to `unpacked` debuginfo (rust-lang/cargo#9298)
      - Fix publication of packages with metadata and resolver (rust-lang/cargo#9300)
      - Fix config includes not working. (rust-lang/cargo#9299)
      - Emit note when `--future-incompat-report` had nothing to report (rust-lang/cargo#9263)
      - RFC 3052: Stop including authors field in manifests made by cargo new (rust-lang/cargo#9282)
      - Refactor feature handling, and improve error messages. (rust-lang/cargo#9290)
      - Split out cargo-util package for cargo-test-support. (rust-lang/cargo#9292)
      - Fix redundant_semicolons warning in resolver-tests. (rust-lang/cargo#9293)
      - Use serde's error message option to avoid implementing `Deserialize`. (rust-lang/cargo#9237)
      - Allow `cargo update` to operate with the --offline flag (rust-lang/cargo#9279)
      - Fix typo in faq.md (rust-lang/cargo#9285)
      f811f140
    • E
      Update cargo · ea194b8b
      Eric Huss 提交于
      ea194b8b
    • L
      fix doc comment for `ty::Dynamic · 7ca2c981
      lcnr 提交于
      7ca2c981
    • L
    • B
      Auto merge of #83488 - Aaron1011:ban-expr-inner-attrs, r=petrochenkov · 5e65467e
      bors 提交于
      Ban custom inner attributes in expressions and statements
      
      Split out from https://github.com/rust-lang/rust/pull/82608
      
      Custom inner attributes are unstable, so this won't break any stable users.
      This allows us to speed up token collection, and avoid a redundant call to `collect_tokens_no_attrs` when parsing an `Expr` that has outer attributes.
      
      r? `@petrochenkov`
      5e65467e
  3. 26 3月, 2021 2 次提交
    • B
      Auto merge of #83404 - michaelwoerister:issue83045, r=eddyb · b8719c51
      bors 提交于
      Fix #83045 by moving some crate loading verification code to a better place
      
      r? `@EddyB`
      b8719c51
    • B
      Auto merge of #82980 - tmiasko:import-cold-multiplier, r=michaelwoerister · e4230587
      bors 提交于
      Import small cold functions
      
      The Rust code is often written under an assumption that for generic
      methods inline attribute is mostly unnecessary, since for optimized
      builds using ThinLTO, a method will be code generated in at least one
      CGU and available for import.
      
      For example, deref implementations for Box, Vec, MutexGuard, and
      MutexGuard are not currently marked as inline, neither is identity
      implementation of From trait.
      
      In PGO builds, when functions are determined to be cold, the default
      multiplier of zero will stop the import, no matter how trivial the
      implementation.
      
      Increase slightly the default multiplier from 0 to 0.1.
      
      r? `@ghost`
      e4230587