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 8 pull requests #86920

Merged
merged 27 commits into from
Jul 7, 2021
Merged

Rollup of 8 pull requests #86920

merged 27 commits into from
Jul 7, 2021

Commits on Jun 25, 2021

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

Commits on Jul 3, 2021

  1. Clean up rustdoc IDs

    GuillaumeGomez committed Jul 3, 2021
    Configuration menu
    Copy the full SHA
    8c2a37a View commit details
    Browse the repository at this point in the history

Commits on Jul 5, 2021

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

Commits on Jul 6, 2021

  1. Replace deprecated compare_and_swap by compare_exchange_weak in core:…

    …:sync::atomic::fence example
    juniorbassani committed Jul 6, 2021
    Configuration menu
    Copy the full SHA
    a87fb18 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0d61e6e View commit details
    Browse the repository at this point in the history
  3. migrate cpu-usage-over-time.py to python 3

    The only change here is a fix for `sys.platform` on Linux. Python 3.3
    changed the API to return "linux" instead of "linux2"/"linux3", so this
    commit uses `.startswith("python")` to make the code work on Python 3
    without breaking Python 2.
    pietroalbini committed Jul 6, 2021
    Configuration menu
    Copy the full SHA
    0b3653b View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    bbfb857 View commit details
    Browse the repository at this point in the history
  5. Rename lint

    rylev committed Jul 6, 2021
    Configuration menu
    Copy the full SHA
    df71a99 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    1d49658 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    ecca9a8 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    6c87772 View commit details
    Browse the repository at this point in the history
  9. Fix mis-styled code

    rylev committed Jul 6, 2021
    Configuration menu
    Copy the full SHA
    3a45bb9 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    4e5b78f View commit details
    Browse the repository at this point in the history
  11. Add s to non_fmt_panic

    rylev committed Jul 6, 2021
    Configuration menu
    Copy the full SHA
    a902e25 View commit details
    Browse the repository at this point in the history
  12. rust_2021_token_prefixes

    rylev committed Jul 6, 2021
    Configuration menu
    Copy the full SHA
    81c11a2 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    941eb2a View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    d4e384b View commit details
    Browse the repository at this point in the history
  15. rewrote documentation for thread::yield_now()

    The old documentation suggested the use of yield_now for repeated
    polling instead of discouraging it; it also made the false claim that
    channels are implementing using yield_now. (They are not, except for
    a corner case).
    godmar committed Jul 6, 2021
    Configuration menu
    Copy the full SHA
    fb464a3 View commit details
    Browse the repository at this point in the history

