]> git.lizzy.rs Git - rust.git/log
rust.git
2 years agorename variable
Ralf Jung [Sat, 10 Jul 2021 12:14:09 +0000 (14:14 +0200)]
rename variable

2 years agoavoid reentrant lock acquire when ThreadIds run out
Ralf Jung [Fri, 9 Jul 2021 18:50:08 +0000 (20:50 +0200)]
avoid reentrant lock acquire when ThreadIds run out

2 years agoAuto merge of #87003 - m-ou-se:rollup-x7mhv3v, r=m-ou-se
bors [Fri, 9 Jul 2021 15:34:16 +0000 (15:34 +0000)]
Auto merge of #87003 - m-ou-se:rollup-x7mhv3v, r=m-ou-se

Rollup of 5 pull requests

Successful merges:

 - #86855 (Fix comments about unique borrows)
 - #86881 (Inline implementation of lookup_line)
 - #86937 (Change linked tracking issue for more_qualified_paths)
 - #86994 (Update the comment on `lower_expr_try`)
 - #87000 (Use #[track_caller] in const panic diagnostics.)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

2 years agoRollup merge of #87000 - m-ou-se:const-panic-track-caller, r=oli-obk
Mara Bos [Fri, 9 Jul 2021 14:20:36 +0000 (16:20 +0200)]
Rollup merge of #87000 - m-ou-se:const-panic-track-caller, r=oli-obk

Use #[track_caller] in const panic diagnostics.

This change stops const panic diagnostics from reporting inside #[track_caller] functions by skipping over them.

2 years agoRollup merge of #86994 - scottmcm:fix_expr_try_comment, r=petrochenkov
Mara Bos [Fri, 9 Jul 2021 14:20:35 +0000 (16:20 +0200)]
Rollup merge of #86994 - scottmcm:fix_expr_try_comment, r=petrochenkov

Update the comment on `lower_expr_try`

I'd updated the ones inside the method, but not its doc comment.

2 years agoRollup merge of #86937 - rylev:tracking-more-qualified-paths, r=nagisa
Mara Bos [Fri, 9 Jul 2021 14:20:33 +0000 (16:20 +0200)]
Rollup merge of #86937 - rylev:tracking-more-qualified-paths, r=nagisa

Change linked tracking issue for more_qualified_paths

This updates the linked tracking issue for the `more_qualified_paths` feature from the implementation PR #80080 to an actual tracking issue #86935.

2 years agoRollup merge of #86881 - tmiasko:lookup-line, r=nagisa
Mara Bos [Fri, 9 Jul 2021 14:20:32 +0000 (16:20 +0200)]
Rollup merge of #86881 - tmiasko:lookup-line, r=nagisa

Inline implementation of lookup_line

to avoid unnecessary conversions from `Option<usize>` to `isize` and back.

2 years agoRollup merge of #86855 - LeSeulArtichaut:patch-1, r=davidtwco
Mara Bos [Fri, 9 Jul 2021 14:20:32 +0000 (16:20 +0200)]
Rollup merge of #86855 - LeSeulArtichaut:patch-1, r=davidtwco

Fix comments about unique borrows

2 years agoUse #[track_caller] in const panic diagnostics.
Mara Bos [Fri, 9 Jul 2021 13:21:58 +0000 (15:21 +0200)]
Use #[track_caller] in const panic diagnostics.

It was already used for the message. This also uses it for the spans
used for the error and backtrace.

2 years agoAuto merge of #86888 - FabianWolff:issue-86600, r=davidtwco
bors [Fri, 9 Jul 2021 12:51:02 +0000 (12:51 +0000)]
Auto merge of #86888 - FabianWolff:issue-86600, r=davidtwco

Fix double warning about illegal floating-point literal pattern

This PR fixes #86600. The problem is that the `ConstToPat` struct contains a field `include_lint_checks`, which determines whether lints should be emitted or not, but this field is currently not obeyed at one point, leading to a warning being emitted more than once. I have fixed this behavior here.

3 years agoAuto merge of #85828 - scottmcm:raw-eq, r=oli-obk
bors [Fri, 9 Jul 2021 09:16:27 +0000 (09:16 +0000)]
Auto merge of #85828 - scottmcm:raw-eq, r=oli-obk

Stop generating `alloca`s & `memcmp` for simple short array equality

Example:
```rust
pub fn demo(x: [u16; 6], y: [u16; 6]) -> bool { x == y }
```

