Skip to content

Commit d5279c8

Browse files
committed
---
yaml --- r: 175277 b: refs/heads/master c: 8ea6f78 h: refs/heads/master i: 175275: 3d4c24a v: v3
1 parent 2e5760e commit d5279c8

File tree

414 files changed

+6978
-7102
lines changed

Some content is hidden

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

414 files changed

+6978
-7102
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
refs/heads/master: aedcbb9d82ccd7ead4b075ff55a99e363be94174
2+
refs/heads/master: 8ea6f78cf6779a933e2dd859efee995932ef1371
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 777435990e0e91df6b72ce80c9b6fa485eeb5daa
55
refs/heads/try: 08f6380a9f0b866796080094f44fe25ea5636547

trunk/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ documentation.
2121
1. Make sure you have installed the dependencies:
2222
* `g++` 4.7 or `clang++` 3.x
2323
* `python` 2.6 or later (but not 3.x)
24+
* `perl` 5.0 or later
2425
* GNU `make` 3.81 or later
2526
* `curl`
2627
* `git`

trunk/configure

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -509,6 +509,7 @@ opt optimize-tests 1 "build tests with optimizations"
509509
opt libcpp 1 "build with llvm with libc++ instead of libstdc++ when using clang"
510510
opt llvm-assertions 1 "build LLVM with assertions"
511511
opt debug 1 "build with extra debug fun"
512+
opt ratchet-bench 0 "ratchet benchmarks"
512513
opt fast-make 0 "use .gitmodules as timestamp for submodule deps"
513514
opt ccache 0 "invoke gcc/clang via ccache to reuse object files between builds"
514515
opt local-rust 0 "use an installed rustc rather than downloading a snapshot"
@@ -616,6 +617,7 @@ putvar CFG_BOOTSTRAP_KEY
616617

617618
step_msg "looking for build programs"
618619

620+
probe_need CFG_PERL perl
619621
probe_need CFG_CURLORWGET curl wget
620622
probe_need CFG_PYTHON python2.7 python2.6 python2 python
621623

@@ -1373,7 +1375,7 @@ do
13731375
done
13741376

13751377
# Munge any paths that appear in config.mk back to posix-y
1376-
sed -i.bak -e 's@ \([a-zA-Z]\):[/\\]@ /\1/@g;' config.tmp
1378+
perl -i.bak -p -e 's@ ([a-zA-Z]):[/\\]@ /\1/@go;' config.tmp
13771379
rm -f config.tmp.bak
13781380

13791381
msg

trunk/mk/cfg/aarch64-linux-android.mk

Lines changed: 0 additions & 30 deletions
This file was deleted.

