Skip to content

Commit 6778558

Browse files
committed
---
yaml --- r: 177790 b: refs/heads/snap-stage3 c: 69bc112 h: refs/heads/master v: v3
1 parent a2f69a2 commit 6778558

File tree

730 files changed

+13474
-16903
lines changed

Some content is hidden

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

730 files changed

+13474
-16903
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
refs/heads/master: 474b324eda10440d6568ef872a7307d38e7de95b
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
4-
refs/heads/snap-stage3: ee0be3b3e76773618bf230b7188ac633ac0e76aa
4+
refs/heads/snap-stage3: 69bc112e723d3117f81552aeee44e9f6beae3584
55
refs/heads/try: fde4472848b662a4d1236388c4cf15e2450237e6
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d

branches/snap-stage3/configure

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ need_ok() {
2828

2929
need_cmd() {
3030
if command -v $1 >/dev/null 2>&1
31-
then msg "found program $1"
32-
else err "need program $1"
31+
then msg "found $1"
32+
else err "need $1"
3333
fi
3434
}
3535

@@ -340,7 +340,6 @@ need_cmd date
340340
need_cmd tr
341341
need_cmd sed
342342
need_cmd file
343-
need_cmd make
344343

345344
msg "inspecting environment"
346345

@@ -646,8 +645,6 @@ probe CFG_ISCC iscc
646645
probe CFG_JAVAC javac
647646
probe CFG_ANTLR4 antlr4
648647
probe CFG_GRUN grun
649-
probe CFG_FLEX flex
650-
probe CFG_BISON bison
651648
probe CFG_PANDOC pandoc
652649
probe CFG_PDFLATEX pdflatex
653650
probe CFG_XELATEX xelatex

branches/snap-stage3/mk/crates.mk

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151

5252
TARGET_CRATES := libc std flate arena term \
5353
serialize getopts collections test rand \
54-
log graphviz core rbml alloc \
54+
log regex graphviz core rbml alloc \
5555
unicode rustc_bitflags
5656
RUSTC_CRATES := rustc rustc_typeck rustc_borrowck rustc_resolve rustc_driver \
5757
rustc_trans rustc_back rustc_llvm rustc_privacy
@@ -95,15 +95,16 @@ DEPS_term := std log
9595
DEPS_getopts := std
9696
DEPS_collections := core alloc unicode
9797
DEPS_num := std
98-
DEPS_test := std getopts serialize rbml term native:rust_test_helpers
98+
DEPS_test := std getopts serialize rbml term regex native:rust_test_helpers
9999
DEPS_rand := core
100-
DEPS_log := std
100+
DEPS_log := std regex
101+
DEPS_regex := std
101102
DEPS_fmt_macros = std
102103

103104
TOOL_DEPS_compiletest := test getopts
104105
TOOL_DEPS_rustdoc := rustdoc
105106
TOOL_DEPS_rustc := rustc_driver
106-
TOOL_DEPS_rustbook := std rustdoc
107+
TOOL_DEPS_rustbook := std regex rustdoc
107108
TOOL_SOURCE_compiletest := $(S)src/compiletest/compiletest.rs
108109
TOOL_SOURCE_rustdoc := $(S)src/driver/driver.rs
109110
TOOL_SOURCE_rustc := $(S)src/driver/driver.rs
@@ -129,8 +130,9 @@ DOC_CRATES := $(filter-out rustc, \
129130
$(filter-out rustc_driver, \
130131
$(filter-out rustc_privacy, \
131132
$(filter-out log, \
133+
$(filter-out regex, \
132134
$(filter-out getopts, \
133-
$(filter-out syntax, $(CRATES)))))))))))
135+
$(filter-out syntax, $(CRATES))))))))))))
134136
COMPILER_DOC_CRATES := rustc rustc_trans rustc_borrowck rustc_resolve \
135137
rustc_typeck rustc_driver syntax rustc_privacy
136138

branches/snap-stage3/mk/grammar.mk

