Skip to content

Commit 422d5fe

Browse files
committed
---
yaml --- r: 185690 b: refs/heads/auto c: 24fa6be h: refs/heads/master v: v3
1 parent 6e2d11a commit 422d5fe

File tree

255 files changed

+7301
-3319
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

255 files changed

+7301
-3319
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
1010
refs/tags/release-0.3.1: 495bae036dfe5ec6ceafd3312b4dca48741e845b
1111
refs/tags/release-0.4: e828ea2080499553b97dfe33b3f4d472b4562ad7
1212
refs/tags/release-0.5: 7e3bcfbf21278251ee936ad53e92e9b719702d73
13-
refs/heads/auto: 4e73d4950d6ec0a955c66bd41c4f00d5f4ddb4ca
13+
refs/heads/auto: 24fa6be7c66f9d2eaa18cb512e01a818201a6aae
1414
refs/heads/servo: af82457af293e2a842ba6b7759b70288da276167
1515
refs/tags/release-0.6: b4ebcfa1812664df5e142f0134a5faea3918544c
1616
refs/tags/0.1: b19db808c2793fe2976759b85a355c3ad8c8b336

branches/auto/CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ links to the major sections:
1414
If you have questions, please make a post on [internals.rust-lang.org][internals] or
1515
hop on [#rust-internals][pound-rust-internals].
1616

17-
As a reminder, all contributors are expected to follow our [Code of Conduct][coc].
17+
As a reminder, all contributors are expected to follow our [Code of Conduct](coc).
1818

1919
[pound-rust-internals]: http://chat.mibbit.com/?server=irc.mozilla.org&channel=%23rust-internals
2020
[internals]: http://internals.rust-lang.org

branches/auto/README.md

Lines changed: 41 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -15,28 +15,34 @@ Read ["Installing Rust"] from [The Book].
1515
## Building from Source
1616

1717
1. Make sure you have installed the dependencies:
18-
* `g++` 4.7 or `clang++` 3.x
19-
* `python` 2.6 or later (but not 3.x)
20-
* GNU `make` 3.81 or later
21-
* `curl`
22-
* `git`
18+
19+
* `g++` 4.7 or `clang++` 3.x
20+
* `python` 2.6 or later (but not 3.x)
21+
* GNU `make` 3.81 or later
22+
* `curl`
23+
* `git`
2324

2425
2. Clone the [source] with `git`:
2526

26-
$ git clone https://github.com/rust-lang/rust.git
27-
$ cd rust
27+
```sh
28+
$ git clone https://github.com/rust-lang/rust.git
29+
$ cd rust
30+
```
2831

2932
[source]: https://github.com/rust-lang/rust
3033

3134
3. Build and install:
3235

33-
$ ./configure
34-
$ make && make install
36+
```sh
37+
$ ./configure
38+
$ make && make install
39+
```
3540

36-
> ***Note:*** You may need to use `sudo make install` if you do not normally have
37-
> permission to modify the destination directory. The install locations can
38-
> be adjusted by passing a `--prefix` argument to `configure`. Various other
39-
> options are also supported, pass `--help` for more information on them.
41+
> ***Note:*** You may need to use `sudo make install` if you do not
42+
> normally have permission to modify the destination directory. The
43+
> install locations can be adjusted by passing a `--prefix` argument
44+
> to `configure`. Various other options are also supported – pass
45+
> `--help` for more information on them.
4046

4147
When complete, `make install` will place several programs into
4248
`/usr/local/bin`: `rustc`, the Rust compiler, and `rustdoc`, the
@@ -47,27 +53,30 @@ Read ["Installing Rust"] from [The Book].
4753
4854
### Building on Windows
4955
50-
To easily build on windows we can use [MSYS2](http://msys2.github.io/):
56+
[MSYS2](http://msys2.github.io/) can be used to easily build Rust on Windows:
5157
5258
1. Grab the latest MSYS2 installer and go through the installer.
53-
2. Now from the MSYS2 terminal we want to install the mingw64 toolchain and the other
54-
tools we need.
5559
56-
```bash
57-
# choose one based on platform
58-
$ pacman -S mingw-w64-i686-toolchain
59-
$ pacman -S mingw-w64-x86_64-toolchain
60+
2. From the MSYS2 terminal, install the `mingw64` toolchain and other required
61+
tools.
62+
63+
```sh
64+
# Choose one based on platform:
65+
$ pacman -S mingw-w64-i686-toolchain
66+
$ pacman -S mingw-w64-x86_64-toolchain
67+
68+
$ pacman -S base-devel
69+
```
6070
61-
$ pacman -S base-devel
62-
```
71+
3. Run `mingw32_shell.bat` or `mingw64_shell.bat` from wherever you installed
72+
MYSY2 (i.e. `C:\msys`), depending on whether you want 32-bit or 64-bit Rust.
6373
64-
3. With that now start `mingw32_shell.bat` or `mingw64_shell.bat`
65-
from where you installed MSYS2 (i.e. `C:\msys`). Which one you
66-
choose depends on if you want 32 or 64 bit Rust.
67-
4. From there just navigate to where you have Rust's source code, configure and build it:
74+
4. Navigate to Rust's source code, configure and build it:
6875

69-
$ ./configure
70-
$ make && make install
76+
```sh
77+
$ ./configure
78+
$ make && make install
79+
```
7180

7281
## Notes
7382

@@ -92,15 +101,15 @@ There is more advice about hacking on Rust in [CONTRIBUTING.md].
92101

93102
[CONTRIBUTING.md]: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md
94103

95-
## Getting help
104+
## Getting Help
96105

97106
The Rust community congregates in a few places:
98107

99-
* [StackOverflow] - Direct questions about using the language here.
100-
* [users.rust-lang.org] - General discussion, broader questions.
108+
* [Stack Overflow] - Direct questions about using the language.
109+
* [users.rust-lang.org] - General discussion and broader questions.
101110
* [/r/rust] - News and general discussion.
102111

103-
[StackOverflow]: http://stackoverflow.com/questions/tagged/rust
112+
[Stack Overflow]: http://stackoverflow.com/questions/tagged/rust
104113
[/r/rust]: http://reddit.com/r/rust
105114
[users.rust-lang.org]: http://users.rust-lang.org/
106115

branches/auto/RELEASES.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ Version 1.0.0-alpha.2 (February 2015)
5151
* Abstract [OS-specific string types][osstr], `std::ff::{OsString,
5252
OsStr}`, provide strings in platform-specific encodings for easier
5353
interop with system APIs. [RFC][osstr-rfc].
54-
* The `boxed::into_raw` and `Box::from_raw` functions [convert
54+
* The `boxed::into_raw` and `Box::frow_raw` functions [convert
5555
between `Box<T>` and `*mut T`][boxraw], a common pattern for
5656
creating raw pointers.
5757

branches/auto/src/compiletest/compiletest.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ pub fn test_opts(config: &Config) -> test::TestOpts {
268268
logfile: config.logfile.clone(),
269269
run_tests: true,
270270
run_benchmarks: true,
271-
nocapture: env::var("RUST_TEST_NOCAPTURE").is_ok(),
271+
nocapture: false,
272272
color: test::AutoColor,
273273
}
274274
}

branches/auto/src/compiletest/errors.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ pub fn load_errors(testfile: &Path) -> Vec<ExpectedError> {
5858
fn parse_expected(last_nonfollow_error: Option<uint>,
5959
line_num: uint,
6060
line: &str) -> Option<(WhichLine, ExpectedError)> {
61-
let start = match line.find("//~") { Some(i) => i, None => return None };
61+
let start = match line.find_str("//~") { Some(i) => i, None => return None };
6262
let (follow, adjusts) = if line.char_at(start + 3) == '|' {
6363
(true, 0)
6464
} else {

branches/auto/src/compiletest/header.rs

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
use std::env;
12-
1311
use common::Config;
1412
use common;
1513
use util;
@@ -127,16 +125,6 @@ pub fn load_props(testfile: &Path) -> TestProps {
127125
true
128126
});
129127

130-
for key in vec!["RUST_TEST_NOCAPTURE", "RUST_TEST_TASKS"] {
131-
match env::var(key) {
132-
Ok(val) =>
133-
if exec_env.iter().find(|&&(ref x, _)| *x == key.to_string()).is_none() {
134-
exec_env.push((key.to_string(), val))
135-
},
136-
Err(..) => {}
137-
}
138-
}
139-
140128
TestProps {
141129
error_patterns: error_patterns,
142130
compile_flags: compile_flags,
@@ -342,7 +330,7 @@ fn parse_name_directive(line: &str, directive: &str) -> bool {
342330
pub fn parse_name_value_directive(line: &str, directive: &str)
343331
-> Option<String> {
344332
let keycolon = format!("{}:", directive);
345-
match line.find(&keycolon) {
333+
match line.find_str(&keycolon) {
346334
Some(colon) => {
347335
let value = line[(colon + keycolon.len()) .. line.len()].to_string();
348336
debug!("{}: {}", directive, value);

branches/auto/src/compiletest/runtest.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -847,7 +847,7 @@ fn check_debugger_output(debugger_run_result: &ProcRes, check_lines: &[String])
847847
check_lines.iter().map(|s| {
848848
s
849849
.trim()
850-
.split("[...]")
850+
.split_str("[...]")
851851
.map(|x| x.to_string())
852852
.collect()
853853
}).collect();
@@ -866,7 +866,7 @@ fn check_debugger_output(debugger_run_result: &ProcRes, check_lines: &[String])
866866
None
867867
}
868868
} else {
869-
rest.find(frag)
869+
rest.find_str(frag)
870870
};
871871
match found {
872872
None => {

branches/auto/src/doc/intro.md

Lines changed: 34 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -426,33 +426,39 @@ use std::thread::Thread;
426426
fn main() {
427427
let mut numbers = vec![1, 2, 3];
428428
429-
let guards: Vec<_> = (0..3).map(|i| {
430-
Thread::scoped(move || {
429+
for i in 0..3 {
430+
Thread::spawn(move || {
431431
for j in 0..3 { numbers[j] += 1 }
432432
});
433-
}).collect();
433+
}
434434
}
435435
```
436436
437437
It gives us this error:
438438
439439
```text
440-
7:29: 9:10 error: cannot move out of captured outer variable in an `FnMut` closure
441-
7 Thread::scoped(move || {
442-
8 for j in 0..3 { numbers[j] += 1 }
443-
9 });
440+
6:71 error: capture of moved value: `numbers`
441+
for j in 0..3 { numbers[j] += 1 }
442+
^~~~~~~
443+
7:50 note: `numbers` moved into closure environment here
444+
spawn(move || {
445+
for j in 0..3 { numbers[j] += 1 }
446+
});
447+
6:79 error: cannot assign to immutable dereference (dereference is implicit, due to indexing)
448+
for j in 0..3 { numbers[j] += 1 }
449+
^~~~~~~~~~~~~~~
444450
```
445451
446-
It mentions that "captured outer variable in an `FnMut` closure".
447-
Because we declared the closure as a moving closure, and it referred
448-
to `numbers`, the closure will try to take ownership of the
449-
vector. But the closure itself is created in a loop, and hence we will
450-
actually create three closures, one for every iteration of the
451-
loop. This means that all three of those closures would try to own
452-
`numbers`, which is impossible -- `numbers` must have just one
453-
owner. Rust detects this and gives us the error: we claim that
454-
`numbers` has ownership, but our code tries to make three owners. This
455-
may cause a safety problem, so Rust disallows it.
452+
It mentions that "numbers moved into closure environment". Because we
453+
declared the closure as a moving closure, and it referred to
454+
`numbers`, the closure will try to take ownership of the vector. But
455+
the closure itself is created in a loop, and hence we will actually
456+
create three closures, one for every iteration of the loop. This means
457+
that all three of those closures would try to own `numbers`, which is
458+
impossible -- `numbers` must have just one owner. Rust detects this
459+
and gives us the error: we claim that `numbers` has ownership, but our
460+
code tries to make three owners. This may cause a safety problem, so
461+
Rust disallows it.
456462
457463
What to do here? Rust has two types that helps us: `Arc<T>` and `Mutex<T>`.
458464
*Arc* stands for "atomically reference counted". In other words, an Arc will
@@ -474,14 +480,14 @@ use std::sync::{Arc,Mutex};
474480
fn main() {
475481
let numbers = Arc::new(Mutex::new(vec![1, 2, 3]));
476482
477-
let guards: Vec<_> = (0..3).map(|i| {
483+
for i in 0..3 {
478484
let number = numbers.clone();
479-
Thread::scoped(move || {
485+
Thread::spawn(move || {
480486
let mut array = number.lock().unwrap();
481487
array[i] += 1;
482488
println!("numbers[{}] is {}", i, array[i]);
483489
});
484-
}).collect();
490+
}
485491
}
486492
```
487493
@@ -510,10 +516,8 @@ numbers[1] is 3
510516
numbers[0] is 2
511517
```
512518
513-
Each time, we can get a slithtly different output because the threads
514-
are not quaranteed to run in any set order. If you get the same order
515-
every time it is because each of these threads are very small and
516-
complete too fast for their indeterminate behavior to surface.
519+
Each time, we get a slightly different output, because each thread works in a
520+
different order. You may not get the same output as this sample, even.
517521
518522
The important part here is that the Rust compiler was able to use ownership to
519523
give us assurance _at compile time_ that we weren't doing something incorrect
@@ -535,13 +539,13 @@ safety check that makes this an error about moved values:
535539
use std::thread::Thread;
536540
537541
fn main() {
538-
let numbers = vec![1, 2, 3];
539-
540-
let guards: Vec<_> = (0..3).map(|i| {
541-
Thread::scoped(move || {
542-
println!("{}", numbers[i]);
542+
let vec = vec![1, 2, 3];
543+
544+
for i in 0..3 {
545+
Thread::spawn(move || {
546+
println!("{}", vec[i]);
543547
});
544-
}).collect();
548+
}
545549
}
546550
```
547551

branches/auto/src/doc/reference.md

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -515,9 +515,6 @@ This last example is different because it is not possible to use the suffix
515515
syntax with a floating point literal ending in a period. `2.f64` would attempt
516516
to call a method named `f64` on `2`.
517517

518-
The representation semantics of floating-point numbers are described in
519-
["Machine Types"](#machine-types).
520-
521518
#### Boolean literals
522519

523520
The two values of the boolean type are written `true` and `false`.
@@ -3557,8 +3554,7 @@ Tuple types and values are denoted by listing the types or values of their
35573554
elements, respectively, in a parenthesized, comma-separated list.
35583555

35593556
Because tuple elements don't have a name, they can only be accessed by
3560-
pattern-matching or by using `N` directly as a field to access the
3561-
`N`th element.
3557+
pattern-matching.
35623558

35633559
An example of a tuple type and its use:
35643560

@@ -3567,7 +3563,6 @@ type Pair<'a> = (i32, &'a str);
35673563
let p: Pair<'static> = (10, "hello");
35683564
let (a, b) = p;
35693565
assert!(b != "world");
3570-
assert!(p.0 == 10);
35713566
```
35723567

35733568
### Array, and Slice types

branches/auto/src/doc/trpl/crates-and-modules.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Rust has two distinct terms that relate to the module system: *crate* and
1212
*module*. A crate is synonymous with a *library* or *package* in other
1313
languages. Hence "Cargo" as the name of Rust's package management tool: you
1414
ship your crates to others with Cargo. Crates can produce an executable or a
15-
library, depending on the project.
15+
shared library, depending on the project.
1616

1717
Each crate has an implicit *root module* that contains the code for that crate.
1818
You can then define a tree of sub-modules under that root module. Modules allow

branches/auto/src/doc/trpl/guessing-game.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ fn main() {
9191
```
9292

9393
You've seen this code before, when we talked about standard input. We
94-
import the `std::old_io` module with `use`, and then our `main` function contains
94+
import the `std::io` module with `use`, and then our `main` function contains
9595
our program's logic. We print a little message announcing the game, ask the
9696
user to input a guess, get their input, and then print it out.
9797

branches/auto/src/doc/trpl/if.md

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -34,20 +34,6 @@ if x == 5 {
3434
}
3535
```
3636

37-
If there is more than one case, use an `else if`:
38-
39-
```rust
40-
let x = 5;
41-
42-
if x == 5 {
43-
println!("x is five!");
44-
} else if x == 6 {
45-
println!("x is six!");
46-
} else {
47-
println!("x is not five or six :(");
48-
}
49-
```
50-
5137
This is all pretty standard. However, you can also do this:
5238

5339

0 commit comments

Comments
 (0)