trunk/mk/cfg/i686-pc-windows-gnu.mk

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ CFG_LIB_NAME_i686-pc-windows-gnu=$(1).dll
88
CFG_STATIC_LIB_NAME_i686-pc-windows-gnu=$(1).lib
99
CFG_LIB_GLOB_i686-pc-windows-gnu=$(1)-*.dll
1010
CFG_LIB_DSYM_GLOB_i686-pc-windows-gnu=$(1)-*.dylib.dSYM
11-
CFG_JEMALLOC_CFLAGS_i686-pc-windows-gnu := -march=i686 -m32 -D_WIN32_WINNT=0x0600 -D__USE_MINGW_ANSI_STDIO=1 $(CFLAGS)
12-
CFG_GCCISH_CFLAGS_i686-pc-windows-gnu := -Wall -Werror -g -m32 -D_WIN32_WINNT=0x0600 -D__USE_MINGW_ANSI_STDIO=1 $(CFLAGS)
11+
CFG_JEMALLOC_CFLAGS_i686-pc-windows-gnu := -march=i686 -m32 -D_WIN32_WINNT=0x0600 $(CFLAGS)
12+
CFG_GCCISH_CFLAGS_i686-pc-windows-gnu := -Wall -Werror -g -m32 -D_WIN32_WINNT=0x0600 $(CFLAGS)
1313
CFG_GCCISH_CXXFLAGS_i686-pc-windows-gnu := -fno-rtti $(CXXFLAGS)
1414
CFG_GCCISH_LINK_FLAGS_i686-pc-windows-gnu := -shared -g -m32
1515
CFG_GCCISH_DEF_FLAG_i686-pc-windows-gnu :=
@@ -22,7 +22,7 @@ CFG_EXE_SUFFIX_i686-pc-windows-gnu := .exe
2222
CFG_WINDOWSY_i686-pc-windows-gnu := 1
2323
CFG_UNIXY_i686-pc-windows-gnu :=
2424
CFG_PATH_MUNGE_i686-pc-windows-gnu :=
25-
CFG_LDPATH_i686-pc-windows-gnu :=
26-
CFG_RUN_i686-pc-windows-gnu=$(2)
27-
CFG_RUN_TARG_i686-pc-windows-gnu=$(call CFG_RUN_i686-pc-windows-gnu,,$(2))
25+
CFG_LDPATH_i686-pc-windows-gnu :=$(CFG_LDPATH_i686-pc-windows-gnu):$(PATH)
26+
CFG_RUN_i686-pc-windows-gnu=PATH="$(CFG_LDPATH_i686-pc-windows-gnu):$(1)" $(2)
27+
CFG_RUN_TARG_i686-pc-windows-gnu=$(call CFG_RUN_i686-pc-windows-gnu,$(HLIB$(1)_H_$(CFG_BUILD)),$(2))
2828
CFG_GNU_TRIPLE_i686-pc-windows-gnu := i686-w64-mingw32

trunk/mk/cfg/x86_64-pc-windows-gnu.mk

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ CFG_LIB_NAME_x86_64-pc-windows-gnu=$(1).dll
88
CFG_STATIC_LIB_NAME_x86_64-pc-windows-gnu=$(1).lib
99
CFG_LIB_GLOB_x86_64-pc-windows-gnu=$(1)-*.dll
1010
CFG_LIB_DSYM_GLOB_x86_64-pc-windows-gnu=$(1)-*.dylib.dSYM
11-
CFG_JEMALLOC_CFLAGS_x86_64-pc-windows-gnu := -m64 -D_WIN32_WINNT=0x0600 -D__USE_MINGW_ANSI_STDIO=1 $(CFLAGS)
12-
CFG_GCCISH_CFLAGS_x86_64-pc-windows-gnu := -Wall -Werror -g -m64 -D_WIN32_WINNT=0x0600 -D__USE_MINGW_ANSI_STDIO=1 $(CFLAGS)
11+
CFG_JEMALLOC_CFLAGS_x86_64-pc-windows-gnu := -m64 -D_WIN32_WINNT=0x0600 $(CFLAGS)
12+
CFG_GCCISH_CFLAGS_x86_64-pc-windows-gnu := -Wall -Werror -g -m64 -D_WIN32_WINNT=0x0600 $(CFLAGS)
1313
CFG_GCCISH_CXXFLAGS_x86_64-pc-windows-gnu := -fno-rtti $(CXXFLAGS)
1414
CFG_GCCISH_LINK_FLAGS_x86_64-pc-windows-gnu := -shared -g -m64
1515
CFG_GCCISH_DEF_FLAG_x86_64-pc-windows-gnu :=
@@ -22,7 +22,7 @@ CFG_EXE_SUFFIX_x86_64-pc-windows-gnu := .exe
2222
CFG_WINDOWSY_x86_64-pc-windows-gnu := 1
2323
CFG_UNIXY_x86_64-pc-windows-gnu :=
2424
CFG_PATH_MUNGE_x86_64-pc-windows-gnu :=
25-
CFG_LDPATH_x86_64-pc-windows-gnu :=
26-
CFG_RUN_x86_64-pc-windows-gnu=$(2)
27-
CFG_RUN_TARG_x86_64-pc-windows-gnu=$(call CFG_RUN_x86_64-pc-windows-gnu,,$(2))
25+
CFG_LDPATH_x86_64-pc-windows-gnu :=$(CFG_LDPATH_x86_64-pc-windows-gnu):$(PATH)
26+
CFG_RUN_x86_64-pc-windows-gnu=PATH="$(CFG_LDPATH_x86_64-pc-windows-gnu):$(1)" $(2)
27+
CFG_RUN_TARG_x86_64-pc-windows-gnu=$(call CFG_RUN_x86_64-pc-windows-gnu,$(HLIB$(1)_H_$(CFG_BUILD)),$(2))
2828
CFG_GNU_TRIPLE_x86_64-pc-windows-gnu := x86_64-w64-mingw32

