Commit Graph

64499 Commits

Author SHA1 Message Date
Steve Klabnik
a6e1e1fe21 Rollup merge of #41536 - steveklabnik:arc-and-send, r=burntsushi
Improve docs on Arc<T> and Send/Sync

This is something I always forget, so let's actually
explain in the docs.

I didn't fully link up everything here, but I'd like to make sure that the wording is okay before I bother.
2017-05-10 17:18:31 +02:00
Steve Klabnik
2924532232 Rollup merge of #41531 - steveklabnik:gh40159, r=nagisa
Add more ways to create a PathBuf to docs

The best way to do this wasn't in the documentation, and the ways that
were there needed some extra text to elaborate.

Fixes #40159

/cc @nagisa
2017-05-10 17:18:30 +02:00
Ralf Jung
ec141c8c96 fix typo in Unique::empty doc 2017-05-10 17:08:58 +02:00
Oliver Schneider
f859f2585b Update a compile-fail test 2017-05-10 17:05:33 +02:00
Alex Crichton
99f629a931 rustc: Add a new -Z force-unstable-if-unmarked flag
This commit adds a new `-Z` flag to the compiler for use when bootstrapping the
compiler itself. We want to be able to use crates.io crates, but we also want
the usage of such crates to be as ergonomic as possible! To that end compiler
crates are a little tricky in that the crates.io crates are not annotated as
unstable, nor do they expect to pull in unstable dependencies.

To cover all these situations it's intended that the compiler will forever now
bootstrap with `-Z force-unstable-if-unmarked`. This flags serves a dual purpose
of forcing crates.io crates to themselves be unstable while also allowing them
to use other "unstable" crates.io crates. This should mean that adding a
dependency to compiler no longer requires upstream modification with
unstable/staged_api attributes for inclusion!
2017-05-10 07:42:26 -07:00
Zack Weinberg
4ab3bcb9ca Fix up stability annotations per feedback. 2017-05-10 09:52:16 -04:00
Zack Weinberg
07766f675c Revise the eprint(ln)! feature.
* Factor out the nigh-identical bodies of `_print` and `_eprint` to a helper
   function `print_to` (I was sorely tempted to call it `_doprnt`).
 * Update the issue number for the unstable `eprint` feature.
 * Add entries to the "unstable book" for `eprint` and `eprint_internal`.
 * Style corrections to the documentation.
2017-05-10 09:41:42 -04:00
Zack Weinberg
76127275a0 Add eprint! and eprintln! macros to the prelude.
These are exactly the same as `print!` and `println!` except that
they write to stderr instead of stdout.  Issue #39228.
2017-05-10 09:29:16 -04:00
Oliver Schneider
9d51d6bc30 Fix tidy issues 2017-05-10 13:58:41 +02:00
Eduard-Mihai Burtescu
d23a65077a compiletest: force GDB to print values in the Rust format. 2017-05-10 14:37:29 +03:00
bors
25a161765f Auto merge of #41815 - Yamakaky:improve-backtrace-bottom, r=alexcrichton
Improve cleaning of the bottom of the backtrace

Following https://github.com/rust-lang/rust/pull/40264. It only cleans the bottom of the trace (after the main). It handles correctly the normal main, tests, benchmarks and threads.

I kept `skipped_before` since it will be used later for the cleaning of the top.
2017-05-10 11:37:22 +00:00
Oliver Schneider
e2f781c7ea
Example usage of multiple suggestions 2017-05-10 13:20:27 +02:00
Oliver Schneider
67d762d896
Refactor suggestion diagnostic API to allow for multiple suggestions 2017-05-10 13:20:26 +02:00
Michael Woerister
84a40c1443 ICH: Handle case of removed FileMaps. 2017-05-10 12:35:36 +02:00
bors
2b97174ada Auto merge of #41764 - scottmcm:faster-reverse, r=brson
Make [u8]::reverse() 5x faster

Since LLVM doesn't vectorize the loop for us, do unaligned reads of a larger type and use LLVM's bswap intrinsic to do the reversing of the actual bytes.  cfg!-restricted to x86 and x86_64, as I assume it wouldn't help on things like ARMv5.

Also makes [u16]::reverse() a more modest 1.5x faster by loading/storing u32 and swapping the u16s with ROT16.

Thank you ptr::*_unaligned for making this easy :)

Benchmark results (from my i5-2500K):
```text
# Before
test slice::reverse_u8      ... bench:  273,836 ns/iter (+/- 15,592) =  3829 MB/s
test slice::reverse_u16     ... bench:  139,793 ns/iter (+/- 17,748) =  7500 MB/s
test slice::reverse_u32     ... bench:   74,997 ns/iter  (+/- 5,130) = 13981 MB/s
test slice::reverse_u64     ... bench:   47,452 ns/iter  (+/- 2,213) = 22097 MB/s

# After
test slice::reverse_u8      ... bench:   52,170 ns/iter (+/- 3,962) = 20099 MB/s
test slice::reverse_u16     ... bench:   93,330 ns/iter (+/- 4,412) = 11235 MB/s
test slice::reverse_u32     ... bench:   74,731 ns/iter (+/- 1,425) = 14031 MB/s
test slice::reverse_u64     ... bench:   47,556 ns/iter (+/- 3,025) = 22049 MB/s
```