Commits on Jul 7, 2021

  1. Update books

    ehuss committed Jul 7, 2021
    Configuration menu
    Copy the full SHA
    1b4704d View commit details
    Browse the repository at this point in the history
  2. Rollup merge of rust-lang#80918 - yoshuawuyts:int-log2, r=m-ou-se

    Add Integer::log variants
    
    _This is another attempt at landing rust-lang#70835, which was approved by the libs team but failed on Android tests through Bors. The text copied here is from the original issue. The only change made so far is the addition of non-`checked_` variants of the log methods._
    
    _Tracking issue: #70887_
    
    ---
    
    This implements `{log,log2,log10}` methods for all integer types. The implementation was provided by `@substack` for use in the stdlib.
    
    _Note: I'm not big on math, so this PR is a best effort written with limited knowledge. It's likely I'll be getting things wrong, but happy to learn and correct. Please bare with me._
    
    ## Motivation
    Calculating the logarithm of a number is a generally useful operation. Currently the stdlib only provides implementations for floats, which means that if we want to calculate the logarithm for an integer we have to cast it to a float and then back to an int.
    
    > would be nice if there was an integer log2 instead of having to either use the f32 version or leading_zeros() which i have to verify the results of every time to be sure
    
    _— [`@substack,` 2020-03-08](https://twitter.com/substack/status/1236445105197727744)_
    
    At higher numbers converting from an integer to a float we also risk overflows. This means that Rust currently only provides log operations for a limited set of integers.
    
    The process of doing log operations by converting between floats and integers is also prone to rounding errors. In the following example we're trying to calculate `base10` for an integer. We might try and calculate the `base2` for the values, and attempt [a base swap](https://www.rapidtables.com/math/algebra/Logarithm.html#log-rules) to arrive at `base10`. However because we're performing intermediate rounding we arrive at the wrong result:
    
    ```rust
    // log10(900) = ~2.95 = 2
    dbg!(900f32.log10() as u64);
    
    // log base change rule: logb(x) = logc(x) / logc(b)
    // log2(900) / log2(10) = 9/3 = 3
    dbg!((900f32.log2() as u64) / (10f32.log2() as u64));
    ```
    _[playground](https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=6bd6c68b3539e400f9ca4fdc6fc2eed0)_
    
    This is somewhat nuanced as a lot of the time it'll work well, but in real world code this could lead to some hard to track bugs. By providing correct log implementations directly on integers we can help prevent errors around this.
    
    ## Implementation notes
    
    I checked whether LLVM intrinsics existed before implementing this, and none exist yet. ~~Also I couldn't really find a better way to write the `ilog` function. One option would be to make it a private method on the number, but I didn't see any precedent for that. I also didn't know where to best place the tests, so I added them to the bottom of the file. Even though they might seem like quite a lot they take no time to execute.~~
    
    ## References
    
    - [Log rules](https://www.rapidtables.com/math/algebra/Logarithm.html#log-rules)
    - [Rounding error playground](https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=6bd6c68b3539e400f9ca4fdc6fc2eed0)
    - [substack's tweet asking about integer log2 in the stdlib](https://twitter.com/substack/status/1236445105197727744)
    - [Integer Logarithm, A. Jaffer 2008](https://people.csail.mit.edu/jaffer/III/ilog.pdf)
    JohnTitor authored Jul 7, 2021
    Configuration menu
    Copy the full SHA
    9bbc470 View commit details
    Browse the repository at this point in the history
  3. Rollup merge of rust-lang#86717 - rylev:rename, r=nikomatsakis

    Rename some Rust 2021 lints to better names
    
    Based on conversation in rust-lang#85894.
    
    Rename a bunch of Rust 2021 related lints:
    
    Lints that are officially renamed because they are already in beta or stable:
    * `disjoint_capture_migration` => `rust_2021_incompatible_closure_captures`
    * `or_patterns_back_compat` => `rust_2021_incompatible_or_patterns`
    * `non_fmt_panic` => `non_fmt_panics`
    
    Lints that are renamed but don't require any back -compat work since they aren't yet in stable:
    * `future_prelude_collision` => `rust_2021_prelude_collisions`
    * `reserved_prefix` => `rust_2021_token_prefixes`
    
    Lints that have been discussed but that I did not rename:
    * ~`non_fmt_panic` and `bare_trait_object`: is making this plural worth the headache we might cause users?~
    * `array_into_iter`: I'm unsure of a good name and whether bothering users with a name change is worth it.
    
    r? `@nikomatsakis`
    JohnTitor authored Jul 7, 2021
    Configuration menu
    Copy the full SHA
    7e95290 View commit details
    Browse the repository at this point in the history
  4. Rollup merge of rust-lang#86819 - GuillaumeGomez:cleanup-rustdoc-ids,…

    … r=jyn514
    
    Clean up rustdoc IDs
    
    I cherry-picked the commit from rust-lang#86178. It adds missing rustdoc IDs (for the HTML) and remove unused ones.
    
    cc `@camelid`
    
    r? `@jyn514`
    JohnTitor authored Jul 7, 2021
    Configuration menu
    Copy the full SHA
    cbb40cd View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#86880 - m-ou-se:test-manuallydrop-clone-fro…

    …m, r=Mark-Simulacrum
    
    Test ManuallyDrop::clone_from.
    
    See rust-lang#86288
    JohnTitor authored Jul 7, 2021
    Configuration menu
    Copy the full SHA
    c630b6b View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#86906 - juniorbassani:update-sync-docs, r=y…

    …aahc
    
    Replace deprecated compare_and_swap and fix typo in core::sync::atomic::{fence, compiler_fence} docs
    JohnTitor authored Jul 7, 2021
    Configuration menu
    Copy the full SHA
    fe3d6a7 View commit details
    Browse the repository at this point in the history
  7. Rollup merge of rust-lang#86907 - pietroalbini:ci-cpu-stats-python3, …

    …r=Mark-Simulacrum
    
    Migrate `cpu-usage-over-time.py` to Python 3
    
    The only change here is a fix for `sys.platform` on Linux. Python 3.3 changed the API to return `"linux"` instead of `"linux2"`/`"linux3"`, so this PR uses `.startswith("linux")` to make the code work on Python 3 without breaking Python 2.
    JohnTitor authored Jul 7, 2021
    Configuration menu
    Copy the full SHA
    7be29c1 View commit details
    Browse the repository at this point in the history
  8. Rollup merge of rust-lang#86916 - godmar:@godmar/thread-yield-documen…

    …tation-fix, r=joshtriplett
    
    rewrote documentation for thread::yield_now()
    
    The old documentation suggested the use of yield_now for repeated
    polling instead of discouraging it; it also made the false claim that
    channels are implemented using yield_now. (They are not, except for
    a corner case).
    JohnTitor authored Jul 7, 2021
    Configuration menu
    Copy the full SHA
    9aee3c2 View commit details
    Browse the repository at this point in the history
  9. Rollup merge of rust-lang#86919 - ehuss:update-books, r=ehuss

    Update books
    
    ## nomicon
    
    8 commits in b9ca313e687c991223e23e5520529815dc281205..7a13537f96af4b9b8e3ea296d6e5c3c7ab72ce9f
    2021-06-22 12:02:20 -0400 to 2021-07-05 23:34:47 -0400
    - Apply review comments
    - Fix some style issues
    - Move the list of coercions to the reference
    - Add an example that shows the null-pointer opt does not happen
    - Remove casting list from the nomicon (rust-lang/nomicon#287)
    - Audit `ignore` annotations (rust-lang/nomicon#288)
    - rename typo "lifetime" to "reference" (rust-lang/nomicon#286)
    - Add an incomplete warning to the top page (rust-lang/nomicon#274)
    
    ## reference
    
    7 commits in d9699fa8f3186440fdaadd703d63d8d42322c176..ab60513a3a5a0591e237fddff5d027a982648392
    2021-06-21 12:23:10 -0700 to 2021-07-05 08:27:31 -0700
    - fix grammar in Expressions (rust-lang/reference#1057)
    - fix comment in function parameter drop scope example (rust-lang/reference#1056)
    - fix typo in macro-ambiguity.md (rust-lang/reference#1058)
    - Mention (negative) infinity values on float-to-int casting (rust-lang/reference#1054)
    -  (rust-lang/reference#841)
    - Missing TypeParamBounds in TypeAlias (rust-lang/reference#1036)
    - Be more precise about array offset in type layouts (rust-lang/reference#1034)
    
    ## book
    
    34 commits in 55a26488ddefc8433e73a2e8352d70f7a5c7fc2b..a90f07f1e9a7fc75dc9105a6c6f16d5c13edceb0
    2021-05-09 12:03:18 -0500 to 2021-07-05 14:43:12 -0400
    - Clarify ?Sized syntax. Fixes rust-lang/book#2422.
    - Add some notes that macros are different than functions
    - Break up a long sentence. Fixes rust-lang/book#2329.
    - Further clarify and make consistent the reference to deref coercion
    - Update ch04-03-slices.md
    - add usage for `String` reference
    - Update ch15-02-deref.md (rust-lang/book#2780)
    - Remove claim about performance of i32
    - Reword to avoid awkward pluralization
    - Make the link to the reference relative
    - Merge remote-tracking branch 'origin/pr/2753'
    - Reword number of library crates a package contains (rust-lang/book#2750)
    - Clarify explanation of why you can test private functions; add link
    - Merge remote-tracking branch 'origin/pr/2743'
    - Fix code hiding that I broke in eb60fedc9
    - Link to the exact later section we're talking about
    - improve cross-references for newtype pattern
    - ch12-05, listing 12-20: Add missing "does not compile" warning (rust-lang/book#2731)
    - cargo format
    - Merge remote-tracking branch 'origin/pr/2724'
    - Remove ordinal numbers and only refer to indexes to avoid confusion
    - Let's mention the former and current authors of tlborm.
    - Update tlborm link to point to Veykril's up-to-date version (rust-lang/book#2722)
    - Merge remote-tracking branch 'origin/pr/2720'
    - Describe the ferris pictures in the alt text
    - Merge remote-tracking branch 'origin/pr/2707'
    - Reword ... explanation to include the word deprecated, list that first
    - Precise that the `...` inclusive range pattern has been replaces (rust-lang/book#2714)
    -  (rust-lang/book#2696)
    - fix typo: missing "type" after generic (rust-lang/book#2777)
    -  (rust-lang/book#2709)
    - Remove sentence about how Rust used to be
    - Fix a potentially confusing statement about static lifetimes of static variables. (rust-lang/book#2692)
    - Replace 'which'. (rust-lang/book#2663)
    
    ## rust-by-example
    
    2 commits in 805e016c5792ad2adabb66e348233067d5ea9f10..028f93a61500fe8f746ee7cc6b204ea6c9f42935
    2021-05-20 17:08:34 -0300 to 2021-07-06 06:28:53 -0300
    - Fix a couple of typos in the `integration_testing.md` file (rust-lang/rust-by-example#1448)
    - Fix Structures type list (rust-lang/rust-by-example#1446)
    
    ## rustc-dev-guide
    
    13 commits in fe34beddb41dea5cb891032512a8d5b842b99696..60e282559104035985331645907c3d9f842312c5
    2021-06-21 21:50:12 +0200 to 2021-07-05 11:21:03 -0400
    - Fixed typos in inline code
    - Document lang items (rust-lang/rustc-dev-guide#1119)
    - More specifics on what future-incompatible lints are used for
    - Fix line lens
    - Update information on lints particularly on future-incompatible
    - Update section of lint store
    - Update around half of the January 2021 date references (rust-lang/rustc-dev-guide#1155)
    - Create issues for many TODOs (rust-lang/rustc-dev-guide#1163)
    - Links from rustc-dev-guide to std-dev-guide (rust-lang/rustc-dev-guide#1152)
    - Document how to mark features as incomplete (rust-lang/rustc-dev-guide#1151)
    - Remove requests or suggestions about rebase and fixup contradictory to rust-highfive bot comment (rust-lang/rustc-dev-guide#1111)
    - Generate glossary table correctly (rust-lang/rustc-dev-guide#1146)
    - Correct the wrong serial number (rust-lang/rustc-dev-guide#1147)
    
    ## edition-guide
    
    3 commits in c74b2a0d6bf55774cf15d69f05dfe05408b8f81a..5d57b3832f8d308a9f478ce0a69799548f27ad4d
    2021-06-14 10:48:27 -0700 to 2021-07-05 10:33:32 +0200
    - Add more info for warnings promoted to errors (rust-lang/edition-guide#247)
    - Create triagebot.toml
    - Clarify snippets in 2021 panic docs. (rust-lang/edition-guide#245)
    
    ## embedded-book
    
    1 commits in cbec77fbd8eea0c13e390dd9eded1ae200e811d1..506840eb73b0749336e1d5274e16d6393892ee82
    2021-06-10 06:26:32 +0000 to 2021-06-24 00:01:32 +0000
    - Update book to track quickstart changes  (rust-embedded/book#296)
    JohnTitor authored Jul 7, 2021
    Configuration menu
    Copy the full SHA
    5196885 View commit details
    Browse the repository at this point in the history