Skip to content

Commit d3f5758

Browse files
committed
---
yaml --- r: 192465 b: refs/heads/auto c: f945190 h: refs/heads/master i: 192463: e3c26bc v: v3
1 parent b577785 commit d3f5758

File tree

2,079 files changed

+6876
-11542
lines changed

Some content is hidden

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

2,079 files changed

+6876
-11542
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: aea822626fef66b6607bc50114b1fb6f8dcd148a
13+
refs/heads/auto: f945190e6352a1bc965a117569532643319b400f
1414
refs/heads/servo: af82457af293e2a842ba6b7759b70288da276167
1515
refs/tags/release-0.6: b4ebcfa1812664df5e142f0134a5faea3918544c
1616
refs/tags/0.1: b19db808c2793fe2976759b85a355c3ad8c8b336

branches/auto/Makefile.in

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,12 @@
9797
# make check-stage1-rpass TESTNAME=my-shiny-new-test
9898
#
9999
# // Having trouble figuring out which test is failing? Turn off parallel tests
100-
# make check-stage1-std RUST_TEST_THREADS=1
100+
# make check-stage1-std RUST_TEST_TASKS=1
101+
#
102+
# This is hardly all there is to know of The Rust Build System's
103+
# mysteries. The tale continues on the wiki[1].
104+
#
105+
# [1]: https://github.com/rust-lang/rust/wiki/Note-testsuite
101106
#
102107
# If you really feel like getting your hands dirty, then:
103108
#

branches/auto/configure

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -479,19 +479,10 @@ esac
479479
# Detect 64 bit linux systems with 32 bit userland and force 32 bit compilation
480480
if [ $CFG_OSTYPE = unknown-linux-gnu -a $CFG_CPUTYPE = x86_64 ]
481481
then
482-
# $SHELL does not exist in standard 'sh', so probably only exists
483-
# if configure is running in an interactive bash shell. /usr/bin/env
484-
# exists *everywhere*.
485-
BIN_TO_PROBE="$SHELL"
486-
if [ -z "$BIN_TO_PROBE" -a -e "/usr/bin/env" ]; then
487-
BIN_TO_PROBE="/usr/bin/env"
482+
file -L "$SHELL" | grep -q "x86[_-]64"
483+
if [ $? != 0 ]; then
484+
CFG_CPUTYPE=i686
488485
fi
489-
if [ -n "$BIN_TO_PROBE" ]; then
490-
file -L "$BIN_TO_PROBE" | grep -q "x86[_-]64"
491-
if [ $? != 0 ]; then
492-
CFG_CPUTYPE=i686
493-
fi
494-
fi
495486
fi
496487

497488

branches/auto/man/rustc.1

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -242,28 +242,6 @@ full debug info with variable and type information.
242242
\fBopt\-level\fR=\fIVAL\fR
243243
Optimize with possible levels 0\[en]3
244244

245-
.SH ENVIRONMENT
246-
247-
Some of these affect the output of the compiler, while others affect programs
248-
which link to the standard library.
249-
250-
.TP
251-
\fBRUST_TEST_THREADS\fR
252-
The test framework Rust provides executes tests in parallel. This variable sets
253-
the maximum number of threads used for this purpose.
254-
255-
.TP
256-
\fBRUST_TEST_NOCAPTURE\fR
257-
A synonym for the --nocapture flag.
258-
259-
.TP
260-
\fBRUST_MIN_STACK\fR
261-
Sets the minimum stack size for new threads.
262-
263-
.TP
264-
\fBRUST_BACKTRACE\fR
265-
If set, produces a backtrace in the output of a program which panics.
266-
267245
.SH "EXAMPLES"
268246
To build an executable from a source file with a main function:
269247
$ rustc \-o hello hello.rs

branches/auto/src/compiletest/compiletest.rs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,8 @@
1919
#![feature(unboxed_closures)]
2020
#![feature(std_misc)]
2121
#![feature(test)]
22+
#![feature(core)]
2223
#![feature(path_ext)]
23-
#![feature(convert)]
24-
#![feature(str_char)]
2524

2625
#![deny(warnings)]
2726