trunk/mk/rt.mk

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,6 @@ else ifeq ($(OSTYPE_$(1)), apple-ios)
141141
JEMALLOC_ARGS_$(1) := --disable-tls
142142
else ifeq ($(OSTYPE_$(1)), linux-androideabi)
143143
JEMALLOC_ARGS_$(1) := --disable-tls
144-
else ifeq ($(OSTYPE_$(1)), linux-android)
145-
JEMALLOC_ARGS_$(1) := --disable-tls
146144
endif
147145

148146
################################################################################

trunk/mk/tests.mk

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,6 @@ tidy:
300300
| grep '^$(S)src/libbacktrace' -v \
301301
| grep '^$(S)src/rust-installer' -v \
302302
| xargs $(CFG_PYTHON) $(S)src/etc/check-binaries.py
303-
$(Q) $(CFG_PYTHON) $(S)src/etc/errorck.py $(S)src/
304303

305304

306305
endif

trunk/src/compiletest/common.rs

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ use std::fmt;
1313
use std::str::FromStr;
1414
use regex::Regex;
1515

16-
#[derive(Clone, PartialEq, Debug)]
16+
#[derive(Clone, PartialEq)]
1717
pub enum Mode {
1818
CompileFail,
1919
RunFail,
@@ -43,9 +43,9 @@ impl FromStr for Mode {
4343
}
4444
}
4545