Before:
```llvm
define zeroext i1 `@_ZN10playground4demo17h48537f7eac23948fE(i96` %0, i96 %1) unnamed_addr #0 {
start:
  %y = alloca [6 x i16], align 8
  %x = alloca [6 x i16], align 8
  %.0..sroa_cast = bitcast [6 x i16]* %x to i96*
  store i96 %0, i96* %.0..sroa_cast, align 8
  %.0..sroa_cast3 = bitcast [6 x i16]* %y to i96*
  store i96 %1, i96* %.0..sroa_cast3, align 8
  %_11.i.i.i = bitcast [6 x i16]* %x to i8*
  %_14.i.i.i = bitcast [6 x i16]* %y to i8*
  %bcmp.i.i.i = call i32 `@bcmp(i8*` nonnull dereferenceable(12) %_11.i.i.i, i8* nonnull dereferenceable(12) %_14.i.i.i, i64 12) #2, !alias.scope !2
  %2 = icmp eq i32 %bcmp.i.i.i, 0
  ret i1 %2
}
```
```x86
playground::demo: # `@playground::demo`
sub rsp, 32
mov qword ptr [rsp], rdi
mov dword ptr [rsp + 8], esi
mov qword ptr [rsp + 16], rdx
mov dword ptr [rsp + 24], ecx
xor rdi, rdx
xor esi, ecx
or rsi, rdi
sete al
add rsp, 32
ret
```

After:
```llvm
define zeroext i1 `@_ZN4mini4demo17h7a8994aaa314c981E(i96` %0, i96 %1) unnamed_addr #0 {
start:
  %2 = icmp eq i96 %0, %1
  ret i1 %2
}
```
```x86
_ZN4mini4demo17h7a8994aaa314c981E:
xor rcx, r8
xor edx, r9d
or rdx, rcx
sete al
ret
```

3 years agoUpdate the comment on `lower_expr_try`
Scott McMurray [Fri, 9 Jul 2021 07:13:44 +0000 (00:13 -0700)]
Update the comment on `lower_expr_try`

I'd updated the ones inside the method, but not its doc comment.

3 years agoAuto merge of #86904 - m-ou-se:prelude-collision-check-trait, r=nikomatsakis
bors [Fri, 9 Jul 2021 06:35:42 +0000 (06:35 +0000)]
Auto merge of #86904 - m-ou-se:prelude-collision-check-trait, r=nikomatsakis

Check FromIterator trait impl in prelude collision check.

Fixes #86902.

3 years agoAuto merge of #86869 - sexxi-goose:rfc2229-migration-capture-kind, r=nikomatsakis
bors [Fri, 9 Jul 2021 03:54:41 +0000 (03:54 +0000)]
Auto merge of #86869 - sexxi-goose:rfc2229-migration-capture-kind, r=nikomatsakis

Account for capture kind in auto traits migration

Modifies the current auto traits migration for RFC2229 so it takes into account capture kind

Closes https://github.com/rust-lang/project-rfc-2229/issues/51

r? `@nikomatsakis`

3 years agoAuto merge of #86701 - sexxi-goose:optimization, r=nikomatsakis
bors [Fri, 9 Jul 2021 01:13:49 +0000 (01:13 +0000)]
Auto merge of #86701 - sexxi-goose:optimization, r=nikomatsakis

2229: Reduce the size of closures with `capture_disjoint_fields`

One key observation while going over the closure size profile of rustc
was that we are disjointly capturing one or more fields starting at an
immutable reference.

Disjoint capture over immutable reference doesn't add too much value
because the fields can either be borrowed immutably or copied.

One possible edge case of the optimization is when a fields of a struct
have a longer lifetime than the structure, therefore we can't completely
get rid of all the accesses on top of sharef refs, only the rightmost
one. Here is a possible example:

```rust
struct MyStruct<'a> {
   a: &'static A,
   b: B,
   c: C<'a>,
}

fn foo<'a, 'b>(m: &'a MyStruct<'b>) -> impl FnMut() + 'static {
    let c = || drop(&*m.a.field_of_a);
    // Here we really do want to capture `*m.a` because that outlives `'static`

    // If we capture `m`, then the closure no longer outlives `'static'
    // it is constrained to `'a`
}
```

r? `@nikomatsakis`

3 years agoBless a UI test
Scott McMurray [Thu, 8 Jul 2021 22:16:37 +0000 (15:16 -0700)]
Bless a UI test

3 years agoAdjust the threshold to look at the ABI, not just the size
Scott McMurray [Thu, 3 Jun 2021 06:35:30 +0000 (23:35 -0700)]
Adjust the threshold to look at the ABI, not just the size

3 years agoUse cranelift's `Type::int` instead of doing the match myself
Scott McMurray [Tue, 1 Jun 2021 13:19:49 +0000 (06:19 -0700)]
Use cranelift's `Type::int` instead of doing the match myself

<https://docs.rs/cranelift-codegen/0.74.0/cranelift_codegen/ir/types/struct.Type.html#method.int>

3 years agoPR Feedback: Don't put SSA-only types in `CValue`s
Scott McMurray [Mon, 31 May 2021 17:26:08 +0000 (10:26 -0700)]
PR Feedback: Don't put SSA-only types in `CValue`s

3 years agoAdd another codegen test, array_eq_zero
Scott McMurray [Mon, 31 May 2021 04:27:29 +0000 (21:27 -0700)]
Add another codegen test, array_eq_zero

Showing that this avoids an alloca and private constant.

3 years agoImplement the raw_eq intrinsic in codegen_cranelift
Scott McMurray [Mon, 31 May 2021 01:04:07 +0000 (18:04 -0700)]
Implement the raw_eq intrinsic in codegen_cranelift

3 years agoPR feedback
Scott McMurray [Sun, 30 May 2021 18:31:56 +0000 (11:31 -0700)]
PR feedback

- Add `:Sized` assertion in interpreter impl
- Use `Scalar::from_bool` instead of `ScalarInt: From<bool>`
- Remove unneeded comparison in intrinsic typeck
- Make this UB to call with undef, not just return undef in that case

3 years agoStop generating `alloca`s+`memcmp` for simple array equality
Scott McMurray [Sun, 30 May 2021 17:25:41 +0000 (10:25 -0700)]
Stop generating `alloca`s+`memcmp` for simple array equality

3 years agoMove the `PartialEq` and `Eq` impls for arrays to a separate file
Scott McMurray [Sun, 30 May 2021 17:23:50 +0000 (10:23 -0700)]
Move the `PartialEq` and `Eq` impls for arrays to a separate file

3 years agoInline implementation of lookup_line
Tomasz Miąsko [Mon, 5 Jul 2021 00:00:00 +0000 (00:00 +0000)]
Inline implementation of lookup_line

to simplify the implementation and avoid unnecessary
conversions from `Option<usize>` to `isize` and back.

3 years agoConsider capture kind for auto traits migration
Roxane [Sat, 3 Jul 2021 19:29:09 +0000 (15:29 -0400)]
Consider capture kind for auto traits migration

3 years agoAdd new test case
Roxane [Sat, 3 Jul 2021 18:39:10 +0000 (14:39 -0400)]
Add new test case

3 years agoAuto merge of #86930 - tspiteri:int_log10, r=kennytm
bors [Thu, 8 Jul 2021 20:19:00 +0000 (20:19 +0000)]
Auto merge of #86930 - tspiteri:int_log10, r=kennytm

special case for integer log10

Now that #80918 has been merged, this PR provides a faster version of `log10`.

The PR also adds some tests for values close to all powers of 10.

3 years agoAuto merge of #86982 - GuillaumeGomez:rollup-7sbye3c, r=GuillaumeGomez
bors [Thu, 8 Jul 2021 17:51:10 +0000 (17:51 +0000)]
Auto merge of #86982 - GuillaumeGomez:rollup-7sbye3c, r=GuillaumeGomez

Rollup of 8 pull requests

Successful merges:

 - #84961 (Rework SESSION_GLOBALS API)
 - #86726 (Use diagnostic items instead of lang items for rfc2229 migrations)
 - #86789 (Update BTreeSet::drain_filter documentation)
 - #86838 (Checking that function is const if marked with rustc_const_unstable)
 - #86903 (Fix small headers display)
 - #86913 (Document rustdoc with `--document-private-items`)
 - #86957 (Update .mailmap file)
 - #86971 (mailmap: Add alternative addresses for myself)

Failed merges:

 - #86869 (Account for capture kind in auto traits migration)

r? `@ghost`
`@rustbot` modify labels: rollup

3 years agoUpdate src/test/ui/rust-2021/future-prelude-collision-unneeded.rs
Niko Matsakis [Thu, 8 Jul 2021 16:31:56 +0000 (12:31 -0400)]
Update src/test/ui/rust-2021/future-prelude-collision-unneeded.rs

3 years agoRollup merge of #86971 - ijackson:mailmap, r=Mark-Simulacrum
Guillaume Gomez [Thu, 8 Jul 2021 16:30:41 +0000 (18:30 +0200)]
Rollup merge of #86971 - ijackson:mailmap, r=Mark-Simulacrum

mailmap: Add alternative addresses for myself

At least one of these is already in-tree; it seems plausible that the others might appear too.

3 years agoRollup merge of #86957 - jhpratt:update-mailmap, r=jyn514
Guillaume Gomez [Thu, 8 Jul 2021 16:30:40 +0000 (18:30 +0200)]
Rollup merge of #86957 - jhpratt:update-mailmap, r=jyn514

Update .mailmap file

3 years agoRollup merge of #86913 - Stupremee:document-rustdoc-private-items, r=jyn514
Guillaume Gomez [Thu, 8 Jul 2021 16:30:39 +0000 (18:30 +0200)]
Rollup merge of #86913 - Stupremee:document-rustdoc-private-items, r=jyn514

Document rustdoc with `--document-private-items`

The `tool_doc` macro introduced in #86737 did not use `false` as the default value for `binary` when it is not provided, so the `if` is not even expanded and thus the argument is never provided if the `binary` argument isn't.

Resolves #86900

r? ```@Mark-Simulacrum```

3 years agoRollup merge of #86903 - GuillaumeGomez:small-header-display, r=Nemo157
Guillaume Gomez [Thu, 8 Jul 2021 16:30:38 +0000 (18:30 +0200)]
Rollup merge of #86903 - GuillaumeGomez:small-header-display, r=Nemo157

Fix small headers display

You can see it on the `IoSlice` or on the `ErrorKind` pages.

Before:

![Screenshot from 2021-07-06 15-26-33](https://user-images.githubusercontent.com/3050060/124610344-b50a8100-de70-11eb-8ab4-ac5de8adf18f.png)
![Screenshot from 2021-07-08 17-51-43](https://user-images.githubusercontent.com/3050060/124953436-7235de00-e015-11eb-9f99-b361c7eb41a9.png)

After:

![Screenshot from 2021-07-08 17-48-42](https://user-images.githubusercontent.com/3050060/124953042-12d7ce00-e015-11eb-8132-1ae4552dd969.png)
![Screenshot from 2021-07-08 17-48-47](https://user-images.githubusercontent.com/3050060/124953052-13706480-e015-11eb-89f8-dab96c2f0f63.png)

r? `@Nemo157`

3 years agoRollup merge of #86838 - lambinoo:I-69630-rust_const_unstable_check_const, r=oli-obk
Guillaume Gomez [Thu, 8 Jul 2021 16:30:34 +0000 (18:30 +0200)]
Rollup merge of #86838 - lambinoo:I-69630-rust_const_unstable_check_const, r=oli-obk

Checking that function is const if marked with rustc_const_unstable

Fixes #69630

This one is still missing tests to check the behavior but I checked by hand and it seemed to work.
I would not mind some direction for writing those unit tests!

3 years agoRollup merge of #86789 - janikrabe:btreeset-drainfilter-doc, r=kennytm
Guillaume Gomez [Thu, 8 Jul 2021 16:30:34 +0000 (18:30 +0200)]
Rollup merge of #86789 - janikrabe:btreeset-drainfilter-doc, r=kennytm

Update BTreeSet::drain_filter documentation

This commit makes the documentation of `BTreeSet::drain_filter` more
consistent with that of `BTreeMap::drain_filter` after the changes in
f0b8166870bd73a872642f090ae6b88e2bef922a.

In particular, this explicitly documents the iteration order.

3 years agoRollup merge of #86726 - sexxi-goose:use-diagnostic-item-for-rfc2229-migration, r...
Guillaume Gomez [Thu, 8 Jul 2021 16:30:33 +0000 (18:30 +0200)]
Rollup merge of #86726 - sexxi-goose:use-diagnostic-item-for-rfc2229-migration, r=nikomatsakis

Use diagnostic items instead of lang items for rfc2229 migrations

This PR removes the `Send`, `UnwindSafe` and `RefUnwindSafe` lang items introduced in https://github.com/rust-lang/rust/pull/84730, and uses diagnostic items instead to check for `Send`, `UnwindSafe` and `RefUnwindSafe` traits for RFC2229 migrations.

r? ```@nikomatsakis```

3 years agoRollup merge of #84961 - GuillaumeGomez:rework-session-globals, r=oli-obk
Guillaume Gomez [Thu, 8 Jul 2021 16:30:32 +0000 (18:30 +0200)]
Rollup merge of #84961 - GuillaumeGomez:rework-session-globals, r=oli-obk

Rework SESSION_GLOBALS API

Fixes #84954.

<s>Needs #84953 to be merged first (I cherry-picked its commits to have CI pass).</s> (done)

r? ``@Aaron1011``

3 years agoFix display of small-section-header elements
Guillaume Gomez [Thu, 8 Jul 2021 15:49:06 +0000 (17:49 +0200)]
Fix display of small-section-header elements

3 years agoUpdate to last upstream version
Guillaume Gomez [Thu, 8 Jul 2021 15:14:28 +0000 (17:14 +0200)]
Update to last upstream version

3 years agoAuto merge of #86520 - ssomers:btree_iterators_checked_unwrap, r=Mark-Simulacrum
bors [Thu, 8 Jul 2021 15:06:43 +0000 (15:06 +0000)]
Auto merge of #86520 - ssomers:btree_iterators_checked_unwrap, r=Mark-Simulacrum

BTree: consistently avoid unwrap_unchecked in iterators

Some iterator support functions named `_unchecked` internally use `unwrap`, some use `unwrap_unchecked`. This PR tries settling on `unwrap`. #86195 went up the same road but travelled way further and doesn't seem successful.

r? `@Mark-Simulacrum`

3 years agoRework SESSION_GLOBALS API to prevent overwriting it
Guillaume Gomez [Wed, 5 May 2021 19:31:25 +0000 (21:31 +0200)]
Rework SESSION_GLOBALS API to prevent overwriting it

3 years agoAuto merge of #85363 - EFanZh:gdb-pretty-print-slices, r=michaelwoerister
bors [Thu, 8 Jul 2021 12:25:47 +0000 (12:25 +0000)]
Auto merge of #85363 - EFanZh:gdb-pretty-print-slices, r=michaelwoerister

Support pretty printing slices using GDB

Support pretty printing `&[T]`, `&mut [T]` and `&mut str` types using GDB.

Support pretty printing `&mut [T]` and `&mut str` types using LLDB.

Fixes #85219.

3 years agomailmap: Add alternative addresses for myself
Ian Jackson [Thu, 8 Jul 2021 11:44:25 +0000 (12:44 +0100)]
mailmap: Add alternative addresses for myself

At least one of these is already in-tree; it seems plausible that
others might appear too.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
3 years agoAuto merge of #86823 - the8472:opt-chunk-tra, r=kennytm
bors [Thu, 8 Jul 2021 09:44:52 +0000 (09:44 +0000)]
Auto merge of #86823 - the8472:opt-chunk-tra, r=kennytm

Optimize unchecked indexing into chunks and chunks_mut

Fixes #53340

```
# BEFORE

$ rustc +nightly -Copt-level=3 -Ccodegen-units=1 -Clto=fat chunks.rs
$ perf stat ./chunks

 Performance counter stats for './chunks':

          3,177.03 msec task-clock                #    1.000 CPUs utilized
                 4      context-switches          #    0.001 K/sec
                 0      cpu-migrations            #    0.000 K/sec
           984,006      page-faults               #    0.310 M/sec
    13,092,199,322      cycles                    #    4.121 GHz                      (83.29%)
       384,543,475      stalled-cycles-frontend   #    2.94% frontend cycles idle     (83.35%)
     7,414,280,722      stalled-cycles-backend    #   56.63% backend cycles idle      (83.38%)
    50,493,980,662      instructions              #    3.86  insn per cycle
                                                  #    0.15  stalled cycles per insn  (83.29%)
     6,625,375,297      branches                  # 2085.396 M/sec                    (83.38%)
         3,087,652      branch-misses             #    0.05% of all branches          (83.31%)

       3.178079469 seconds time elapsed

       2.327156000 seconds user
       0.762041000 seconds sys

# AFTER

$ ./build/x86_64-unknown-linux-gnu/stage1/bin/rustc -Copt-level=3 -Ccodegen-units=1 -Clto=fat chunks.rs
$ perf stat ./chunks

 Performance counter stats for './chunks':

          2,705.76 msec task-clock                #    1.000 CPUs utilized
                 4      context-switches          #    0.001 K/sec
                 0      cpu-migrations            #    0.000 K/sec
           984,005      page-faults               #    0.364 M/sec
    11,156,763,039      cycles                    #    4.123 GHz                      (83.26%)
       342,198,882      stalled-cycles-frontend   #    3.07% frontend cycles idle     (83.37%)
     6,486,263,637      stalled-cycles-backend    #   58.14% backend cycles idle      (83.37%)
    40,553,476,617      instructions              #    3.63  insn per cycle
                                                  #    0.16  stalled cycles per insn  (83.37%)
     6,668,429,113      branches                  # 2464.532 M/sec                    (83.37%)
         3,099,636      branch-misses             #    0.05% of all branches          (83.26%)

       2.706725288 seconds time elapsed

       1.782083000 seconds user
       0.848424000 seconds sys
```

3 years agoFix typo in comment.
Mara Bos [Thu, 8 Jul 2021 09:33:33 +0000 (11:33 +0200)]
Fix typo in comment.

3 years agoAuto merge of #86949 - RalfJung:miri, r=RalfJung
bors [Thu, 8 Jul 2021 06:46:41 +0000 (06:46 +0000)]
Auto merge of #86949 - RalfJung:miri, r=RalfJung

update Miri

Fixes https://github.com/rust-lang/rust/issues/86923
Cc `@rust-lang/miri` r? `@ghost`

3 years agofn must be const if marked with stability attribut
Lamb [Sat, 3 Jul 2021 10:07:06 +0000 (12:07 +0200)]
fn must be const if marked with stability attribut

remove trailing newline

fix: test with attribute but missing const

Update compiler/rustc_passes/src/stability.rs

Co-authored-by: Léo Lanteri Thauvin <leseulartichaut@gmail.com>
Add test for extern functions

fix: using span_help instead of span_suggestion

add test for some ABIs + fmt fix

Update compiler/rustc_passes/src/stability.rs

Co-authored-by: Léo Lanteri Thauvin <leseulartichaut@gmail.com>
Refractor and add test for `impl const`

Add test to make sure no output + cleanup condition

-----------------------------

remove stdcall test, failing CI test

C abi is already tested in this, so it is not that useful to test another one.
The tested code is blind to which specific ABI for now, as long as it's not an intrinsic one

3 years agoAuto merge of #86966 - JohnTitor:rollup-uiqj2vc, r=JohnTitor
bors [Thu, 8 Jul 2021 04:05:41 +0000 (04:05 +0000)]
Auto merge of #86966 - JohnTitor:rollup-uiqj2vc, r=JohnTitor

Rollup of 9 pull requests

Successful merges:

 - #86639 (Support lint tool names in rustc command line options)
 - #86812 (Recover from `&dyn mut ...` parse errors)
 - #86917 (Add doc comment for `impl From<LayoutError> for TryReserveError`)
 - #86925 (Add self to mailmap)
 - #86927 (Sync rustc_codegen_cranelift)
 - #86932 (Fix ICE when misplaced visibility cannot be properly parsed)
 - #86933 (Clean up rustdoc static files)
 - #86955 (Fix typo in `ops::Drop` docs)
 - #86956 (Revert "Add "every" as a doc alias for "all".")

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

3 years agoRollup merge of #86956 - cuviper:unalias-every, r=m-ou-se
Yuki Okushi [Thu, 8 Jul 2021 01:44:37 +0000 (10:44 +0900)]
Rollup merge of #86956 - cuviper:unalias-every, r=m-ou-se

Revert "Add "every" as a doc alias for "all"."

This reverts commit 35450365ac2fda8b948fe6fd1a1123837a9554b0 (#81697) for "every" and closes #86554 in kind for "some".

The new [doc alias policy](https://std-dev-guide.rust-lang.org/documentation/doc-alias-policy.html) is that we don't want language-specific aliases like these JavaScript names, and we especially don't want to conflict with real names. While "every" is okay in the latter regard, its natural pair "some" makes a doc-search collision with `Option::Some`.

r? ```@m-ou-se```

3 years agoRollup merge of #86955 - Swordelf2:patch-1, r=cuviper
Yuki Okushi [Thu, 8 Jul 2021 01:44:36 +0000 (10:44 +0900)]
Rollup merge of #86955 - Swordelf2:patch-1, r=cuviper

Fix typo in `ops::Drop` docs

3 years agoRollup merge of #86933 - GuillaumeGomez:cleanup-rustdoc-static-files, r=Manishearth
Yuki Okushi [Thu, 8 Jul 2021 01:44:35 +0000 (10:44 +0900)]
Rollup merge of #86933 - GuillaumeGomez:cleanup-rustdoc-static-files, r=Manishearth

Clean up rustdoc static files

The `html/static` of rustdoc was starting to be quite a mess... So I moved files in sub-folders to make it easier to follow. Here what remains in `html/static` folder:

```
$ ls
COPYRIGHT.txt  css  fonts  images  js  LICENSE-APACHE.txt  LICENSE-MIT.txt
```

cc ```@jyn514```
r? ```@Manishearth```

3 years agoRollup merge of #86932 - rylev:fix-ice-86895, r=estebank
Yuki Okushi [Thu, 8 Jul 2021 01:44:34 +0000 (10:44 +0900)]
Rollup merge of #86932 - rylev:fix-ice-86895, r=estebank

Fix ICE when misplaced visibility cannot be properly parsed

Fixes #86895

The issue was that a failure to parse the visibility was causing the original error to be dropped before being emitted.

The resulting error isn't quite as nice as when the visibility is parsed properly, but I'm not sure which error to prioritize here. Displaying both errors might be too confusing.

r? ```@estebank```

3 years agoRollup merge of #86927 - bjorn3:sync_cg_clif-2021-07-07, r=bjorn3
Yuki Okushi [Thu, 8 Jul 2021 01:44:33 +0000 (10:44 +0900)]
Rollup merge of #86927 - bjorn3:sync_cg_clif-2021-07-07, r=bjorn3

Sync rustc_codegen_cranelift

The main hightlight this sync is basic support for AArch64. Most things should work on Linux, but there does seem to be an ABI incompatibility causing proc-macros to crash, see https://github.com/bjorn3/rustc_codegen_cranelift/issues/1184. Thanks to ```@afonso360``` for implementing all Cranelift features that were necessary to compile for AArch64 using cg_clif. Also thanks to ```@shamatar``` for implementing the `llvm.x86.addcarry.64` and `llvm.x86.subborrow.64` llvm intrinsics used by num-bigint (https://github.com/bjorn3/rustc_codegen_cranelift/pull/1178) and ```@eggyal``` for implementing multi-threading support for the lazy jit mode. (https://github.com/bjorn3/rustc_codegen_cranelift/pull/1166)

r? ```@ghost```

```@rustbot``` label +A-codegen +A-cranelift +T-compiler

3 years agoRollup merge of #86925 - inquisitivecrystal:mailmap, r=Mark-Simulacrum
Yuki Okushi [Thu, 8 Jul 2021 01:44:32 +0000 (10:44 +0900)]
Rollup merge of #86925 - inquisitivecrystal:mailmap, r=Mark-Simulacrum

Add self to mailmap

For personal reasons, I would currently prefer to be known by this name.

3 years agoRollup merge of #86917 - notriddle:notriddle/from-try-reserve-error, r=JohnTitor
Yuki Okushi [Thu, 8 Jul 2021 01:44:31 +0000 (10:44 +0900)]
Rollup merge of #86917 - notriddle:notriddle/from-try-reserve-error, r=JohnTitor

Add doc comment for `impl From<LayoutError> for TryReserveError`

3 years agoRollup merge of #86812 - FabianWolff:recover-dyn-mut, r=petrochenkov
Yuki Okushi [Thu, 8 Jul 2021 01:44:30 +0000 (10:44 +0900)]
Rollup merge of #86812 - FabianWolff:recover-dyn-mut, r=petrochenkov

Recover from `&dyn mut ...` parse errors

Consider this example:
```rust
fn main() {
    let r: &dyn mut Trait;
}
```
This currently leads to:
```
error: expected one of `!`, `(`, `;`, `=`, `?`, `for`, lifetime, or path, found keyword `mut`
 --> src/main.rs:2:17
  |
2 |     let r: &dyn mut Trait;
  |                 ^^^ expected one of 8 possible tokens

error: aborting due to previous error
```
However, especially for beginners, I think it is easy to get `&dyn mut` and `&mut dyn` confused. With my changes, I get a help message, and the parser even recovers:
```
error: `mut` must precede `dyn`
 --> test.rs:2:12
  |
2 |     let r: &dyn mut Trait;
  |            ^^^^^^^^ help: place `mut` before `dyn`: `&mut dyn`

error[E0405]: cannot find trait `Trait` in this scope
 --> test.rs:2:21
  |
2 |     let r: &dyn mut Trait;
  |                     ^^^^^ not found in this scope

error: aborting due to 2 previous errors
```

3 years agoRollup merge of #86639 - eholk:lint-tool, r=petrochenkov
Yuki Okushi [Thu, 8 Jul 2021 01:44:29 +0000 (10:44 +0900)]
Rollup merge of #86639 - eholk:lint-tool, r=petrochenkov

Support lint tool names in rustc command line options

When rustc is running without a lint tool such as clippy enabled, options for lints such as `clippy::foo` are meant to be ignored. This was already working for those specified by attrs, such as `#![allow(clippy::foo)]`, but this did not work for command line arguments like `-A clippy::foo`. This PR fixes that issue.

Note that we discovered this issue while discussing https://github.com/rust-lang/cargo/issues/5034.

Fixes #86628.

3 years agoUpdate .mailmap file
Jacob Pratt [Wed, 7 Jul 2021 20:32:04 +0000 (16:32 -0400)]
Update .mailmap file

3 years agoRevert "Add "every" as a doc alias for "all"."
Josh Stone [Wed, 7 Jul 2021 20:13:26 +0000 (13:13 -0700)]
Revert "Add "every" as a doc alias for "all"."

This reverts commit 35450365ac2fda8b948fe6fd1a1123837a9554b0.

3 years agoFix typo in `ops::Drop` docs
Swordelf2 [Wed, 7 Jul 2021 19:26:32 +0000 (22:26 +0300)]
Fix typo in `ops::Drop` docs

3 years agoAuto merge of #86105 - bjorn3:link_info_refactor, r=petrochenkov
bors [Wed, 7 Jul 2021 18:28:53 +0000 (18:28 +0000)]
Auto merge of #86105 - bjorn3:link_info_refactor, r=petrochenkov

Refactor the generation of the metadata for linking

3 years agoCleanup: unify lint name checking
Eric Holk [Wed, 7 Jul 2021 17:50:50 +0000 (10:50 -0700)]
Cleanup: unify lint name checking

This change merges `check_lint_and_tool_name` into `check_lint_name` in
order to avoid having two very similar functions.

Also adds the `.stderr` file back for the test case, since apparently
it is still needed.

3 years agoFix test case
Eric Holk [Wed, 7 Jul 2021 17:28:35 +0000 (10:28 -0700)]
Fix test case

Previously this was using a `.stderr` file, but that does not seem to
work for all cases. This change uses `// error-pattern:` instead.

3 years agoIgnore Windows debugger pretty-printing tests
EFanZh [Wed, 7 Jul 2021 17:04:59 +0000 (01:04 +0800)]
Ignore Windows debugger pretty-printing tests

3 years agoupdate Miri
Ralf Jung [Wed, 7 Jul 2021 16:44:07 +0000 (18:44 +0200)]
update Miri

3 years agoClean up rustdoc static files
Guillaume Gomez [Wed, 7 Jul 2021 12:27:54 +0000 (14:27 +0200)]
Clean up rustdoc static files

3 years agoDocument rustdoc with `--document-private-items`
Justus K [Tue, 6 Jul 2021 17:00:35 +0000 (19:00 +0200)]
Document rustdoc with `--document-private-items`

3 years agoRemove a sorting operation from used_crates
bjorn3 [Mon, 7 Jun 2021 13:23:44 +0000 (15:23 +0200)]
Remove a sorting operation from used_crates

3 years agoAdd generic types to prelude collision lint test.
Mara Bos [Wed, 7 Jul 2021 13:25:48 +0000 (13:25 +0000)]
Add generic types to prelude collision lint test.

3 years agoAdd test for trait check in prelude collision lint.
Mara Bos [Tue, 6 Jul 2021 13:51:25 +0000 (13:51 +0000)]
Add test for trait check in prelude collision lint.

3 years agoCheck FromIterator trait impl in prelude collision check.
Mara Bos [Tue, 6 Jul 2021 13:41:22 +0000 (13:41 +0000)]
Check FromIterator trait impl in prelude collision check.

3 years agoFix ICE when misplaced visibility cannot be properly parsed
Ryan Levick [Wed, 7 Jul 2021 12:25:40 +0000 (14:25 +0200)]
Fix ICE when misplaced visibility cannot be properly parsed

3 years agoChange linked tracking issue for more qualified paths
Ryan Levick [Wed, 7 Jul 2021 12:56:51 +0000 (14:56 +0200)]
Change linked tracking issue for more qualified paths

3 years agospecial case for integer log10
Trevor Spiteri [Wed, 7 Jul 2021 12:10:05 +0000 (14:10 +0200)]
special case for integer log10

3 years agotest integer log10 values close to all powers of 10
Trevor Spiteri [Wed, 7 Jul 2021 11:13:58 +0000 (13:13 +0200)]
test integer log10 values close to all powers of 10

3 years agoIgnore Android debugger pretty-printing tests
EFanZh [Wed, 7 Jul 2021 10:46:24 +0000 (18:46 +0800)]
Ignore Android debugger pretty-printing tests

3 years agoAdd memchr to list of permitted cg_clif deps
bjorn3 [Wed, 7 Jul 2021 09:39:29 +0000 (11:39 +0200)]
Add memchr to list of permitted cg_clif deps

Object started depending on it

3 years agoMerge commit '3a31c6d8272c14388a34622193baf553636fe470' into sync_cg_clif-2021-07-07
bjorn3 [Wed, 7 Jul 2021 09:14:20 +0000 (11:14 +0200)]
Merge commit '3a31c6d8272c14388a34622193baf553636fe470' into sync_cg_clif-2021-07-07

3 years agoRustup to rustc 1.55.0-nightly (885399992 2021-07-06)
bjorn3 [Wed, 7 Jul 2021 09:08:52 +0000 (11:08 +0200)]
Rustup to rustc 1.55.0-nightly (885399992 2021-07-06)

3 years agoAdd self to mailmap
inquisitivecrystal [Wed, 7 Jul 2021 08:33:25 +0000 (01:33 -0700)]
Add self to mailmap

3 years agoAuto merge of #86920 - JohnTitor:rollup-buvzpkr, r=JohnTitor
bors [Wed, 7 Jul 2021 03:31:23 +0000 (03:31 +0000)]
Auto merge of #86920 - JohnTitor:rollup-buvzpkr, r=JohnTitor

Rollup of 8 pull requests

Successful merges:

 - #80918 (Add Integer::log variants)
 - #86717 (Rename some Rust 2021 lints to better names )
 - #86819 (Clean up rustdoc IDs)
 - #86880 (Test ManuallyDrop::clone_from.)
 - #86906 (Replace deprecated compare_and_swap and fix typo in core::sync::atomic::{fence, compiler_fence} docs)
 - #86907 (Migrate `cpu-usage-over-time.py` to Python 3)
 - #86916 (rewrote documentation for thread::yield_now())
 - #86919 (Update books)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

3 years agoRollup merge of #86919 - ehuss:update-books, r=ehuss
Yuki Okushi [Wed, 7 Jul 2021 03:17:45 +0000 (12:17 +0900)]
Rollup merge of #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-nursery/nomicon#287)
- Audit `ignore` annotations (rust-lang-nursery/nomicon#288)
- rename typo "lifetime" to "reference" (rust-lang-nursery/nomicon#286)
- Add an incomplete warning to the top page (rust-lang-nursery/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-nursery/reference#1057)
- fix comment in function parameter drop scope example (rust-lang-nursery/reference#1056)
- fix typo in macro-ambiguity.md (rust-lang-nursery/reference#1058)
- Mention (negative) infinity values on float-to-int casting (rust-lang-nursery/reference#1054)
-  (rust-lang-nursery/reference#841)
- Missing TypeParamBounds in TypeAlias (rust-lang-nursery/reference#1036)
- Be more precise about array offset in type layouts (rust-lang-nursery/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-nursery/edition-guide#247)
- Create triagebot.toml
- Clarify snippets in 2021 panic docs. (rust-lang-nursery/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)

3 years agoRollup merge of #86916 - godmar:@godmar/thread-yield-documentation-fix, r=joshtriplett
Yuki Okushi [Wed, 7 Jul 2021 03:17:44 +0000 (12:17 +0900)]
Rollup merge of #86916 - godmar:@godmar/thread-yield-documentation-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).

3 years agoRollup merge of #86907 - pietroalbini:ci-cpu-stats-python3, r=Mark-Simulacrum
Yuki Okushi [Wed, 7 Jul 2021 03:17:43 +0000 (12:17 +0900)]
Rollup merge of #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.

3 years agoRollup merge of #86906 - juniorbassani:update-sync-docs, r=yaahc
Yuki Okushi [Wed, 7 Jul 2021 03:17:42 +0000 (12:17 +0900)]
Rollup merge of #86906 - juniorbassani:update-sync-docs, r=yaahc

Replace deprecated compare_and_swap and fix typo in core::sync::atomic::{fence, compiler_fence} docs

3 years agoRollup merge of #86880 - m-ou-se:test-manuallydrop-clone-from, r=Mark-Simulacrum
Yuki Okushi [Wed, 7 Jul 2021 03:17:41 +0000 (12:17 +0900)]
Rollup merge of #86880 - m-ou-se:test-manuallydrop-clone-from, r=Mark-Simulacrum

Test ManuallyDrop::clone_from.

See #86288

3 years agoRollup merge of #86819 - GuillaumeGomez:cleanup-rustdoc-ids, r=jyn514
Yuki Okushi [Wed, 7 Jul 2021 03:17:40 +0000 (12:17 +0900)]
Rollup merge of #86819 - GuillaumeGomez:cleanup-rustdoc-ids, r=jyn514

Clean up rustdoc IDs

I cherry-picked the commit from https://github.com/rust-lang/rust/pull/86178. It adds missing rustdoc IDs (for the HTML) and remove unused ones.

cc `@camelid`

r? `@jyn514`

3 years agoRollup merge of #86717 - rylev:rename, r=nikomatsakis
Yuki Okushi [Wed, 7 Jul 2021 03:17:39 +0000 (12:17 +0900)]
Rollup merge of #86717 - rylev:rename, r=nikomatsakis

Rename some Rust 2021 lints to better names

Based on conversation in https://github.com/rust-lang/rust/issues/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`

3 years agoRollup merge of #80918 - yoshuawuyts:int-log2, r=m-ou-se
Yuki Okushi [Wed, 7 Jul 2021 03:17:32 +0000 (12:17 +0900)]
Rollup merge of #80918 - yoshuawuyts:int-log2, r=m-ou-se

Add Integer::log variants

_This is another attempt at landing https://github.com/rust-lang/rust/pull/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)

3 years agoAuto merge of #86901 - sexxi-goose:query_remove, r=nikomatsakis
bors [Wed, 7 Jul 2021 01:03:41 +0000 (01:03 +0000)]
Auto merge of #86901 - sexxi-goose:query_remove, r=nikomatsakis

Make type_implements_trait not a query

r? `@nikomatsakis`

3 years agoApply suggestions from code review
Niko Matsakis [Wed, 7 Jul 2021 00:52:53 +0000 (20:52 -0400)]
Apply suggestions from code review

3 years agoUnify lint tool and lint name checking
Eric Holk [Wed, 7 Jul 2021 00:19:20 +0000 (17:19 -0700)]
Unify lint tool and lint name checking

This shares a little more code between checking command line and
attribute lint specifications.

3 years agoUpdate books
Eric Huss [Wed, 7 Jul 2021 00:07:35 +0000 (17:07 -0700)]
Update books

3 years agoParse tool name for command line lint options
Eric Holk [Thu, 24 Jun 2021 23:38:32 +0000 (16:38 -0700)]
Parse tool name for command line lint options

3 years agoAdd ui test for command line lints with tool names
Eric Holk [Fri, 25 Jun 2021 21:28:03 +0000 (14:28 -0700)]
Add ui test for command line lints with tool names

This adds a ui test to make sure rustc accepts lint arguments such as
`-A clippy::foo` when clippy is disabled.

3 years agoAuto merge of #86911 - bjorn3:crate_info_refactor, r=petrochenkov
bors [Tue, 6 Jul 2021 22:20:43 +0000 (22:20 +0000)]
Auto merge of #86911 - bjorn3:crate_info_refactor, r=petrochenkov

Refactor linker code

This merges `LinkerInfo` into `CrateInfo` as there is no reason to keep them separate. `LinkerInfo::to_linker` is merged into `get_linker` as both have different logic for each linker type and `to_linker` is directly called after `get_linker`. Also contains a couple of small cleanups.

See the individual commits for all changes.

3 years agoAdd doc comment for `impl From<LayoutError> for TryReserveError`
Michael Howell [Tue, 6 Jul 2021 21:44:18 +0000 (14:44 -0700)]
Add doc comment for `impl From<LayoutError> for TryReserveError`

3 years agoFix depnode size
Aman Arora [Tue, 6 Jul 2021 19:55:13 +0000 (15:55 -0400)]
Fix depnode size

3 years agorewrote documentation for thread::yield_now()
Godmar Back [Tue, 6 Jul 2021 19:50:42 +0000 (15:50 -0400)]
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).