Skip to content

Commit 53b5f52

Browse files
committed
---
yaml --- r: 182558 b: refs/heads/beta c: 53edd76 h: refs/heads/master v: v3
1 parent 10c8678 commit 53b5f52

File tree

360 files changed

+4738
-4377
lines changed

Some content is hidden

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

360 files changed

+4738
-4377
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ refs/heads/automation-fail: 1bf06495443584539b958873e04cc2f864ab10e4
3131
refs/heads/issue-18208-method-dispatch-3-quick-reject: 2009f85b9f99dedcec4404418eda9ddba90258a2
3232
refs/heads/batch: b7fd822592a4fb577552d93010c4a4e14f314346
3333
refs/heads/building: 126db549b038c84269a1e4fe46f051b2c15d6970
34-
refs/heads/beta: 886c6f3534e6f03916eeff2ea8b235e85dd04b42
34+
refs/heads/beta: 53edd767b42d81efc64a018ad93efc2bf1e37f4b
3535
refs/heads/windistfix: 7608dbad651f02e837ed05eef3d74a6662a6e928
3636
refs/tags/1.0.0-alpha: e42bd6d93a1d3433c486200587f8f9e12590a4d7
3737
refs/heads/tmp: eb836bf767aa1d8d4cba488a9091cde3c0ab4b2f

branches/beta/configure

Lines changed: 1 addition & 0 deletions
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"

branches/beta/mk/cfg/aarch64-linux-android.mk

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

branches/beta/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
################################################################################

branches/beta/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

branches/beta/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>,

branches/beta/src/compiletest/compiletest.rs

Lines changed: 23 additions & 0 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
}
@@ -268,8 +284,15 @@ pub fn test_opts(config: &Config) -> test::TestOpts {
268284
logfile: config.logfile.clone(),
269285
run_tests: true,
270286
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(),
271291
nocapture: false,
272292
color: test::AutoColor,
293+
show_boxplot: false,
294+
boxplot_width: 50,
295+
show_all_stats: false,
273296
}
274297
}
275298

branches/beta/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
}

branches/beta/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
}

branches/beta/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
}

branches/beta/src/doc/reference.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2377,6 +2377,10 @@ These types help drive the compiler's analysis
23772377
: ___Needs filling in___
23782378
* `no_copy_bound`
23792379
: This type does not implement "copy", even if eligible.
2380+
* `no_send_bound`
2381+
: This type does not implement "send", even if eligible.
2382+
* `no_sync_bound`
2383+
: This type does not implement "sync", even if eligible.
23802384
* `eh_personality`
23812385
: ___Needs filling in___
23822386
* `exchange_free`

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ fn goodbye() -> String {
257257

258258
(This is "Sayōnara", if you're curious.)
259259

260-
Now that we have some functionality in our crate, let's try to use it from
260+
Now that we have our some functionality in our crate, let's try to use it from
261261
another crate.
262262

263263
# Importing External Crates

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
% If
1+
% `if`
22

33
Rust's take on `if` is not particularly complex, but it's much more like the
44
`if` you'll find in a dynamically typed language than in a more traditional

branches/beta/src/doc/trpl/looping.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ We now loop forever with `loop` and use `break` to break out early.
123123
iteration. This will only print the odd numbers:
124124

125125
```{rust}
126-
for x in 0u32..10 {
126+
for x in 0..10 {
127127
if x % 2 == 0 { continue; }
128128
129129
println!("{}", x);

branches/beta/src/doc/trpl/threads.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ for init_val in 0 .. 3 {
179179
}
180180

181181
let result = rx.recv().unwrap() + rx.recv().unwrap() + rx.recv().unwrap();
182-
# fn some_expensive_computation(_i: i32) -> i32 { 42 }
182+
# fn some_expensive_computation(_i: u32) -> u32 { 42 }
183183
```
184184

185185
Cloning a `Sender` produces a new handle to the same channel, allowing multiple
@@ -207,7 +207,7 @@ let rxs = (0 .. 3).map(|&:init_val| {
207207

208208
// Wait on each port, accumulating the results
209209
let result = rxs.iter().fold(0, |&:accum, rx| accum + rx.recv().unwrap() );
210-
# fn some_expensive_computation(_i: i32) -> i32 { 42 }
210+
# fn some_expensive_computation(_i: u32) -> u32 { 42 }
211211
```
212212

213213
## Backgrounding computations: Futures

branches/beta/src/doc/trpl/unsafe.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -707,7 +707,7 @@ Other features provided by lang items include:
707707
various kinds; lang items `send`, `sync` and `copy`.
708708
- the marker types and variance indicators found in
709709
`std::marker`; lang items `covariant_type`,
710-
`contravariant_lifetime`, etc.
710+
`contravariant_lifetime`, `no_sync_bound`, etc.
711711

712712
Lang items are loaded lazily by the compiler; e.g. if one never uses
713713
`Box` then there is no need to define functions for `exchange_malloc`

0 commit comments

Comments
 (0)