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 10 pull requests #45100

Merged
merged 22 commits into from
Oct 8, 2017
Merged

Rollup of 10 pull requests #45100

merged 22 commits into from
Oct 8, 2017

Conversation

Barret Rennie and others added 22 commits October 4, 2017 22:16
There are a few exceptions to the rule that Arc/Rc are immutable. Rather
than dig into the details, add "generally" to hint at this difference,
as it's kind of a distraction at this point in the docs.

Additionally, Arc's docs were slightly different here generally, so add
in both the existing language and the exception.

Fixes rust-lang#44105
As discovered in rust-lang#44538 ARMv6 devices may or may not support unaligned memory accesses. ARMv6
Linux *seems* to have no problem with unaligned accesses but this is because the kernel is stepping
in to fix each unaligned memory access -- this incurs in a performance penalty.

This commit enforces aligned memory accesses on all our in-tree ARM targets that may be used with
ARMv6 devices. This should improve performance of Rust programs on ARMv6 devices. For the record,
clang also applies this attribute when targeting ARMv6 devices that are not running Darwin or
NetBSD.
The default impl for read_to_end does a bunch of bookkeeping
that isn't necessary for slices and is about 4 times slower
on my machine.
…-recursion, r=eddyb

incr.comp.: Fix infinite recursion in Debug implementation of DepNode

Small bug fix. Depends on rust-lang#44901 to land first.
…, r=steveklabnik

Update trait summaries for std::fmt

This patch is part of rust-lang#29355.

r? @steveklabnik
Modify Rc/Arc language around mutability

There are a few exceptions to the rule that Arc/Rc are immutable. Rather
than dig into the details, add "generally" to hint at this difference,
as it's kind of a distraction at this point in the docs.

Additionally, Arc's docs were slightly different here generally, so add
in both the existing language and the exception.

Fixes rust-lang#44105
…ietMisdreavus

Add missing links for AtomicBool

r? @rust-lang/docs
…Oct, r=shepmaster

Fix typo, per rust-lang#45057.

This looks like a simple string -- one character -- fix.  Given that I'm currently running low on battery, I have not actually compiled and tested this.  But I am fully confident this passes muster.  If not, I'll be maintainer-educated, yes?  ;-)
…etrochenkov

Add a semicolon to span for ast::Local
Add read_to_end implementation to &[u8]'s Read impl

The default impl for read_to_end does a bunch of bookkeeping
that isn't necessary for slices and is about 4 times slower
on my machine.

The following benchmark takes about 30 ns before this change and about 7 ns after:

```
#[bench]
fn bench_read_std(b: &mut Bencher) {
    let data = vec![0u8; 100];
    let mut v = Vec::with_capacity(200);
    b.iter(|| {
        let mut s = data.as_slice();
        v.clear();
        s.read_to_end(&mut v).unwrap();
    });
}
```

This solves the easy part of  rust-lang#44819 (I think extending this to `Take<&[u8]> `would require specialization)
…lexcrichton

Document that `-C ar=PATH` doesn't do anything

Are there any plans to use an external archiver in the future?
IIRC, it was used before, but its use was replaced with LLVM's built-in archive management machinery. I can't found a relevant PR though. EDIT: Found it - rust-lang#26926!

The `-C` option is stable so it still can't be removed right away even if there are no plans to use it (but maybe it can be deprecated?).
Target specifications have a field for archiver as well, which is unused too (these ones are unstable, so I guess it can be removed).

r? @alexcrichton
enable strict alignment (+strict-align) on ARMv6

As discovered in rust-lang#44538 ARMv6 devices may or may not support unaligned memory accesses. ARMv6
Linux *seems* to have no problem with unaligned accesses but this is because the kernel is stepping
in to fix each unaligned memory access -- this incurs in a performance penalty.

This commit enforces aligned memory accesses on all our in-tree ARM targets that may be used with
ARMv6 devices. This should improve performance of Rust programs on ARMv6 devices. For the record,
clang also applies this attribute when targeting ARMv6 devices that are not running Darwin or
NetBSD.

closes rust-lang#44538
r? @alexcrichton
@rust-highfive
Copy link
Collaborator

r? @nikomatsakis

(rust_highfive has picked a reviewer for you, use r? to override)

@kennytm
Copy link
Member Author

kennytm commented Oct 8, 2017

@bors r+ p=10

@bors
Copy link
Contributor

bors commented Oct 8, 2017

📌 Commit 7914e6f has been approved by kennytm

@bors
Copy link
Contributor

bors commented Oct 8, 2017

⌛ Testing commit 7914e6f with merge f338dba...

bors added a commit that referenced this pull request Oct 8, 2017
Rollup of 10 pull requests

- Successful merges: #45018, #45042, #45052, #45053, #45058, #45060, #45081, #45083, #45090, #45094
- Failed merges:
@bors
Copy link
Contributor

bors commented Oct 8, 2017

☀️ Test successful - status-appveyor, status-travis
Approved by: kennytm
Pushing f338dba to master...

@bors bors mentioned this pull request Oct 8, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
rollup A PR which is a rollup
Projects
None yet
Development

Successfully merging this pull request may close these issues.