46-
impl fmt::Display for Mode {
46+
impl fmt::String for Mode {
4747
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
48-
fmt::Display::fmt(match *self {
48+
fmt::String::fmt(match *self {
4949
CompileFail => "compile-fail",
5050
RunFail => "run-fail",
5151
RunPass => "run-pass",
@@ -58,6 +58,12 @@ impl fmt::Display for Mode {
5858
}
5959
}
6060

61+
impl fmt::Show for Mode {
62+
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
63+
fmt::String::fmt(self, f)
64+
}
65+
}
66+
6167
#[derive(Clone)]
6268
pub struct Config {
6369
// The library paths required for running the compiler
@@ -109,6 +115,20 @@ pub struct Config {
109115
// Write out a parseable log of tests that were run
110116
pub logfile: Option<Path>,
111117

118+
// Write out a json file containing any metrics of the run
119+
pub save_metrics: Option<Path>,
120+
121+
// Write and ratchet a metrics file
122+
pub ratchet_metrics: Option<Path>,
123+
124+
// Percent change in metrics to consider noise
125+
pub ratchet_noise_percent: Option<f64>,
126+
127+
// "Shard" of the testsuite to pub run: this has the form of
128+
// two numbers (a,b), and causes only those tests with
129+
// positional order equal to a mod b to run.
130+
pub test_shard: Option<(uint,uint)>,
131+
112132
// A command line to prefix program execution with,
113133
// for running under valgrind
114134
pub runtool: Option<String>,

trunk/src/compiletest/compiletest.rs

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,10 @@ pub fn parse_config(args: Vec<String> ) -> Config {
7777
optopt("", "target-rustcflags", "flags to pass to rustc for target", "FLAGS"),
7878
optflag("", "verbose", "run tests verbosely, showing all output"),
7979
optopt("", "logfile", "file to log test execution to", "FILE"),
80+
optopt("", "save-metrics", "file to save metrics to", "FILE"),
81+
optopt("", "ratchet-metrics", "file to ratchet metrics against", "FILE"),
82+
optopt("", "ratchet-noise-percent",
83+
"percent change in metrics to consider noise", "N"),
8084
optflag("", "jit", "run tests under the JIT"),
8185
optopt("", "target", "the target to build for", "TARGET"),
8286
optopt("", "host", "the host to build for", "HOST"),
@@ -86,6 +90,7 @@ pub fn parse_config(args: Vec<String> ) -> Config {
8690
optopt("", "adb-path", "path to the android debugger", "PATH"),
8791
optopt("", "adb-test-dir", "path to tests for the android debugger", "PATH"),
8892
optopt("", "lldb-python-dir", "directory containing LLDB's python module", "PATH"),
93+
optopt("", "test-shard", "run shard A, of B shards, worth of the testsuite", "A.B"),
8994
optflag("h", "help", "show this message"));
9095

9196
assert!(!args.is_empty());
@@ -147,6 +152,12 @@ pub fn parse_config(args: Vec<String> ) -> Config {
147152
filter: filter,
148153
cfail_regex: Regex::new(errors::EXPECTED_PATTERN).unwrap(),
149154
logfile: matches.opt_str("logfile").map(|s| Path::new(s)),
155+
save_metrics: matches.opt_str("save-metrics").map(|s| Path::new(s)),
156+
ratchet_metrics:
157+
matches.opt_str("ratchet-metrics").map(|s| Path::new(s)),
158+
ratchet_noise_percent:
159+
matches.opt_str("ratchet-noise-percent")
160+
.and_then(|s| s.as_slice().parse::<f64>()),
150161
runtool: matches.opt_str("runtool"),
151162
host_rustcflags: matches.opt_str("host-rustcflags"),
152163
target_rustcflags: matches.opt_str("target-rustcflags"),
@@ -165,6 +176,7 @@ pub fn parse_config(args: Vec<String> ) -> Config {
165176
opt_str2(matches.opt_str("adb-test-dir")).as_slice() &&
166177
!opt_str2(matches.opt_str("adb-test-dir")).is_empty(),
167178
lldb_python_dir: matches.opt_str("lldb-python-dir"),
179+
test_shard: test::opt_shard(matches.opt_str("test-shard")),
168180
verbose: matches.opt_present("verbose"),
169181
}
170182
}
@@ -198,6 +210,10 @@ pub fn log_config(config: &Config) {
198210
logv(c, format!("adb_test_dir: {:?}", config.adb_test_dir));
199211
logv(c, format!("adb_device_status: {}",
200212
config.adb_device_status));
213+
match config.test_shard {
214+
None => logv(c, "test_shard: (all)".to_string()),
215+
Some((a,b)) => logv(c, format!("test_shard: {}.{}", a, b))
216+
}
201217
logv(c, format!("verbose: {}", config.verbose));
202218
logv(c, format!("\n"));
203219
}
@@ -248,9 +264,6 @@ pub fn run_tests(config: &Config) {
248264
// parallel (especially when we have lots and lots of child processes).
249265
// For context, see #8904
250266
io::test::raise_fd_limit();
251-
// Prevent issue #21352 UAC blocking .exe containing 'patch' etc. on Windows
252-
// If #11207 is resolved (adding manifest to .exe) this becomes unnecessary
253-
os::setenv("__COMPAT_LAYER", "RunAsInvoker");
254267
let res = test::run_tests_console(&opts, tests.into_iter().collect());
255268
match res {
256269
Ok(true) => {}
@@ -271,8 +284,15 @@ pub fn test_opts(config: &Config) -> test::TestOpts {
271284
logfile: config.logfile.clone(),
272285
run_tests: true,
273286
run_benchmarks: true,
287+
ratchet_metrics: config.ratchet_metrics.clone(),
288+
ratchet_noise_percent: config.ratchet_noise_percent.clone(),
289+
save_metrics: config.save_metrics.clone(),
290+
test_shard: config.test_shard.clone(),
274291
nocapture: false,
275292
color: test::AutoColor,
293+
show_boxplot: false,
294+
boxplot_width: 50,
295+
show_all_stats: false,
276296
}
277297
}
278298

trunk/src/compiletest/header.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,8 @@ pub fn parse_name_value_directive(line: &str, directive: &str)
332332
let keycolon = format!("{}:", directive);
333333
match line.find_str(keycolon.as_slice()) {
334334
Some(colon) => {
335-
let value = line[(colon + keycolon.len()) .. line.len()].to_string();
335+
let value = line.slice(colon + keycolon.len(),
336+
line.len()).to_string();
336337
debug!("{}: {}", directive, value);
337338
Some(value)
338339
}

trunk/src/compiletest/runtest.rs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,6 @@ fn run_pretty_test(config: &Config, props: &TestProps, testfile: &Path) {
294294
let aux_dir = aux_output_dir_name(config, testfile);
295295
// FIXME (#9639): This needs to handle non-utf8 paths
296296
let mut args = vec!("-".to_string(),
297-
"-Zunstable-options".to_string(),
298297
"--pretty".to_string(),
299298
pretty_type,
300299
format!("--target={}", config.target),
@@ -341,7 +340,7 @@ actual:\n\
341340
};
342341
// FIXME (#9639): This needs to handle non-utf8 paths
343342
let mut args = vec!("-".to_string(),
344-
"-Zno-trans".to_string(),
343+
"--no-trans".to_string(),
345344
"--crate-type=lib".to_string(),
346345
format!("--target={}", target),
347346
"-L".to_string(),
@@ -548,7 +547,7 @@ fn run_debuginfo_gdb_test(config: &Config, props: &TestProps, testfile: &Path) {
548547

549548
// Add line breakpoints
550549
for line in breakpoint_lines.iter() {
551-
script_str.push_str(&format!("break '{}':{}\n",
550+
script_str.push_str(&format!("break '{:?}':{}\n",
552551
testfile.filename_display(),
553552
*line)[]);
554553
}
@@ -751,7 +750,7 @@ fn run_debuginfo_lldb_test(config: &Config, props: &TestProps, testfile: &Path)
751750
status: status,
752751
stdout: out,
753752
stderr: err,
754-
cmdline: format!("{:?}", cmd)
753+
cmdline: format!("{}", cmd)
755754
};
756755
}
757756
}
@@ -863,7 +862,7 @@ fn check_debugger_output(debugger_run_result: &ProcRes, check_lines: &[String])
863862
break;
864863
}
865864
Some(i) => {
866-
rest = &rest[(i + frag.len())..];
865+
rest = rest.slice_from(i + frag.len());
867866
}
868867
}
869868
first = false;
@@ -954,7 +953,7 @@ fn check_expected_errors(expected_errors: Vec<errors::ExpectedError> ,
954953
}
955954

956955
let prefixes = expected_errors.iter().map(|ee| {
957-
format!("{}:{}:", testfile.display(), ee.line)
956+
format!("{:?}:{}:", testfile.display(), ee.line)
958957
}).collect::<Vec<String> >();
959958

960959
#[cfg(windows)]
@@ -1046,7 +1045,7 @@ fn scan_until_char(haystack: &str, needle: char, idx: &mut uint) -> bool {
10461045
if *idx >= haystack.len() {
10471046
return false;
10481047
}
1049-
let opt = haystack[(*idx)..].find(needle);
1048+
let opt = haystack.slice_from(*idx).find(needle);
10501049
if opt.is_none() {
10511050
return false;
10521051
}

trunk/src/doc/intro.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -480,12 +480,14 @@ use std::sync::{Arc,Mutex};
480480
fn main() {
481481
let numbers = Arc::new(Mutex::new(vec![1is, 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();
487-
array[i] += 1;
488-
println!("numbers[{}] is {}", i, array[i]);
487+
488+
(*array)[i] += 1;
489+
490+
println!("numbers[{}] is {}", i, (*array)[i]);
489491
});
490492
}
491493
}

0 commit comments

Comments
 (0)