Skip to content

Commit 7213d93

Browse files
committed
---
yaml --- r: 187623 b: refs/heads/tmp c: 6957bb6 h: refs/heads/master i: 187621: 33f8e1e 187619: 75a84c6 187615: 5eb3c92 v: v3
1 parent 2e4f67d commit 7213d93

File tree

281 files changed

+7515
-3920
lines changed

Some content is hidden

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

281 files changed

+7515
-3920
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,5 +34,5 @@ refs/heads/building: 126db549b038c84269a1e4fe46f051b2c15d6970
3434
refs/heads/beta: 522d09dfecbeca1595f25ac58c6d0178bbd21d7d
3535
refs/heads/windistfix: 7608dbad651f02e837ed05eef3d74a6662a6e928
3636
refs/tags/1.0.0-alpha: e42bd6d93a1d3433c486200587f8f9e12590a4d7
37-
refs/heads/tmp: 91a5a1ab4ad054c8dccf49f6f409542f82683cfc
37+
refs/heads/tmp: 6957bb6dbec838c8654b27a1d2a44d753633fe54
3838
refs/tags/1.0.0-alpha.2: 4c705f6bc559886632d3871b04f58aab093bfa2f

branches/tmp/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/tmp/README.md

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

1717
1. Make sure you have installed the dependencies:
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`
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`
2423

2524
2. Clone the [source] with `git`:
2625

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

3229
[source]: https://github.com/rust-lang/rust
3330

3431
3. Build and install:
3532

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

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.
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.
4640
4741
When complete, `make install` will place several programs into
4842
`/usr/local/bin`: `rustc`, the Rust compiler, and `rustdoc`, the
@@ -53,30 +47,27 @@ Read ["Installing Rust"] from [The Book].
5347

5448
### Building on Windows
5549

56-
[MSYS2](http://msys2.github.io/) can be used to easily build Rust on Windows:
50+
To easily build on windows we can use [MSYS2](http://msys2.github.io/):
5751

5852
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.
5955

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-
```
56+
```bash
57+
# choose one based on platform
58+
$ pacman -S mingw-w64-i686-toolchain
59+
$ pacman -S mingw-w64-x86_64-toolchain
7060

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.
61+
$ pacman -S base-devel
62+
```
7363

74-
4. Navigate to Rust's source code, configure and build it:
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:
7568

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

8172
## Notes
8273

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

10293
[CONTRIBUTING.md]: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md
10394

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

10697
The Rust community congregates in a few places:
10798

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

112-
[Stack Overflow]: http://stackoverflow.com/questions/tagged/rust
103+
[StackOverflow]: http://stackoverflow.com/questions/tagged/rust
113104
[/r/rust]: http://reddit.com/r/rust
114105
[users.rust-lang.org]: http://users.rust-lang.org/
115106

@@ -120,7 +111,7 @@ To contribute to Rust, please see [CONTRIBUTING.md](CONTRIBUTING.md).
120111
Rust has an [IRC] culture and most real-time collaboration happens in a
121112
variety of channels on Mozilla's IRC network, irc.mozilla.org. The
122113
most popular channel is [#rust], a venue for general discussion about
123-
Rust, and a good place to ask for help.
114+
Rust, and a good place to ask for help,
124115

125116
[IRC]: https://en.wikipedia.org/wiki/Internet_Relay_Chat
126117
[#rust]: irc://irc.mozilla.org/rust

branches/tmp/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/tmp/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/tmp/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/tmp/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/tmp/src/compiletest/runtest.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ fn run_cfail_test(config: &Config, props: &TestProps, testfile: &Path) {
8989
let proc_res = compile_test(config, props, testfile);
9090

9191
if proc_res.status.success() {
92-
fatal_proc_rec(&format!("{} test compiled successfully!", config.mode)[..],
92+
fatal_proc_rec(&format!("{} test compiled successfully!", config.mode)[],
9393
&proc_res);
9494
}
9595

@@ -398,7 +398,7 @@ fn run_debuginfo_gdb_test(config: &Config, props: &TestProps, testfile: &Path) {
398398
for line in breakpoint_lines.iter() {
399399
script_str.push_str(&format!("break {:?}:{}\n",
400400
testfile.filename_display(),
401-
*line)[..]);
401+
*line)[]);
402402
}
403403
script_str.push_str(&cmds);
404404
script_str.push_str("quit\n");
@@ -553,17 +553,17 @@ fn run_debuginfo_gdb_test(config: &Config, props: &TestProps, testfile: &Path) {
553553
script_str.push_str("set print pretty off\n");
554554

555555
// Add the pretty printer directory to GDB's source-file search path
556-
script_str.push_str(&format!("directory {}\n", rust_pp_module_abs_path)[..]);
556+
script_str.push_str(&format!("directory {}\n", rust_pp_module_abs_path)[]);
557557

558558
// Load the target executable
559559
script_str.push_str(&format!("file {}\n",
560-
exe_file.as_str().unwrap().replace("\\", "\\\\"))[..]);
560+
exe_file.as_str().unwrap().replace("\\", "\\\\"))[]);
561561

562562
// Add line breakpoints
563563
for line in &breakpoint_lines {
564564
script_str.push_str(&format!("break '{}':{}\n",
565565
testfile.filename_display(),
566-
*line)[..]);
566+
*line)[]);
567567
}
568568

569569
script_str.push_str(&cmds);
@@ -689,7 +689,7 @@ fn run_debuginfo_lldb_test(config: &Config, props: &TestProps, testfile: &Path)
689689
.unwrap()
690690
.to_string();
691691

692-
script_str.push_str(&format!("command script import {}\n", &rust_pp_module_abs_path[..])[..]);
692+
script_str.push_str(&format!("command script import {}\n", &rust_pp_module_abs_path[..])[]);
693693
script_str.push_str("type summary add --no-value ");
694694
script_str.push_str("--python-function lldb_rust_formatters.print_val ");
695695
script_str.push_str("-x \".*\" --category Rust\n");
@@ -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/tmp/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

0 commit comments

Comments
 (0)