Skip to content

Commit 389e4d8

Browse files
committed
---
yaml --- r: 184282 b: refs/heads/tmp c: 1506b34 h: refs/heads/master v: v3
1 parent dd0253e commit 389e4d8

File tree

698 files changed

+10362
-4436
lines changed

Some content is hidden

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

698 files changed

+10362
-4436
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,4 @@ 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: 9f8b9d6847ab02f7f1c28c84988ceae4c0a10f26
37+
refs/heads/tmp: 1506b34e0c52b098158541d2ba9e334df1ce4812

branches/tmp/README.md

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
# The Rust Programming Language
22

33
This is a compiler for Rust, including standard libraries, tools and
4-
documentation.
4+
documentation. Rust is a systems programming language that is fast,
5+
memory safe and multithreaded, but does not employ a garbage collector
6+
or otherwise impose significant runtime overhead.
57

68
## Quick Start
79

8-
Read ["Installing Rust"][install] from [The Book][trpl].
10+
Read ["Installing Rust"] from [The Book].
911

10-
[install]: http://doc.rust-lang.org/book/installing-rust.html
11-
[trpl]: http://doc.rust-lang.org/book/index.html
12+
["Installing Rust"]: http://doc.rust-lang.org/book/installing-rust.html
13+
[The Book]: http://doc.rust-lang.org/book/index.html
1214

1315
## Building from Source
1416

@@ -19,22 +21,14 @@ Read ["Installing Rust"][install] from [The Book][trpl].
1921
* `curl`
2022
* `git`
2123

22-
2. Download and build Rust:
23-
24-
You can either download a [tarball] or build directly from the [repo].
25-
26-
To build from the [tarball] do:
27-
28-
$ curl -O https://static.rust-lang.org/dist/rustc-nightly-src.tar.gz
29-
$ tar -xzf rustc-nightly-src.tar.gz
30-
$ cd rustc-nightly
31-
32-
Or to build from the [repo] do:
24+
2. Clone the [source] with `git`:
3325

3426
$ git clone https://github.com/rust-lang/rust.git
3527
$ cd rust
3628

37-
Now that you have Rust's source code, you can configure and build it:
29+
[source]: https://github.com/rust-lang/rust
30+
31+
3. Build and install:
3832

3933
$ ./configure
4034
$ make && make install
@@ -46,7 +40,10 @@ Read ["Installing Rust"][install] from [The Book][trpl].
4640
4741
When complete, `make install` will place several programs into
4842
`/usr/local/bin`: `rustc`, the Rust compiler, and `rustdoc`, the
49-
API-documentation tool.
43+
API-documentation tool. This install does not include [Cargo],
44+
Rust's package manager, which you may also want to build.
45+
46+
[Cargo]: https://github.com/rust-lang/cargo
5047

5148
### Building on Windows
5249

@@ -72,9 +69,6 @@ $ pacman -S base-devel
7269
$ ./configure
7370
$ make && make install
7471

75-
[repo]: https://github.com/rust-lang/rust
76-
[tarball]: https://static.rust-lang.org/dist/rustc-nightly-src.tar.gz
77-
7872
## Notes
7973

8074
Since the Rust compiler is written in Rust, it must be built by a
@@ -94,9 +88,9 @@ supported build environments that are most likely to work.
9488
Rust currently needs about 1.5 GiB of RAM to build without swapping; if it hits
9589
swap, it will take a very long time to build.
9690

97-
There is a lot more documentation in the [wiki].
91+
There is more advice about hacking on Rust in [CONTRIBUTING.md].
9892

99-
[wiki]: https://github.com/rust-lang/rust/wiki
93+
[CONTRIBUTING.md]: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md
10094

10195
## Getting help
10296

@@ -114,6 +108,14 @@ The Rust community congregates in a few places:
114108

115109
To contribute to Rust, please see [CONTRIBUTING.md](CONTRIBUTING.md).
116110

