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 7 pull requests #48040

Merged
merged 17 commits into from
Feb 6, 2018
Merged

Rollup of 7 pull requests #48040

merged 17 commits into from
Feb 6, 2018

Commits on Jan 29, 2018

  1. Document std::os::raw.

    clarfonthey committed Jan 29, 2018
    Configuration menu
    Copy the full SHA
    1a04353 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    853fa58 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    2cab068 View commit details
    Browse the repository at this point in the history

Commits on Feb 4, 2018

  1. libtest: Replace panics with error messages

    Gilad Naaman committed Feb 4, 2018
    Configuration menu
    Copy the full SHA
    61ff3ba View commit details
    Browse the repository at this point in the history

Commits on Feb 5, 2018

  1. Override try_[r]fold for RangeInclusive

    Because the last item needs special handling, it seems that LLVM has trouble canonicalizing the loops in external iteration.  With the override, it becomes obvious that the start==end case exits the loop (as opposed to the one *after* that exiting the loop in external iteration).
    scottmcm committed Feb 5, 2018
    Configuration menu
    Copy the full SHA
    1b1e887 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1461d12 View commit details
    Browse the repository at this point in the history

Commits on Feb 6, 2018

  1. Configuration menu
    Copy the full SHA
    8d8ba81 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3cf73f4 View commit details
    Browse the repository at this point in the history
  3. fix docs link

    QuietMisdreavus committed Feb 6, 2018
    Configuration menu
    Copy the full SHA
    fefd5e9 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    498ef20 View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#46962 - clarcharr:os_raw_docs, r=QuietMisdr…

    …eavus
    
    Document std::os::raw.
    
    This adds a brief explanation to each type and its definition according to C. This also helps clarify that the definitions of the types, as described by rustdoc, are not necessarily the same from platform to platform.
    kennytm authored Feb 6, 2018
    Configuration menu
    Copy the full SHA
    0a3e07d View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#47986 - Gilnaa:libtest_relaxed, r=Mark-Simu…

    …lacrum
    
    libtest: Replace panics with error messages
    
    This replaces explicit panics on failures in libtest with prints to stderr.
    Where "failures" == CLI argument parsing and such
    
    Before:
    ```
    $ ./foo-stable --not-an-option
    thread 'main' panicked at '"Unrecognized option: \'not-an-option\'"', libtest/lib.rs:251:27
    note: Run with `RUST_BACKTRACE=1` for a backtrace.
    ```
    
    After:
    ```
    $ ./foo-nightly --not-an-option
    error: Unrecognized option: 'not-an-option'
    ```
    kennytm authored Feb 6, 2018
    Configuration menu
    Copy the full SHA
    a026e8a View commit details
    Browse the repository at this point in the history
  7. Rollup merge of rust-lang#48012 - scottmcm:faster-rangeinclusive-fold…

    …, r=alexcrichton
    
    Override try_[r]fold for RangeInclusive
    
    Because the last item needs special handling, it seems that LLVM has trouble canonicalizing the loops in external iteration.  With the override, it becomes obvious that the start==end case exits the loop (as opposed to the one *after* that exiting the loop in external iteration).
    
    Demo adapted from rust-lang#45222
    ```rust
    #[no_mangle]
    pub fn foo3r(n: u64) -> u64 {
        let mut count = 0;
        (0..n).for_each(|_| {
            (0 ..= n).rev().for_each(|j| {
                count += j;
            })
        });
        count
    }
    ```
    
    <details>
     <summary>Current nightly ASM, 100 lines (https://play.rust-lang.org/?gist=f5674c702c6e2045c3aab5d03763e5f6&version=nightly&mode=release)</summary>
    
    ```asm
    foo3r:
    	pushq	%rbx
    .Lcfi0:
    .Lcfi1:
    	testq	%rdi, %rdi
    	je	.LBB0_1
    	testb	$1, %dil
    	jne	.LBB0_4
    	xorl	%eax, %eax
    	xorl	%r8d, %r8d
    	cmpq	$1, %rdi
    	jne	.LBB0_11
    	jmp	.LBB0_23
    .LBB0_1:
    	xorl	%eax, %eax
    	popq	%rbx
    	retq
    .LBB0_4:
    	xorl	%r8d, %r8d
    	movq	$-1, %r9
    	xorl	%eax, %eax
    	movq	%rdi, %r11
    	xorl	%r10d, %r10d
    	jmp	.LBB0_5
    .LBB0_8:
    	addq	%r11, %rax
    	movq	%rsi, %r11
    	movq	%rdx, %r10
    .LBB0_5:
    	cmpq	%r11, %r10
    	movl	$1, %ecx
    	cmovbq	%r9, %rcx
    	cmoveq	%r8, %rcx
    	testq	%rcx, %rcx
    	movl	$0, %esi
    	movl	$1, %edx
    	je	.LBB0_8
    	cmpq	$-1, %rcx
    	jne	.LBB0_9
    	leaq	-1(%r11), %rsi
    	movq	%r10, %rdx
    	jmp	.LBB0_8
    .LBB0_9:
    	movl	$1, %r8d
    	cmpq	$1, %rdi
    	je	.LBB0_23
    .LBB0_11:
    	xorl	%r9d, %r9d
    	movq	$-1, %r10
    .LBB0_12:
    	movq	%rdi, %rsi
    	xorl	%r11d, %r11d
    	jmp	.LBB0_13
    .LBB0_16:
    	addq	%rsi, %rax
    	movq	%rcx, %rsi
    	movq	%rbx, %r11
    .LBB0_13:
    	cmpq	%rsi, %r11
    	movl	$1, %edx
    	cmovbq	%r10, %rdx
    	cmoveq	%r9, %rdx
    	testq	%rdx, %rdx
    	movl	$0, %ecx
    	movl	$1, %ebx
    	je	.LBB0_16
    	cmpq	$-1, %rdx
    	jne	.LBB0_17
    	leaq	-1(%rsi), %rcx
    	movq	%r11, %rbx
    	jmp	.LBB0_16
    .LBB0_17:
    	movq	%rdi, %rcx
    	xorl	%r11d, %r11d
    	jmp	.LBB0_18
    .LBB0_21:
    	addq	%rcx, %rax
    	movq	%rsi, %rcx
    	movq	%rbx, %r11
    .LBB0_18:
    	cmpq	%rcx, %r11
    	movl	$1, %edx
    	cmovbq	%r10, %rdx
    	cmoveq	%r9, %rdx
    	testq	%rdx, %rdx
    	movl	$0, %esi
    	movl	$1, %ebx
    	je	.LBB0_21
    	cmpq	$-1, %rdx
    	jne	.LBB0_22
    	leaq	-1(%rcx), %rsi
    	movq	%r11, %rbx
    	jmp	.LBB0_21
    .LBB0_22:
    	addq	$2, %r8
    	cmpq	%rdi, %r8
    	jne	.LBB0_12
    .LBB0_23:
    	popq	%rbx
    	retq
    .Lfunc_end0:
    ```
    </details><br>
    
    With this PR:
    ```asm
    foo3r:
    	test	rcx, rcx
    	je	.LBB3_1
    	lea	r8, [rcx - 1]
    	lea	rdx, [rcx - 2]
    	mov	rax, r8
    	mul	rdx
    	shld	rdx, rax, 63
    	imul	r8, r8
    	add	r8, rcx
    	sub	r8, rdx
    	imul	r8, rcx
    	mov	rax, r8
    	ret
    .LBB3_1:
    	xor	r8d, r8d
    	mov	rax, r8
    	ret
    ```
    kennytm authored Feb 6, 2018
    Configuration menu
    Copy the full SHA
    4f184eb View commit details
    Browse the repository at this point in the history
  8. Rollup merge of rust-lang#48013 - onur:use-time-in-bootstrap-dist, r=…

    …alexcrichton
    
    Use time crate in bootstrap dist instead of date
    
    `bootstrap dist` command is trying to run *NIX specific `date` command to get current month and year. This command keep failing when it's called on a Windows command prompt. This patch is making it use time crate.
    
    Closes: rust-lang#47908
    kennytm authored Feb 6, 2018
    Configuration menu
    Copy the full SHA
    3373f65 View commit details
    Browse the repository at this point in the history
  9. Rollup merge of rust-lang#48026 - Badel2:doc-assoc-const-object-safe,…

    … r=nikomatsakis
    
    Document that associated constants prevent a trait from being made into an object
    
    Fixes rust-lang#47952
    
    Add a short mention of associated constants to E0038
    kennytm authored Feb 6, 2018
    Configuration menu
    Copy the full SHA
    ccdb320 View commit details
    Browse the repository at this point in the history
  10. Rollup merge of rust-lang#48031 - matthiaskrgr:exampleconfigtoml_typo…

    …s, r=kennytm
    
    config.toml.example: fix typos.
    
    Most of them were found by codespell: https://github.com/lucasdemarchi/codespell
    kennytm authored Feb 6, 2018
    Configuration menu
    Copy the full SHA
    d0e7da4 View commit details
    Browse the repository at this point in the history
  11. Rollup merge of rust-lang#48036 - durka:proc-macro-doteq, r=alexcrichton

    proc_macro: don't panic parsing ..= (fix rust-lang#47950)
    kennytm authored Feb 6, 2018
    Configuration menu
    Copy the full SHA
    7f0e87a View commit details
    Browse the repository at this point in the history