If you're curious about the assembly, instead of doing this
```
movzx	eax, byte ptr [rdi]
movzx	ecx, byte ptr [rsi]
mov	byte ptr [rdi], cl
mov	byte ptr [rsi], al
```
it does this
```
mov	rax, qword ptr [rdx]
mov	rbx, qword ptr [r11 + rcx - 8]
bswap	rbx
mov	qword ptr [rdx], rbx
bswap	rax
mov	qword ptr [r11 + rcx - 8], rax
```
2017-05-10 08:54:50 +00:00
Felix Raimundo
fe7b6db39b Fix typos in doc 2017-05-10 10:44:58 +02:00
bors
58b33ad70c Auto merge of #41659 - bluss:clone-split-whitespace, r=aturon
impl Clone for .split_whitespace()

Use custom closure structs for the predicates so that the iterator's
clone can simply be derived. This should also reduce virtual call
overhead by not using function pointers.

Fixes #41655
2017-05-10 03:27:36 +00:00
David LeGare
5135cc8541 Fix tidy errors 2017-05-09 21:20:56 -05:00
bors
db1c9eb2bd Auto merge of #41548 - brson:relnotes, r=brson
Update release notes for 1.17

[Rendered](https://github.com/brson/rust/blob/relnotes/RELEASES.md).

cc @steveklabnik
2017-05-09 23:11:53 +00:00
Marco A L Barbosa
2e509d2410 Add disabled android host builders 2017-05-09 20:02:11 -03:00
achernyak
35812d1746 resolved merge conflicts 2017-05-09 17:23:41 -05:00
bors
d3abc80b3e Auto merge of #41830 - jonhoo:update-cargo, r=alexcrichton
Bump cargo for rust-lang/cargo#4000

rust-lang/cargo#4000 recently landed, which fixes warnings about using `-Z` when `CARGO_INCREMENTAL` is set while running stable/beta builds. As #41751 has now landed, these warnings will turn to errors in the next release, so getting the cargo fix in place is necessary unless we want people confused about why they can no longer compile anything on stable/beta.
2017-05-09 19:31:35 +00:00
Guillaume Gomez
cc4afe0f65 Improve E0477 error message 2017-05-09 20:51:18 +02:00
Marco A L Barbosa
49f793ac17 ci: Update android ndk and sdk 2017-05-09 15:40:30 -03:00
Diggory Hardy
7488ff5c44 loop_break_value book doc: remove some curiosities, regarding leodasvacas's comments 2017-05-09 19:34:00 +01:00
Matt Brubeck
defcfb21f1 Remove wrong or outdated info from CString docs. 2017-05-09 10:55:47 -07:00
Yamakaky
ca8b75466c
Don't show the std frames before user code on unwinding.
When `RUST_BACKTRACE=1`, remove all frames after
`__rust_maybe_catch_panic`. Tested on `main`, threads, tests and
benches. Cleaning of the top of the stacktrace is let to a future PR.

Fixes #40201

See #41815
2017-05-09 19:51:50 +02:00
Felix Raimundo
202086e48f Fix warnings in examples 2017-05-09 19:06:56 +02:00
Felix Raimundo
afe74c3900 Fix link 2017-05-09 19:02:43 +02:00
Nathan Froyd
b1858447d3 fix confusion about parts required for float formatting
The documentation for flt2dec doesn't match up with the actual
implementation, so fix the documentation to align with reality.
Presumably due to the mismatch, the formatting code for floats in
std::fmt can use correspondingly shorter arrays in some places, so fix
those places up as well.

Fixes #41304.
2017-05-09 12:58:50 -04:00
steveklabnik
2f6744c5fc Improve docs on Arc<T> and Send/Sync
This is something I always forget, so let's actually
explain in the docs.
2017-05-09 12:49:58 -04:00
steveklabnik
23382e614a Add more ways to create a PathBuf to docs
The best way to do this wasn't in the documentation, and the ways that
were there needed some extra text to elaborate.

Fixes #40159
2017-05-09 12:43:49 -04:00
bors
644fc403dd Auto merge of #41814 - gamazeps:thread-struct-doc, r=steveklabnik
[Doc] improve `thread::Thread` and `thread::Builder` documentations

Part of #29378

- Adds information about the stack_size when using `Builder`. This might be considered too low level, but I assume that if someone wants to create their own builder instead of using `thread::spawn` they may be interested in that info.
- Updates the `thread::Thread` structure doc, mostly by explaining how to get one, the previous example was removed because it was not related to `thread::Thread`, but rather to `thread::Builder::name`.
  Not much is present there, mostly because this API is not often used (the only method that seems useful is `unpark`, which is documented in #41809).
2017-05-09 16:31:07 +00:00
Jon Gjengset
1617eee277
Bump cargo for rust-lang/cargo#4000
Also relies on rust-lang/cargo#4010
2017-05-09 12:15:13 -04:00
Felix Raimundo
656efcd3ab Address review comments 2017-05-09 16:57:03 +02:00
Felix Raimundo
323a774c2f Address review comments 2017-05-09 16:52:26 +02:00
Diggory Hardy
7d94b4804a loop_break_value: address review comments on book addition 2017-05-09 15:48:45 +01:00
Masaki Hara
63ecd6aa0f
Prohibit parenthesized params in more types. 2017-05-09 22:32:29 +09:00
bors
f3fc547194 Auto merge of #41709 - michaelwoerister:close-metadata-ich-holes, r=nikomatsakis
incr.comp.: Hash more pieces of crate metadata to detect changes there.

This PR adds incr. comp. hashes for non-`Entry` pieces of data in crate metadata.

The first part of it I like: `EntryBuilder` is refactored into the more generally applicable `IsolatedEncoder` which provides means of encoding something into metadata while also feeding the encoded data into an incr. comp. hash. We already did this for `Entry`, now we are doing it for various other pieces of data too, like the set of exported symbols and so on. The hashes generated there are persisted together with the per-`Entry` hashes and are also used for dep-graph dirtying the same way.

The second part of the PR I'm not entirely happy with: In order to make sure that we don't forget registering a read to the new `DepNodes` introduced here, I added the `Tracked<T>` struct. This struct wraps a value and requires a `DepNode` when accessing the wrapped value. This makes it harder to overlook adding read edges in the right places and works just fine.
However, crate metadata is already used in places where there is no `tcx` yet or even in places where no `cnum` has been assigned -- this makes it harder to apply this feature consistently or implement it ergonomically. The result is not too bad but there's a bit more code churn and a bit more opportunity to get something wrong than I would have liked. On the other hand, wrapping things in `Tracked<T>` already has revealed some bugs, so there's definitely some value in it.

This is still a work in progress:
- [x] I need to write some test cases.
- [x] Accessing the CodeMap should really be dependency tracked too, especially with the new path-remapping feature.

cc @nikomatsakis
2017-05-09 11:55:37 +00:00
Diggory Hardy
52c33804af loop_break_value: add documentation for book 2017-05-09 12:30:26 +01:00
Felix Raimundo
9db31206f5 Add a link to thread::Builder in thread::spawn 2017-05-09 13:27:22 +02:00
Felix Raimundo
c655348f26 Add more examples to thread::spawn
Part of #29378
2017-05-09 13:20:04 +02:00
Michael Woerister
115602b1be Add INVALID_CRATE CrateNum constant. 2017-05-09 12:46:43 +02:00
bors
c2d53dce7e Auto merge of #41777 - nikomatsakis:issue-41697-mir-dump-cycle, r=arielb1
dump-mir was causing cycles by invoking item-path-str at bad times

Workaround for now, but probably a better fix is to opt **in** to using the types for impls (if we do that at all; maybe filename/line is better).

Fixes #41697
2017-05-09 09:27:50 +00:00
bors
bedd7da3d2 Auto merge of #41846 - frewsxcv:rollup, r=frewsxcv
Rollup of 8 pull requests

- Successful merges: #41293, #41520, #41827, #41828, #41833, #41836, #41838, #41842
- Failed merges:
2017-05-09 03:36:12 +00:00
Corey Farwell
f21209f442 Rollup merge of #41842 - Migi:patch-1, r=eddyb
Fix typo in subst.rs

Changed "unknwon" to "unknown".
2017-05-08 22:34:53 -04:00
Corey Farwell
2f0deec98b Rollup merge of #41838 - z1mvader:fix_fn_args_coerce_closure, r=nikomatsakis
Fixed argument inference for closures when coercing into 'fn'

This fixes https://github.com/rust-lang/rust/issues/41755. The tests  `compile-fail/closure-no-fn.rs` and `compile-fail/issue-40000.rs` were modified. A new test `run-pass/closure_to_fn_coercion-expected-types.rs` was added

r? @nikomatsakis
2017-05-08 22:34:52 -04:00
Corey Farwell
7f30703155 Rollup merge of #41836 - jz0425:master, r=frewsxcv
@bors: r+ 38fe8d2 rollup

1) changed "long way into" to "long way toward"
2) changed "developer lives" to "developers' lives"
3) removed the "either... or..." format from second paragraph because there are more than 2 options
4) Minor revisions to paragraphs 3-6 to make them more consistent in format and to fix minor grammar issues.
2017-05-08 22:34:51 -04:00
Corey Farwell
0a59fc1156 Rollup merge of #41833 - nrc:update, r=nagisa
Update save-analysis deps and RLS submodule
2017-05-08 22:34:50 -04:00
Corey Farwell
f4c4334472 Rollup merge of #41828 - arielb1:lvalue-ops, r=eddyb
try to fix lvalue ops for real

Hopefully this is the last PR needed.

Fixes #41726.
Fixes #41742.
Fixes #41774.
2017-05-08 22:34:50 -04:00