Lines changed: 0 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,6 @@ B = $(CFG_BUILD_DIR)/$(CFG_BUILD)/stage2/
1414
L = $(B)lib/rustlib/$(CFG_BUILD)/lib
1515
LD = $(CFG_BUILD)/stage2/lib/rustlib/$(CFG_BUILD)/lib/
1616
RUSTC = $(STAGE2_T_$(CFG_BUILD)_H_$(CFG_BUILD))
17-
ifeq ($(CFG_OSTYPE),apple-darwin)
18-
FLEX_LDFLAGS=-ll
19-
else
20-
FLEX_LDFLAGS=-lfl
21-
endif
2217

2318
# Run the reference lexer against libsyntax and compare the tokens and spans.
2419
# If "// ignore-lexer-test" is present in the file, it will be ignored.
@@ -72,46 +67,3 @@ $(info cfg: javac not available, skipping lexer test...)
7267
check-lexer:
7368

7469
endif
75-
76-
$(BG)lex.yy.c: $(SG)lexer.l $(BG)
77-
@$(call E, flex: $@)
78-
$(Q)$(CFG_FLEX) -o $@ $<
79-
80-
$(BG)lexer-lalr.o: $(BG)lex.yy.c $(BG)parser-lalr.tab.h
81-
@$(call E, cc: $@)
82-
$(Q)$(CFG_CC) -include $(BG)parser-lalr.tab.h -c -o $@ $<
83-
84-
$(BG)parser-lalr.tab.c $(BG)parser-lalr.tab.h: $(SG)parser-lalr.y
85-
@$(call E, bison: $@)
86-
$(Q)$(CFG_BISON) $< --output=$(BG)parser-lalr.tab.c --defines=$(BG)parser-lalr.tab.h \
87-
--name-prefix=rs --warnings=error=all
88-
89-
$(BG)parser-lalr.o: $(BG)parser-lalr.tab.c
90-
@$(call E, cc: $@)
91-
$(Q)$(CFG_CC) -c -o $@ $<
92-
93-
$(BG)parser-lalr-main.o: $(SG)parser-lalr-main.c
94-
@$(call E, cc: $@)
95-
$(Q)$(CFG_CC) -std=c99 -c -o $@ $<
96-
97-
$(BG)parser-lalr: $(BG)parser-lalr.o $(BG)parser-lalr-main.o $(BG)lexer-lalr.o
98-
@$(call E, cc: $@)
99-
$(Q)$(CFG_CC) -o $@ $^ $(FLEX_LDFLAGS)
100-
101-
102-
ifdef CFG_FLEX
103-
ifdef CFG_BISON
104-
check-grammar: $(BG) $(BG)parser-lalr
105-
$(info Verifying grammar ...)
106-
$(SG)testparser.py -p $(BG)parser-lalr -s $(S)src
107-
108-
else
109-
$(info cfg: bison not available, skipping parser test...)
110-
check-grammar:
111-
112-
endif
113-
else
114-
$(info cfg: flex not available, skipping parser test...)
115-
check-grammar:
116-
117-
endif

branches/snap-stage3/mk/main.mk

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ CFG_PACKAGE_VERS=$(CFG_RELEASE_NUM)
3030
CFG_DISABLE_UNSTABLE_FEATURES=1
3131
endif
3232
ifeq ($(CFG_RELEASE_CHANNEL),beta)
33-
CFG_RELEASE=$(CFG_RELEASE_NUM)-beta$(CFG_PRERELEASE_VERSION)
34-
CFG_PACKAGE_VERS=$(CFG_RELEASE_NUM)-beta$(CFG_PRERELEASE_VERSION)
33+
CFG_RELEASE=$(CFG_RELEASE_NUM)-beta(CFG_PRERELEASE_VERSION)
34+
CFG_PACKAGE_VERS=$(CFG_RELEASE_NUM)-beta(CFG_PRERELEASE_VERSION)
3535
CFG_DISABLE_UNSTABLE_FEATURES=1
3636
endif
3737
ifeq ($(CFG_RELEASE_CHANNEL),nightly)