@@ -117,7 +116,7 @@ pub fn parse_config(args: Vec<String> ) -> Config {
117116

118117
fn opt_path(m: &getopts::Matches, nm: &str) -> PathBuf {
119118
match m.opt_str(nm) {
120-
Some(s) => PathBuf::from(&s),
119+
Some(s) => PathBuf::new(&s),
121120
None => panic!("no option (=path) found for {}", nm),
122121
}
123122
}
@@ -132,18 +131,18 @@ pub fn parse_config(args: Vec<String> ) -> Config {
132131
compile_lib_path: matches.opt_str("compile-lib-path").unwrap(),
133132
run_lib_path: matches.opt_str("run-lib-path").unwrap(),
134133
rustc_path: opt_path(matches, "rustc-path"),
135-
clang_path: matches.opt_str("clang-path").map(|s| PathBuf::from(&s)),
134+
clang_path: matches.opt_str("clang-path").map(|s| PathBuf::new(&s)),
136135
valgrind_path: matches.opt_str("valgrind-path"),
137136
force_valgrind: matches.opt_present("force-valgrind"),
138-
llvm_bin_path: matches.opt_str("llvm-bin-path").map(|s| PathBuf::from(&s)),
137+
llvm_bin_path: matches.opt_str("llvm-bin-path").map(|s| PathBuf::new(&s)),
139138
src_base: opt_path(matches, "src-base"),
140139
build_base: opt_path(matches, "build-base"),
141140
aux_base: opt_path(matches, "aux-base"),
142141
stage_id: matches.opt_str("stage-id").unwrap(),
143142
mode: matches.opt_str("mode").unwrap().parse().ok().expect("invalid mode"),
144143
run_ignored: matches.opt_present("ignored"),
145144
filter: filter,
146-
logfile: matches.opt_str("logfile").map(|s| PathBuf::from(&s)),
145+
logfile: matches.opt_str("logfile").map(|s| PathBuf::new(&s)),
147146
runtool: matches.opt_str("runtool"),
148147
host_rustcflags: matches.opt_str("host-rustcflags"),
149148
target_rustcflags: matches.opt_str("target-rustcflags"),
@@ -226,15 +225,15 @@ pub fn run_tests(config: &Config) {
226225
// android debug-info test uses remote debugger
227226
// so, we test 1 task at once.
228227
// also trying to isolate problems with adb_run_wrapper.sh ilooping
229-
env::set_var("RUST_TEST_THREADS","1");
228+
env::set_var("RUST_TEST_TASKS","1");
230229
}
231230

232231
match config.mode {
233232
DebugInfoLldb => {
234233
// Some older versions of LLDB seem to have problems with multiple
235234
// instances running in parallel, so only run one test task at a
236235
// time.
237-
env::set_var("RUST_TEST_THREADS", "1");
236+
env::set_var("RUST_TEST_TASKS", "1");
238237
}
239238
_ => { /* proceed */ }
240239
}

branches/auto/src/compiletest/header.rs

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ pub struct TestProps {
4040
pub check_stdout: bool,
4141
// Don't force a --crate-type=dylib flag on the command line
4242
pub no_prefer_dynamic: bool,
43-
// Run --pretty expanded when running pretty printing tests
44-
pub pretty_expanded: bool,
43+
// Don't run --pretty expanded when running pretty printing tests
44+
pub no_pretty_expanded: bool,
4545
// Which pretty mode are we testing with, default to 'normal'
4646
pub pretty_mode: String,
4747
// Only compare pretty output and don't try compiling
@@ -62,7 +62,7 @@ pub fn load_props(testfile: &Path) -> TestProps {
6262
let mut force_host = false;
6363
let mut check_stdout = false;
6464
let mut no_prefer_dynamic = false;
65-
let mut pretty_expanded = false;
65+
let mut no_pretty_expanded = false;
6666
let mut pretty_mode = None;
6767
let mut pretty_compare_only = false;
6868
let mut forbid_output = Vec::new();
@@ -96,8 +96,8 @@ pub fn load_props(testfile: &Path) -> TestProps {
9696
no_prefer_dynamic = parse_no_prefer_dynamic(ln);
9797
}
9898

99-
if !pretty_expanded {
100-
pretty_expanded = parse_pretty_expanded(ln);
99+
if !no_pretty_expanded {
100+
no_pretty_expanded = parse_no_pretty_expanded(ln);
101101
}
102102

103103
if pretty_mode.is_none() {
@@ -131,7 +131,7 @@ pub fn load_props(testfile: &Path) -> TestProps {
131131
true
132132
});
133133

134-
for key in vec!["RUST_TEST_NOCAPTURE", "RUST_TEST_THREADS"] {
134+
for key in vec!["RUST_TEST_NOCAPTURE", "RUST_TEST_TASKS"] {
135135
match env::var(key) {
136136
Ok(val) =>
137137
if exec_env.iter().find(|&&(ref x, _)| *x == key.to_string()).is_none() {
@@ -152,7 +152,7 @@ pub fn load_props(testfile: &Path) -> TestProps {
152152
force_host: force_host,
153153
check_stdout: check_stdout,
154154
no_prefer_dynamic: no_prefer_dynamic,
155-
pretty_expanded: pretty_expanded,
155+
no_pretty_expanded: no_pretty_expanded,
156156
pretty_mode: pretty_mode.unwrap_or("normal".to_string()),
157157
pretty_compare_only: pretty_compare_only,
158158
forbid_output: forbid_output,
@@ -163,9 +163,6 @@ pub fn is_test_ignored(config: &Config, testfile: &Path) -> bool {
163163
fn ignore_target(config: &Config) -> String {
164164
format!("ignore-{}", util::get_os(&config.target))
165165
}
166-
fn ignore_architecture(config: &Config) -> String {
167-
format!("ignore-{}", util::get_arch(&config.target))
168-
}
169166
fn ignore_stage(config: &Config) -> String {
170167
format!("ignore-{}",
171168
config.stage_id.split('-').next().unwrap())
@@ -229,7 +226,6 @@ pub fn is_test_ignored(config: &Config, testfile: &Path) -> bool {
229226
let val = iter_header(testfile, &mut |ln| {
230227
!parse_name_directive(ln, "ignore-test") &&
231228
!parse_name_directive(ln, &ignore_target(config)) &&
232-
!parse_name_directive(ln, &ignore_architecture(config)) &&
233229
!parse_name_directive(ln, &ignore_stage(config)) &&
234230
!(config.mode == common::Pretty && parse_name_directive(ln, "ignore-pretty")) &&
235231
!(config.target != config.host && parse_name_directive(ln, "ignore-cross-compile")) &&
@@ -295,8 +291,8 @@ fn parse_no_prefer_dynamic(line: &str) -> bool {
295291
parse_name_directive(line, "no-prefer-dynamic")
296292
}
297293

298-
fn parse_pretty_expanded(line: &str) -> bool {
299-
parse_name_directive(line, "pretty-expanded")
294+
fn parse_no_pretty_expanded(line: &str) -> bool {
295+
parse_name_directive(line, "no-pretty-expanded")
300296
}
301297

302298
fn parse_pretty_mode(line: &str) -> Option<String> {
@@ -328,10 +324,10 @@ fn parse_exec_env(line: &str) -> Option<(String, String)> {
328324

329325
fn parse_pp_exact(line: &str, testfile: &Path) -> Option<PathBuf> {
330326
match parse_name_value_directive(line, "pp-exact") {
331-
Some(s) => Some(PathBuf::from(&s)),
327+
Some(s) => Some(PathBuf::new(&s)),
332328
None => {
333329
if parse_name_directive(line, "pp-exact") {
334-
testfile.file_name().map(|s| PathBuf::from(s))
330+
testfile.file_name().map(|s| PathBuf::new(s))
335331
} else {
336332
None
337333
}
@@ -340,8 +336,7 @@ fn parse_pp_exact(line: &str, testfile: &Path) -> Option<PathBuf> {
340336
}
341337

342338
fn parse_name_directive(line: &str, directive: &str) -> bool {
343-
// This 'no-' rule is a quick hack to allow pretty-expanded and no-pretty-expanded to coexist
344-
line.contains(directive) && !line.contains(&("no-".to_string() + directive))
339+
line.contains(directive)
345340
}
346341

347342
pub fn parse_name_value_directive(line: &str, directive: &str)

branches/auto/src/compiletest/procsrv.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,9 @@
1010

1111
#![allow(deprecated)] // for old path, for dynamic_lib
1212

13-
use std::dynamic_lib::DynamicLibrary;
14-
use std::io::prelude::*;
15-
use std::old_path::Path;
1613
use std::process::{ExitStatus, Command, Child, Output, Stdio};
14+
use std::io::prelude::*;
15+
use std::dynamic_lib::DynamicLibrary;
1716

1817
fn add_target_env(cmd: &mut Command, lib_path: &str, aux_path: Option<&str>) {
1918
// Need to be sure to put both the lib_path and the aux path in the dylib

branches/auto/src/compiletest/runtest.rs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ fn run_pretty_test(config: &Config, props: &TestProps, testfile: &Path) {
245245
if !proc_res.status.success() {
246246
fatal_proc_rec("pretty-printed source does not typecheck", &proc_res);
247247
}
248-
if !props.pretty_expanded { return }
248+
if props.no_pretty_expanded { return }
249249

250250
// additionally, run `--pretty expanded` and try to build it.
251251
let proc_res = print_source(config, props, testfile, srcs[round].clone(), "expanded");
@@ -1052,22 +1052,22 @@ fn scan_char(haystack: &str, needle: char, idx: &mut uint) -> bool {
10521052
if *idx >= haystack.len() {
10531053
return false;
10541054
}
1055-
let ch = haystack.char_at(*idx);
1056-
if ch != needle {
1055+
let range = haystack.char_range_at(*idx);
1056+
if range.ch != needle {
10571057
return false;
10581058
}
1059-
*idx += ch.len_utf8();
1059+
*idx = range.next;
10601060
return true;
10611061
}
10621062

10631063
fn scan_integer(haystack: &str, idx: &mut uint) -> bool {
10641064
let mut i = *idx;
10651065
while i < haystack.len() {
1066-
let ch = haystack.char_at(i);
1067-
if ch < '0' || '9' < ch {
1066+
let range = haystack.char_range_at(i);
1067+
if range.ch < '0' || '9' < range.ch {
10681068
break;
10691069
}
1070-
i += ch.len_utf8();
1070+
i = range.next;
10711071
}
10721072
if i == *idx {
10731073
return false;
@@ -1083,9 +1083,9 @@ fn scan_string(haystack: &str, needle: &str, idx: &mut uint) -> bool {
10831083
if haystack_i >= haystack.len() {
10841084
return false;
10851085
}
1086-
let ch = haystack.char_at(haystack_i);
1087-
haystack_i += ch.len_utf8();
1088-
if !scan_char(needle, ch, &mut needle_i) {
1086+
let range = haystack.char_range_at(haystack_i);
1087+
haystack_i = range.next;
1088+
if !scan_char(needle, range.ch, &mut needle_i) {
10891089
return false;
10901090
}
10911091
}
@@ -1440,7 +1440,7 @@ fn aux_output_dir_name(config: &Config, testfile: &Path) -> PathBuf {
14401440
}
14411441

14421442
fn output_testname(testfile: &Path) -> PathBuf {
1443-
PathBuf::from(testfile.file_stem().unwrap())
1443+
PathBuf::new(testfile.file_stem().unwrap())
14441444
}
14451445

14461446
fn output_base_name(config: &Config, testfile: &Path) -> PathBuf {

branches/auto/src/compiletest/util.rs

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -25,23 +25,6 @@ const OS_TABLE: &'static [(&'static str, &'static str)] = &[
2525
("openbsd", "openbsd"),
2626
];
2727

28-
const ARCH_TABLE: &'static [(&'static str, &'static str)] = &[
29-
("i386", "x86"),
30-
("i686", "x86"),
31-
("amd64", "x86_64"),
32-
("x86_64", "x86_64"),
33-
("sparc", "sparc"),
34-
("powerpc", "powerpc"),
35-
("arm64", "aarch64"),
36-
("arm", "arm"),
37-
("aarch64", "aarch64"),
38-
("mips", "mips"),
39-
("xcore", "xcore"),
40-
("msp430", "msp430"),
41-
("hexagon", "hexagon"),
42-
("s390x", "systemz"),
43-
];
44-
4528
pub fn get_os(triple: &str) -> &'static str {
4629
for &(triple_os, os) in OS_TABLE {
4730
if triple.contains(triple_os) {
@@ -50,14 +33,6 @@ pub fn get_os(triple: &str) -> &'static str {
5033
}
5134
panic!("Cannot determine OS from triple");
5235
}
53-
pub fn get_arch(triple: &str) -> &'static str {
54-
for &(triple_arch, arch) in ARCH_TABLE {
55-
if triple.contains(triple_arch) {
56-
return arch
57-
}
58-
}
59-
panic!("Cannot determine Architecture from triple");
60-
}
6136

6237
pub fn make_new_path(path: &str) -> String {
6338
assert!(cfg!(windows));

branches/auto/src/doc/intro.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -446,16 +446,16 @@ It gives us this error:
446446
error: aborting due to previous error
447447
```
448448
449-
This is a little confusing because there are two closures here: the one passed
450-
to `map`, and the one passed to `thread::scoped`. In this case, the closure for
451-
`thread::scoped` is attempting to reference `numbers`, a `Vec<i32>`. This
452-
closure is a `FnOnce` closure, as that’s what `thread::scoped` takes as an
453-
argument. `FnOnce` closures take ownership of their environment. That’s fine,
454-
but there’s one detail: because of `map`, we’re going to make three of these
455-
closures. And since all three try to take ownership of `numbers`, that would be
456-
a problem. That’s what it means by ‘cannot move out of captured outer
457-
variable’: our `thread::scoped` closure wants to take ownership, and it can’t,
458-
because the closure for `map` won’t let it.
449+
It mentions that "captured outer variable in an `FnMut` closure".
450+
Because we declared the closure as a moving closure, and it referred
451+
to `numbers`, the closure will try to take ownership of the
452+
vector. But the closure itself is created in a loop, and hence we will
453+
actually create three closures, one for every iteration of the
454+
loop. This means that all three of those closures would try to own
455+
`numbers`, which is impossible -- `numbers` must have just one
456+
owner. Rust detects this and gives us the error: we claim that
457+
`numbers` has ownership, but our code tries to make three owners. This
458+
may cause a safety problem, so Rust disallows it.
459459
460460
What to do here? Rust has two types that helps us: `Arc<T>` and `Mutex<T>`.
461461
*Arc* stands for "atomically reference counted". In other words, an Arc will

0 commit comments

Comments
 (0)