1. 16 11月, 2018 31 次提交
  2. 15 11月, 2018 9 次提交
    • B
      Auto merge of #55974 - pietroalbini:rollup, r=pietroalbini · 9649c1f7
      bors 提交于
      Rollup of 17 pull requests
      
      Successful merges:
      
       - #55182 (Redox: Update to new changes)
       - #55211 (Add BufWriter::buffer method)
       - #55507 (Add link to std::mem::size_of to size_of intrinsic documentation)
       - #55530 (Speed up String::from_utf16)
       - #55556 (Use `Mmap` to open the rmeta file.)
       - #55622 (NetBSD: link libstd with librt in addition to libpthread)
       - #55750 (Make `NodeId` and `HirLocalId` `newtype_index`)
       - #55778 (Wrap some query results in `Lrc`.)
       - #55781 (More precise spans for temps and their drops)
       - #55785 (Add mem::forget_unsized() for forgetting unsized values)
       - #55852 (Rewrite `...` as `..=` as a `MachineApplicable` 2018 idiom lint)
       - #55865 (Unix RwLock: avoid racy access to write_locked)
       - #55901 (fix various typos in doc comments)
       - #55926 (Change sidebar selector to fix compatibility with docs.rs)
       - #55930 (A handful of hir tweaks)
       - #55932 (core/char: Speed up `to_digit()` for `radix <= 10`)
       - #55956 (add tests for some fixed ICEs)
      
      Failed merges:
      
      r? @ghost
      9649c1f7
    • P
      Rollup merge of #55956 - euclio:issue-55587, r=estebank · d0e08ce8
      Pietro Albini 提交于
      add tests for some fixed ICEs
      
      Fixes #55587.
      Fixes #54348.
      
      Looks like these ICEs are already fixed in nightly, so this PR just adds tests.
      
      r? @estebank
      d0e08ce8
    • P
      Rollup merge of #55932 - Turbo87:to_digit, r=alexcrichton · f40f04bc
      Pietro Albini 提交于
      core/char: Speed up `to_digit()` for `radix <= 10`
      
      I noticed that `char::to_digit()` seemed to do a bit of extra work for handling `[a-zA-Z]` characters. Since `to_digit(10)` seems to be the most common case (at least in the `rust` codebase) I thought it might be valuable to create a fast path for that case, and according to the benchmarks that I added in one of the commits it seems to pay off. I also created another fast path for the `radix < 10` case, which also seems to have a positive effect.
      
      It is very well possible that I'm measuring something entirely unrelated though, so please verify these numbers and let me know if I missed something!
      
      ### Before
      
      ```
      # Run 1
      test char::methods::bench_to_digit_radix_10      ... bench:      16,265 ns/iter (+/- 1,774)
      test char::methods::bench_to_digit_radix_16      ... bench:      13,938 ns/iter (+/- 2,479)
      test char::methods::bench_to_digit_radix_2       ... bench:      13,090 ns/iter (+/- 524)
      test char::methods::bench_to_digit_radix_36      ... bench:      14,236 ns/iter (+/- 1,949)
      
      # Run 2
      test char::methods::bench_to_digit_radix_10      ... bench:      16,176 ns/iter (+/- 1,589)
      test char::methods::bench_to_digit_radix_16      ... bench:      13,896 ns/iter (+/- 3,140)
      test char::methods::bench_to_digit_radix_2       ... bench:      13,158 ns/iter (+/- 1,112)
      test char::methods::bench_to_digit_radix_36      ... bench:      14,206 ns/iter (+/- 1,312)
      
      # Run 3
      test char::methods::bench_to_digit_radix_10      ... bench:      16,221 ns/iter (+/- 2,423)
      test char::methods::bench_to_digit_radix_16      ... bench:      14,361 ns/iter (+/- 3,926)
      test char::methods::bench_to_digit_radix_2       ... bench:      13,097 ns/iter (+/- 671)
      test char::methods::bench_to_digit_radix_36      ... bench:      14,388 ns/iter (+/- 1,068)
      ```
      
      ### After
      
      ```
      # Run 1
      test char::methods::bench_to_digit_radix_10      ... bench:      11,521 ns/iter (+/- 552)
      test char::methods::bench_to_digit_radix_16      ... bench:      12,926 ns/iter (+/- 684)
      test char::methods::bench_to_digit_radix_2       ... bench:      11,266 ns/iter (+/- 1,085)
      test char::methods::bench_to_digit_radix_36      ... bench:      14,213 ns/iter (+/- 614)
      
      # Run 2
      test char::methods::bench_to_digit_radix_10      ... bench:      11,424 ns/iter (+/- 1,042)
      test char::methods::bench_to_digit_radix_16      ... bench:      12,854 ns/iter (+/- 1,193)
      test char::methods::bench_to_digit_radix_2       ... bench:      11,193 ns/iter (+/- 716)
      test char::methods::bench_to_digit_radix_36      ... bench:      14,249 ns/iter (+/- 3,514)
      
      # Run 3
      test char::methods::bench_to_digit_radix_10      ... bench:      11,469 ns/iter (+/- 685)
      test char::methods::bench_to_digit_radix_16      ... bench:      12,852 ns/iter (+/- 568)
      test char::methods::bench_to_digit_radix_2       ... bench:      11,275 ns/iter (+/- 1,356)
      test char::methods::bench_to_digit_radix_36      ... bench:      14,188 ns/iter (+/- 1,501)
      ```
      
      I ran the benchmark using:
      
      ```sh
      python x.py bench src/libcore --stage 1 --keep-stage 0 --test-args "bench_to_digit"
      ```
      f40f04bc
    • P
      Rollup merge of #55930 - ljedrz:hir_bonuses, r=cramertj · c915f921
      Pietro Albini 提交于
      A handful of hir tweaks
      
      - remove an unused `hir_vec` macro pattern
      - simplify `fmt::Debug` for `hir::Path` (take advantage of the `Display` implementation)
      - remove an unused type alias (`CrateConfig`)
      - simplify a `match` expression (join common patterns)
      c915f921
    • P
      Rollup merge of #55926 - cynecx:fix-rustdoc-mobile-css, r=GuillaumeGomez · 12556a4b
      Pietro Albini 提交于
      Change sidebar selector to fix compatibility with docs.rs
      
      Fix for #55883.
      12556a4b
    • P
      Rollup merge of #55901 - euclio:speling, r=petrochenkov · 66fcb3ce
      Pietro Albini 提交于
      fix various typos in doc comments
      66fcb3ce
    • P
      Rollup merge of #55865 - RalfJung:unix-rwlock, r=alexcrichton · fb455329
      Pietro Albini 提交于
      Unix RwLock: avoid racy access to write_locked
      
      We should only access `write_locked` if we really got the lock.
      fb455329
    • P
      Rollup merge of #55852 - varkor:dotdotequals-lint, r=zackmdavis · 3c7acc78
      Pietro Albini 提交于
      Rewrite `...` as `..=` as a `MachineApplicable` 2018 idiom lint
      
      Fixes https://github.com/rust-lang/rust/issues/51043.
      3c7acc78
    • P
      Rollup merge of #55785 - stjepang:unsized-drop-forget, r=alexcrichton · 202724cd
      Pietro Albini 提交于
      Add mem::forget_unsized() for forgetting unsized values
      
      ~~Allows passing values of `T: ?Sized` types to `mem::drop` and `mem::forget`.~~
      
      Adds `mem::forget_unsized()` that accepts `T: ?Sized`.
      
      I had to revert the PR that removed the `forget` intrinsic and replaced it with `ManuallyDrop`: https://github.com/rust-lang/rust/pull/40559
      We can't use `ManuallyDrop::new()` here because it needs `T: Sized` and we don't have support for unsized return values yet (will we ever?).
      
      r? @EddyB
      202724cd