branches/snap-stage3/mk/tests.mk

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

306305

307306
endif

branches/snap-stage3/src/compiletest/common.rs

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ pub use self::Mode::*;
1111

1212
use std::fmt;
1313
use std::str::FromStr;
14+
use regex::Regex;
1415

15-
#[cfg(stage0)] // NOTE: remove impl after snapshot
16-
#[derive(Clone, Copy, PartialEq, Show)]
16+
#[derive(Clone, PartialEq, Debug)]
1717
pub enum Mode {
1818
CompileFail,
1919
RunFail,
@@ -25,18 +25,7 @@ pub enum Mode {
2525
Codegen
2626
}
2727

28-
#[cfg(not(stage0))] // NOTE: remove cfg after snapshot
29-
#[derive(Clone, Copy, PartialEq, Debug)]
30-
pub enum Mode {
31-
CompileFail,
32-
RunFail,
33-
RunPass,
34-
RunPassValgrind,
35-
Pretty,
36-
DebugInfoGdb,
37-
DebugInfoLldb,
38-
Codegen
39-
}
28+
impl Copy for Mode {}
4029

4130
impl FromStr for Mode {
4231
fn from_str(s: &str) -> Option<Mode> {
@@ -112,7 +101,10 @@ pub struct Config {
112101
pub run_ignored: bool,
113102

114103
// Only run tests that match this filter
115-
pub filter: Option<String>,
104+
pub filter: Option<Regex>,
105+
106+
// Precompiled regex for finding expected errors in cfail
107+
pub cfail_regex: Regex,
116108

117109
// Write out a parseable log of tests that were run
118110
pub logfile: Option<Path>,

branches/snap-stage3/src/compiletest/compiletest.rs

Lines changed: 35 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,7 @@
1313
#![feature(slicing_syntax, unboxed_closures)]
1414
#![feature(box_syntax)]
1515
#![feature(int_uint)]
16-
#![feature(test)]
17-
#![feature(rustc_private)]
18-
#![feature(std_misc)]
19-
#![feature(path)]
20-
#![feature(io)]
21-
#![feature(core)]
22-
#![feature(collections)]
23-
#![feature(os)]
24-
#![feature(unicode)]
16+
#![allow(unstable)]
2517

2618
#![deny(warnings)]
2719

@@ -30,16 +22,18 @@ extern crate getopts;
3022

3123
#[macro_use]
3224
extern crate log;
25+
extern crate regex;
3326

3427
use std::os;
35-
use std::old_io;
36-
use std::old_io::fs;
28+
use std::io;
29+
use std::io::fs;
3730
use std::str::FromStr;
3831
use std::thunk::Thunk;
3932
use getopts::{optopt, optflag, reqopt};
4033
use common::Config;
4134
use common::{Pretty, DebugInfoGdb, DebugInfoLldb, Codegen};
4235
use util::logv;
36+
use regex::Regex;
4337

4438
pub mod procsrv;
4539
pub mod util;
@@ -122,7 +116,14 @@ pub fn parse_config(args: Vec<String> ) -> Config {
122116
}
123117

124118
let filter = if !matches.free.is_empty() {
125-
Some(matches.free[0].clone())
119+
let s = matches.free[0].as_slice();
120+
match regex::Regex::new(s) {
121+
Ok(re) => Some(re),
122+
Err(e) => {
123+
println!("failed to parse filter /{}/: {:?}", s, e);
124+
panic!()
125+
}
126+
}
126127
} else {
127128
None
128129
};
@@ -144,6 +145,7 @@ pub fn parse_config(args: Vec<String> ) -> Config {
144145
.as_slice()).expect("invalid mode"),
145146
run_ignored: matches.opt_present("ignored"),
146147
filter: filter,
148+
cfail_regex: Regex::new(errors::EXPECTED_PATTERN).unwrap(),
147149
logfile: matches.opt_str("logfile").map(|s| Path::new(s)),
148150
runtool: matches.opt_str("runtool"),
149151
host_rustcflags: matches.opt_str("host-rustcflags"),
@@ -245,10 +247,7 @@ pub fn run_tests(config: &Config) {
245247
// sadly osx needs some file descriptor limits raised for running tests in
246248
// parallel (especially when we have lots and lots of child processes).
247249
// For context, see #8904
248-
old_io::test::raise_fd_limit();
249-
// Prevent issue #21352 UAC blocking .exe containing 'patch' etc. on Windows
250-
// If #11207 is resolved (adding manifest to .exe) this becomes unnecessary
251-
os::setenv("__COMPAT_LAYER", "RunAsInvoker");
250+
io::test::raise_fd_limit();
252251
let res = test::run_tests_console(&opts, tests.into_iter().collect());
253252
match res {
254253
Ok(true) => {}
@@ -372,24 +371,18 @@ fn extract_gdb_version(full_version_line: Option<String>) -> Option<String> {
372371
if full_version_line.as_slice().trim().len() > 0 => {
373372
let full_version_line = full_version_line.as_slice().trim();
374373

375-
// used to be a regex "(^|[^0-9])([0-9]\.[0-9])([^0-9]|$)"
376-
for (pos, c) in full_version_line.char_indices() {
377-
if !c.is_digit(10) { continue }
378-
if pos + 2 >= full_version_line.len() { continue }
379-
if full_version_line.char_at(pos + 1) != '.' { continue }
380-
if !full_version_line.char_at(pos + 2).is_digit(10) { continue }
381-
if pos > 0 && full_version_line.char_at_reverse(pos).is_digit(10) {
382-
continue
374+
let re = Regex::new(r"(^|[^0-9])([0-9]\.[0-9])([^0-9]|$)").unwrap();
375+
376+
match re.captures(full_version_line) {
377+
Some(captures) => {
378+
Some(captures.at(2).unwrap_or("").to_string())
383379
}
384-
if pos + 3 < full_version_line.len() &&
385-
full_version_line.char_at(pos + 3).is_digit(10) {
386-
continue
380+
None => {
381+
println!("Could not extract GDB version from line '{}'",
382+
full_version_line);
383+
None
387384
}
388-
return Some(full_version_line[pos..pos+3].to_string());
389385
}
390-
println!("Could not extract GDB version from line '{}'",
391-
full_version_line);
392-
None
393386
},
394387
_ => None
395388
}
@@ -412,26 +405,18 @@ fn extract_lldb_version(full_version_line: Option<String>) -> Option<String> {
412405
if full_version_line.as_slice().trim().len() > 0 => {
413406
let full_version_line = full_version_line.as_slice().trim();
414407

415-
for (pos, l) in full_version_line.char_indices() {
416-
if l != 'l' && l != 'L' { continue }
417-
if pos + 5 >= full_version_line.len() { continue }
418-
let l = full_version_line.char_at(pos + 1);
419-
if l != 'l' && l != 'L' { continue }
420-
let d = full_version_line.char_at(pos + 2);
421-
if d != 'd' && d != 'D' { continue }
422-
let b = full_version_line.char_at(pos + 3);
423-
if b != 'b' && b != 'B' { continue }
424-
let dash = full_version_line.char_at(pos + 4);
425-
if dash != '-' { continue }
426-
427-
let vers = full_version_line[pos + 5..].chars().take_while(|c| {
428-
c.is_digit(10)
429-
}).collect::<String>();
430-
if vers.len() > 0 { return Some(vers) }
408+
let re = Regex::new(r"[Ll][Ll][Dd][Bb]-([0-9]+)").unwrap();
409+
410+
match re.captures(full_version_line) {
411+
Some(captures) => {
412+
Some(captures.at(1).unwrap_or("").to_string())
413+
}
414+
None => {
415+
println!("Could not extract LLDB version from line '{}'",
416+
full_version_line);
417+
None
418+
}
431419
}
432-
println!("Could not extract LLDB version from line '{}'",
433-
full_version_line);
434-
None
435420
},
436421
_ => None
437422
}

0 commit comments

Comments
 (0)