111+
Rust has an [IRC] culture and most real-time collaboration happens in a
112+
variety of channels on Mozilla's IRC network, irc.mozilla.org. The
113+
most popular channel is [#rust], a venue for general discussion about
114+
Rust, and a good place to ask for help,
115+
116+
[IRC]: https://en.wikipedia.org/wiki/Internet_Relay_Chat
117+
[#rust]: irc://irc.mozilla.org/rust
118+
117119
## License
118120

119121
Rust is primarily distributed under the terms of both the MIT license

branches/tmp/configure

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1056,6 +1056,7 @@ do
10561056
make_dir $h/test/run-pass-fulldeps
10571057
make_dir $h/test/run-fail
10581058
make_dir $h/test/compile-fail
1059+
make_dir $h/test/parse-fail
10591060
make_dir $h/test/compile-fail-fulldeps
10601061
make_dir $h/test/bench
10611062
make_dir $h/test/perf

branches/tmp/mk/tests.mk

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -174,12 +174,12 @@ check-notidy: cleantmptestlogs cleantestlibs all check-stage2
174174
check-lite: cleantestlibs cleantmptestlogs \
175175
$(foreach crate,$(TEST_TARGET_CRATES),check-stage2-$(crate)) \
176176
check-stage2-rpass check-stage2-rpass-valgrind \
177-
check-stage2-rfail check-stage2-cfail check-stage2-rmake
177+
check-stage2-rfail check-stage2-cfail check-stage2-pfail check-stage2-rmake
178178
$(Q)$(CFG_PYTHON) $(S)src/etc/check-summary.py tmp/*.log
179179

180180
# Only check the 'reference' tests: rpass/cfail/rfail/rmake.
181181
check-ref: cleantestlibs cleantmptestlogs check-stage2-rpass check-stage2-rpass-valgrind \
182-
check-stage2-rfail check-stage2-cfail check-stage2-rmake
182+
check-stage2-rfail check-stage2-cfail check-stage2-pfail check-stage2-rmake
183183
$(Q)$(CFG_PYTHON) $(S)src/etc/check-summary.py tmp/*.log
184184

185185
# Only check the docs.
@@ -291,6 +291,7 @@ check-stage$(1)-T-$(2)-H-$(3)-exec: \
291291
check-stage$(1)-T-$(2)-H-$(3)-rpass-exec \
292292
check-stage$(1)-T-$(2)-H-$(3)-rfail-exec \
293293
check-stage$(1)-T-$(2)-H-$(3)-cfail-exec \
294+
check-stage$(1)-T-$(2)-H-$(3)-pfail-exec \
294295
check-stage$(1)-T-$(2)-H-$(3)-rpass-valgrind-exec \
295296
check-stage$(1)-T-$(2)-H-$(3)-rpass-full-exec \
296297
check-stage$(1)-T-$(2)-H-$(3)-cfail-full-exec \
@@ -470,7 +471,8 @@ RPASS_VALGRIND_TESTS := $(RPASS_VALGRIND_RS)
470471
RPASS_FULL_TESTS := $(RPASS_FULL_RS)
471472
CFAIL_FULL_TESTS := $(CFAIL_FULL_RS)
472473
RFAIL_TESTS := $(RFAIL_RS)
473-
CFAIL_TESTS := $(CFAIL_RS) $(PFAIL_RS)
474+
CFAIL_TESTS := $(CFAIL_RS)
475+
PFAIL_TESTS := $(PFAIL_RS)
474476
BENCH_TESTS := $(BENCH_RS)
475477
PERF_TESTS := $(PERF_RS)
476478
PRETTY_TESTS := $(PRETTY_RS)
@@ -508,6 +510,11 @@ CTEST_BUILD_BASE_cfail = compile-fail
508510
CTEST_MODE_cfail = compile-fail
509511
CTEST_RUNTOOL_cfail = $(CTEST_RUNTOOL)
510512

513+
CTEST_SRC_BASE_pfail = parse-fail
514+
CTEST_BUILD_BASE_pfail = parse-fail
515+
CTEST_MODE_pfail = parse-fail
516+
CTEST_RUNTOOL_pfail = $(CTEST_RUNTOOL)
517+
511518
CTEST_SRC_BASE_bench = bench
512519
CTEST_BUILD_BASE_bench = bench
513520
CTEST_MODE_bench = run-pass
@@ -630,6 +637,7 @@ CTEST_DEPS_rpass-full_$(1)-T-$(2)-H-$(3) = $$(RPASS_FULL_TESTS) $$(CSREQ$(1)_T_$
630637
CTEST_DEPS_cfail-full_$(1)-T-$(2)-H-$(3) = $$(CFAIL_FULL_TESTS) $$(CSREQ$(1)_T_$(3)_H_$(3)) $$(SREQ$(1)_T_$(2)_H_$(3))
631638
CTEST_DEPS_rfail_$(1)-T-$(2)-H-$(3) = $$(RFAIL_TESTS)
632639
CTEST_DEPS_cfail_$(1)-T-$(2)-H-$(3) = $$(CFAIL_TESTS)
640+
CTEST_DEPS_pfail_$(1)-T-$(2)-H-$(3) = $$(PFAIL_TESTS)
633641
CTEST_DEPS_bench_$(1)-T-$(2)-H-$(3) = $$(BENCH_TESTS)
634642
CTEST_DEPS_perf_$(1)-T-$(2)-H-$(3) = $$(PERF_TESTS)
635643
CTEST_DEPS_debuginfo-gdb_$(1)-T-$(2)-H-$(3) = $$(DEBUGINFO_GDB_TESTS)
@@ -698,7 +706,7 @@ endif
698706

699707
endef
700708

701-
CTEST_NAMES = rpass rpass-valgrind rpass-full cfail-full rfail cfail bench perf debuginfo-gdb debuginfo-lldb codegen
709+
CTEST_NAMES = rpass rpass-valgrind rpass-full cfail-full rfail cfail pfail bench perf debuginfo-gdb debuginfo-lldb codegen
702710

703711
$(foreach host,$(CFG_HOST), \
704712
$(eval $(foreach target,$(CFG_TARGET), \
@@ -857,6 +865,7 @@ TEST_GROUPS = \
857865
cfail-full \
858866
rfail \
859867
cfail \
868+
pfail \
860869
bench \
861870
perf \
862871
rmake \

branches/tmp/src/compiletest/common.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ use std::str::FromStr;
1515
#[derive(Clone, Copy, PartialEq, Debug)]
1616
pub enum Mode {
1717
CompileFail,
18+
ParseFail,
1819
RunFail,
1920
RunPass,
2021
RunPassValgrind,
@@ -29,6 +30,7 @@ impl FromStr for Mode {
2930
fn from_str(s: &str) -> Result<Mode, ()> {
3031
match s {
3132
"compile-fail" => Ok(CompileFail),
33+
"parse-fail" => Ok(ParseFail),
3234
"run-fail" => Ok(RunFail),
3335
"run-pass" => Ok(RunPass),
3436
"run-pass-valgrind" => Ok(RunPassValgrind),
@@ -45,6 +47,7 @@ impl fmt::Display for Mode {
4547
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
4648
fmt::Display::fmt(match *self {
4749
CompileFail => "compile-fail",
50+
ParseFail => "parse-fail",
4851
RunFail => "run-fail",
4952
RunPass => "run-pass",
5053
RunPassValgrind => "run-pass-valgrind",

branches/tmp/src/compiletest/compiletest.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
#![feature(test)]
2222
#![feature(unicode)]
2323
#![feature(env)]
24+
#![feature(core)]
2425

2526
#![deny(warnings)]
2627

@@ -72,7 +73,7 @@ pub fn parse_config(args: Vec<String> ) -> Config {
7273
reqopt("", "aux-base", "directory to find auxiliary test files", "PATH"),
7374
reqopt("", "stage-id", "the target-stage identifier", "stageN-TARGET"),
7475
reqopt("", "mode", "which sort of compile tests to run",
75-
"(compile-fail|run-fail|run-pass|run-pass-valgrind|pretty|debug-info)"),
76+
"(compile-fail|parse-fail|run-fail|run-pass|run-pass-valgrind|pretty|debug-info)"),
7677
optflag("", "ignored", "run tests marked as ignored"),
7778
optopt("", "runtool", "supervisor program to run tests under \
7879
(eg. emulator, valgrind)", "PROGRAM"),

branches/tmp/src/compiletest/runtest.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
use self::TargetLocation::*;
1212

1313
use common::Config;
14-
use common::{CompileFail, Pretty, RunFail, RunPass, RunPassValgrind, DebugInfoGdb};
14+
use common::{CompileFail, ParseFail, Pretty, RunFail, RunPass, RunPassValgrind, DebugInfoGdb};
1515
use common::{Codegen, DebugInfoLldb};
1616
use errors;
1717
use header::TestProps;
@@ -66,6 +66,7 @@ pub fn run_metrics(config: Config, testfile: String, mm: &mut MetricMap) {
6666
debug!("loaded props");
6767
match config.mode {
6868
CompileFail => run_cfail_test(&config, &props, &testfile),
69+
ParseFail => run_cfail_test(&config, &props, &testfile),
6970
RunFail => run_rfail_test(&config, &props, &testfile),
7071
RunPass => run_rpass_test(&config, &props, &testfile),
7172
RunPassValgrind => run_valgrind_test(&config, &props, &testfile),
@@ -88,7 +89,7 @@ fn run_cfail_test(config: &Config, props: &TestProps, testfile: &Path) {
8889
let proc_res = compile_test(config, props, testfile);
8990

9091
if proc_res.status.success() {
91-
fatal_proc_rec("compile-fail test compiled successfully!",
92+
fatal_proc_rec(&format!("{} test compiled successfully!", config.mode)[],
9293
&proc_res);
9394
}
9495

@@ -688,7 +689,7 @@ fn run_debuginfo_lldb_test(config: &Config, props: &TestProps, testfile: &Path)
688689
.unwrap()
689690
.to_string();
690691

691-
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[..])[]);
692693
script_str.push_str("type summary add --no-value ");
693694
script_str.push_str("--python-function lldb_rust_formatters.print_val ");
694695
script_str.push_str("-x \".*\" --category Rust\n");
@@ -1133,7 +1134,7 @@ fn compile_test_(config: &Config, props: &TestProps,
11331134
// FIXME (#9639): This needs to handle non-utf8 paths
11341135
let mut link_args = vec!("-L".to_string(),
11351136
aux_dir.as_str().unwrap().to_string());
1136-
link_args.extend(extra_args.iter().map(|s| s.clone()));
1137+
link_args.extend(extra_args.iter().cloned());
11371138
let args = make_compile_args(config,
11381139
props,
11391140
link_args,

branches/tmp/src/doc/intro.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -480,7 +480,7 @@ use std::sync::{Arc,Mutex};
480480
fn main() {
481481
let numbers = Arc::new(Mutex::new(vec![1, 2, 3]));
482482
483-
for i in 0us..3 {
483+
for i in 0..3 {
484484
let number = numbers.clone();
485485
Thread::spawn(move || {
486486
let mut array = number.lock().unwrap();
@@ -541,7 +541,7 @@ use std::thread::Thread;
541541
fn main() {
542542
let vec = vec![1, 2, 3];
543543
544-
for i in 0us..3 {
544+
for i in 0..3 {
545545
Thread::spawn(move || {
546546
println!("{}", vec[i]);
547547
});

branches/tmp/src/doc/reference.md

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -465,13 +465,9 @@ An _integer literal_ has one of four forms:
465465

466466
Like any literal, an integer literal may be followed (immediately,
467467
without any spaces) by an _integer suffix_, which forcibly sets the
468-
type of the literal. There are 10 valid values for an integer suffix:
469-
470-
* Each of the signed and unsigned machine types `u8`, `i8`,
471-
`u16`, `i16`, `u32`, `i32`, `u64` and `i64`
472-
give the literal the corresponding machine type.
473-
* The `is` and `us` suffixes give the literal type `isize` or `usize`,
474-
respectively.
468+
type of the literal. The integer suffix must be the name of one of the
469+
integral types: `u8`, `i8`, `u16`, `i16`, `u32`, `i32`, `u64`, `i64`,
470+
`isize`, or `usize`.
475471

476472
The type of an _unsuffixed_ integer literal is determined by type inference.
477473
If an integer type can be _uniquely_ determined from the surrounding program
@@ -489,7 +485,7 @@ Examples of integer literals of various forms:
489485
0xff_u8; // type u8
490486
0o70_i16; // type i16
491487
0b1111_1111_1001_0000_i32; // type i32
492-
0us; // type usize
488+
0usize; // type usize
493489
```
494490

495491
##### Floating-point literals
@@ -1001,8 +997,8 @@ fn foo<T>(_: T){}
1001997
fn bar(map1: HashMap<String, usize>, map2: hash_map::HashMap<String, usize>){}
1002998
1003999
fn main() {
1004-
// Equivalent to 'std::iter::range_step(0us, 10, 2);'
1005-
range_step(0us, 10, 2);
1000+
// Equivalent to 'std::iter::range_step(0, 10, 2);'
1001+
range_step(0, 10, 2);
10061002
10071003
// Equivalent to 'foo(vec![std::option::Option::Some(1.0f64),
10081004
// std::option::Option::None]);'
@@ -3126,7 +3122,7 @@ conditional expression evaluates to `false`, the `while` expression completes.
31263122
An example:
31273123

31283124
```
3129-
let mut i = 0us;
3125+
let mut i = 0;
31303126
31313127
while i < 10 {
31323128
println!("hello");
@@ -3206,7 +3202,7 @@ An example of a for loop over a series of integers:
32063202

32073203
```
32083204
# fn bar(b:usize) { }
3209-
for i in 0us..256 {
3205+
for i in 0..256 {
32103206
bar(i);
32113207
}
32123208
```
@@ -3587,7 +3583,7 @@ An example of each kind:
35873583
```{rust}
35883584
let vec: Vec<i32> = vec![1, 2, 3];
35893585
let arr: [i32; 3] = [1, 2, 3];
3590-
let s: &[i32] = &vec[];
3586+
let s: &[i32] = &vec[..];
35913587
```
35923588

35933589
As you can see, the `vec!` macro allows you to create a `Vec<T>` easily. The

branches/tmp/src/doc/trpl/concurrency.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ use std::time::Duration;
244244
fn main() {
245245
let data = Arc::new(Mutex::new(vec![1u32, 2, 3]));
246246
247-
for i in 0us..2 {
247+
for i in 0..2 {
248248
let data = data.clone();
249249
thread::spawn(move || {
250250
let mut data = data.lock().unwrap();
@@ -267,7 +267,7 @@ thread more closely:
267267
# use std::time::Duration;
268268
# fn main() {
269269
# let data = Arc::new(Mutex::new(vec![1u32, 2, 3]));
270-
# for i in 0us..2 {
270+
# for i in 0..2 {
271271
# let data = data.clone();
272272
thread::spawn(move || {
273273
let mut data = data.lock().unwrap();

branches/tmp/src/doc/trpl/ffi.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -435,8 +435,8 @@ extern {
435435
}
436436
437437
fn main() {
438-
let prompt = CString::from_slice(b"[my-awesome-shell] $");
439-
unsafe {
438+
let prompt = CString::new("[my-awesome-shell] $").unwrap();
439+
unsafe {
440440
rl_prompt = prompt.as_ptr();
441441
442442
println!("{:?}", rl_prompt);
@@ -541,6 +541,6 @@ pub extern fn hello_rust() -> *const u8 {
541541

542542
The `extern` makes this function adhere to the C calling convention, as
543543
discussed above in "[Foreign Calling
544-
Conventions](guide-ffi.html#foreign-calling-conventions)". The `no_mangle`
544+
Conventions](ffi.html#foreign-calling-conventions)". The `no_mangle`
545545
attribute turns off Rust's name mangling, so that it is easier to link to.
546546

branches/tmp/src/doc/trpl/patterns.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ If you want to match against a slice or array, you can use `&`:
180180
fn main() {
181181
let v = vec!["match_this", "1"];
182182
183-
match &v[] {
183+
match &v[..] {
184184
["match_this", second] => println!("The second element is {}", second),
185185
_ => {},
186186
}

0 commit comments

Comments
 (0)