Skip to content

Commit f8c8a9b

Browse files
committed
---
yaml --- r: 115431 b: refs/heads/try c: 028159e h: refs/heads/master i: 115429: 6510adb 115427: 5072d08 115423: eba69c9 v: v3
1 parent b31e582 commit f8c8a9b

File tree

807 files changed

+29280
-13614
lines changed

Some content is hidden

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

807 files changed

+29280
-13614
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
refs/heads/master: bee4e6adac17f87b1cdc26ab69f8c0f5d82575a3
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: ec0258a381b88b5574e3f8ce72ae553ac3a574b7
5-
refs/heads/try: b3d7aa39240f17ca8b496b31908da4c08a639555
5+
refs/heads/try: 028159ead403c09efcaa2b0bb0738d33209c3950
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
88
refs/heads/try2: 147ecfdd8221e4a4d4e090486829a06da1e0ca3c

branches/try/LICENSE-MIT

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
Copyright (c) 2006-2009 Graydon Hoare
2-
Copyright (c) 2009-2014 Mozilla Foundation
1+
Copyright (c) 2014 The Rust Project Developers
32

43
Permission is hereby granted, free of charge, to any
54
person obtaining a copy of this software and associated

branches/try/RELEASES.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ Version 0.10 (April 2014)
6363
documentation index page.
6464
* std: `std::condition` has been removed. All I/O errors are now propagated
6565
through the `Result` type. In order to assist with error handling, a
66-
`try!` macro for unwrapping errors with an early return and an lint for
66+
`try!` macro for unwrapping errors with an early return and a lint for
6767
unused results has been added. See #12039 for more information.
6868
* std: The `vec` module has been renamed to `slice`.
6969
* std: A new vector type, `Vec<T>`, has been added in preparation for DST.

branches/try/configure

Lines changed: 28 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,7 @@ opt ccache 0 "invoke gcc/clang via ccache to reuse object files between builds"
388388
opt local-rust 0 "use an installed rustc rather than downloading a snapshot"
389389
opt pax-flags 0 "apply PaX flags to rustc binaries (required for GRSecurity/PaX-patched kernels)"
390390
opt inject-std-version 1 "inject the current compiler version of libstd into programs"
391+
opt llvm-static-stdcpp 0 "statically link to libstdc++ for LLVM"
391392
opt rpath 1 "build rpaths into rustc itself"
392393
opt nightly 0 "build nightly packages"
393394
opt verify-install 1 "verify installed binaries work"
@@ -579,26 +580,32 @@ then
579580
CFG_ENABLE_CLANG=1
580581
putvar CFG_ENABLE_CLANG
581582
else
582-
# on OS X, with xcode 5 and newer, certain developers may have
583-
# cc, gcc and g++ point to a mixture of clang and gcc
584-
# if so, this will create very strange build errors
585-
# this last stanza is to detect some such problems and save the future rust
586-
# contributor some time solving that issue.
587-
# this detection could be generalized to other OSes aside from OS X
588-
# but the issue seems most likely to happen on OS X
589-
590-
chk_cc () {
591-
$1 --version 2> /dev/null | grep -q $2
592-
}
593-
# check that gcc, cc and g++ all point to the same compiler.
594-
# note that for xcode 5, g++ points to clang, not clang++
595-
if !((chk_cc gcc clang && chk_cc g++ clang) ||
596-
(chk_cc gcc gcc &&( chk_cc g++ g++ || chk g++ gcc))) then
597-
err "the gcc and g++ in your path point to different compilers.
598-
Check which versions are in your path with cc --version and g++ --version.
599-
To resolve this problem, either fix your PATH or run configure with --enable-clang"
600-
fi
583+
if [ $("$CFG_GCC" --version 2>&1 | grep -c ' 4\.[0-6]') -ne 0 ]; then
584+
step_msg "older GCC found, using clang instead"
585+
CFG_ENABLE_CLANG=1
586+
putvar CFG_ENABLE_CLANG
587+
else
588+
# on OS X, with xcode 5 and newer, certain developers may have
589+
# cc, gcc and g++ point to a mixture of clang and gcc
590+
# if so, this will create very strange build errors
591+
# this last stanza is to detect some such problems and save the future rust
592+
# contributor some time solving that issue.
593+
# this detection could be generalized to other OSes aside from OS X
594+
# but the issue seems most likely to happen on OS X
595+
596+
chk_cc () {
597+
$1 --version 2> /dev/null | grep -q $2
598+
}
599+
# check that gcc, cc and g++ all point to the same compiler.
600+
# note that for xcode 5, g++ points to clang, not clang++
601+
if !((chk_cc gcc clang && chk_cc g++ clang) ||
602+
(chk_cc gcc gcc &&( chk_cc g++ g++ || chk g++ gcc))) then
603+
err "the gcc and g++ in your path point to different compilers.
604+
Check which versions are in your path with cc --version and g++ --version.
605+
To resolve this problem, either fix your PATH or run configure with --enable-clang"
606+
fi
601607

608+
fi
602609
fi
603610
fi
604611

@@ -921,10 +928,6 @@ do
921928
LLVM_OPTS="$LLVM_OPTS --disable-terminfo"
922929
# Try to have LLVM pull in as few dependencies as possible (#9397)
923930
LLVM_OPTS="$LLVM_OPTS --disable-zlib --disable-libffi"
924-
# LLVM says it needs a "new" clang/gcc, but we seem to get by ok with
925-
# older versions on the bots. Get by for a little longer by asking it to
926-
# not do version detection
927-
LLVM_OPTS="$LLVM_OPTS --disable-compiler-version-checks"
928931

929932
# Use win32 native thread/lock apis instead of pthread wrapper.
930933
# (llvm's configure tries to find pthread first, so we have to disable it explicitly.)
@@ -942,13 +945,15 @@ do
942945

943946
LLVM_CXX_64="ccache clang++ -Qunused-arguments"
944947
LLVM_CC_64="ccache clang -Qunused-arguments"
948+
LLVM_OPTS="$LLVM_OPTS --enable-libcpp"
945949
;;
946950
("clang")
947951
LLVM_CXX_32="clang++ -m32 -Qunused-arguments"
948952
LLVM_CC_32="clang -m32 -Qunused-arguments"
949953

950954
LLVM_CXX_64="clang++ -Qunused-arguments"
951955
LLVM_CC_64="clang -Qunused-arguments"
956+
LLVM_OPTS="$LLVM_OPTS --enable-libcpp"
952957
;;
953958
("ccache gcc")
954959
LLVM_CXX_32="ccache g++ -m32"

branches/try/mk/crates.mk

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@
5151

5252
TARGET_CRATES := libc std green rustuv native flate arena glob term semver \
5353
uuid serialize sync getopts collections num test time rand \
54-
workcache url log
55-
HOST_CRATES := syntax rustc rustdoc fourcc hexfloat
54+
workcache url log regex
55+
HOST_CRATES := syntax rustc rustdoc fourcc hexfloat regex_macros
5656
CRATES := $(TARGET_CRATES) $(HOST_CRATES)
5757
TOOLS := compiletest rustdoc rustc
5858

@@ -84,6 +84,8 @@ DEPS_rand := std
8484
DEPS_url := std collections
8585
DEPS_workcache := std serialize collections log
8686
DEPS_log := std sync
87+
DEPS_regex := std collections
88+
DEPS_regex_macros = syntax std regex
8789

8890
TOOL_DEPS_compiletest := test green rustuv getopts
8991
TOOL_DEPS_rustdoc := rustdoc native

branches/try/mk/docs.mk

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,26 @@ doc/footer.inc: $(D)/footer.inc | doc/
141141
@$(call E, cp: $@)
142142
$(Q)cp -a $< $@ 2> /dev/null
143143

144+
doc/FiraSans-Regular.woff: $(D)/FiraSans-Regular.woff | doc/
145+
@$(call E, cp: $@)
146+
$(Q)cp -a $< $@ 2> /dev/null
147+
148+
doc/FiraSans-Medium.woff: $(D)/FiraSans-Medium.woff | doc/
149+
@$(call E, cp: $@)
150+
$(Q)cp -a $< $@ 2> /dev/null
151+
152+
doc/Heuristica-Regular.woff: $(D)/Heuristica-Regular.woff | doc/
153+
@$(call E, cp: $@)
154+
$(Q)cp -a $< $@ 2> /dev/null
155+
156+
doc/Heuristica-Italic.woff: $(D)/Heuristica-Italic.woff | doc/
157+
@$(call E, cp: $@)
158+
$(Q)cp -a $< $@ 2> /dev/null
159+
160+
doc/Heuristica-Bold.woff: $(D)/Heuristica-Bold.woff | doc/
161+
@$(call E, cp: $@)
162+
$(Q)cp -a $< $@ 2> /dev/null
163+
144164
# The (english) documentation for each doc item.
145165

146166
define DEF_SHOULD_BUILD_PDF_DOC

branches/try/mk/llvm.mk

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,16 +42,25 @@ $$(LLVM_STAMP_$(1)): $(S)src/rustllvm/llvm-auto-clean-trigger
4242
@$$(call E, make: done cleaning llvm)
4343
touch $$@
4444

45+
ifeq ($$(CFG_ENABLE_LLVM_STATIC_STDCPP),1)
46+
LLVM_STDCPP_LOCATION_$(1) = $$(shell $$(CC_$(1)) $$(CFG_GCCISH_CFLAGS_$(1)) \
47+
-print-file-name=libstdc++.a)
48+
else
49+
LLVM_STDCPP_LOCATION_$(1) =
50+
endif
51+
4552
endef
4653

4754
$(foreach host,$(CFG_HOST), \
48-
$(eval LLVM_CONFIGS := $(LLVM_CONFIGS) $(LLVM_CONFIG_$(host))))
55+
$(eval $(call DEF_LLVM_RULES,$(host))))
4956

5057
$(foreach host,$(CFG_HOST), \
51-
$(eval $(call DEF_LLVM_RULES,$(host))))
58+
$(eval LLVM_CONFIGS := $(LLVM_CONFIGS) $(LLVM_CONFIG_$(host))))
5259

5360
$(S)src/librustc/lib/llvmdeps.rs: \
5461
$(LLVM_CONFIGS) \
55-
$(S)src/etc/mklldeps.py
62+
$(S)src/etc/mklldeps.py \
63+
$(MKFILE_DEPS)
5664
$(Q)$(CFG_PYTHON) $(S)src/etc/mklldeps.py \
57-
"$@" "$(LLVM_COMPONENTS)" $(LLVM_CONFIGS)
65+
"$@" "$(LLVM_COMPONENTS)" "$(CFG_ENABLE_LLVM_STATIC_STDCPP)" \
66+
$(LLVM_CONFIGS)

branches/try/mk/main.mk

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -311,8 +311,6 @@ HSREQ$(1)_H_$(3) = $$(HBIN$(1)_H_$(3))/rustc$$(X_$(3))
311311
else
312312
HSREQ$(1)_H_$(3) = \
313313
$$(HBIN$(1)_H_$(3))/rustc$$(X_$(3)) \
314-
$$(HLIB$(1)_H_$(3))/stamp.rustc \
315-
$$(foreach dep,$$(RUST_DEPS_rustc),$$(HLIB$(1)_H_$(3))/stamp.$$(dep)) \
316314
$$(MKFILE_DEPS)
317315
endif
318316

@@ -334,8 +332,7 @@ SREQ$(1)_T_$(2)_H_$(3) = \
334332
CSREQ$(1)_T_$(2)_H_$(3) = \
335333
$$(TSREQ$(1)_T_$(2)_H_$(3)) \
336334
$$(HBIN$(1)_H_$(3))/rustdoc$$(X_$(3)) \
337-
$$(foreach dep,$$(CRATES),$$(TLIB$(1)_T_$(2)_H_$(3))/stamp.$$(dep)) \
338-
$$(foreach dep,$$(HOST_CRATES),$$(HLIB$(1)_H_$(3))/stamp.$$(dep))
335+
$$(foreach dep,$$(CRATES),$$(TLIB$(1)_T_$(2)_H_$(3))/stamp.$$(dep))
339336

340337
ifeq ($(1),0)
341338
# Don't run the stage0 compiler under valgrind - that ship has sailed

branches/try/mk/platform.mk

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -542,14 +542,17 @@ ifdef CFG_CCACHE_BASEDIR
542542
export CCACHE_BASEDIR
543543
endif
544544

545+
FIND_COMPILER = $(word 1,$(1:ccache=))
546+
545547
define CFG_MAKE_TOOLCHAIN
546548
# Prepend the tools with their prefix if cross compiling
547549
ifneq ($(CFG_BUILD),$(1))
548550
CC_$(1)=$(CROSS_PREFIX_$(1))$(CC_$(1))
549551
CXX_$(1)=$(CROSS_PREFIX_$(1))$(CXX_$(1))
550552
CPP_$(1)=$(CROSS_PREFIX_$(1))$(CPP_$(1))
551553
AR_$(1)=$(CROSS_PREFIX_$(1))$(AR_$(1))
552-
RUSTC_CROSS_FLAGS_$(1)=-C linker=$$(CXX_$(1)) -C ar=$$(AR_$(1)) $(RUSTC_CROSS_FLAGS_$(1))
554+
RUSTC_CROSS_FLAGS_$(1)=-C linker=$$(call FIND_COMPILER,$$(CXX_$(1))) \
555+
-C ar=$$(call FIND_COMPILER,$$(AR_$(1))) $(RUSTC_CROSS_FLAGS_$(1))
553556

554557
RUSTC_FLAGS_$(1)=$$(RUSTC_CROSS_FLAGS_$(1)) $(RUSTC_FLAGS_$(1))
555558
endif

branches/try/mk/rt.mk

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -247,8 +247,8 @@ $$(COMPRT_LIB_$(1)): $$(COMPRT_DEPS) $$(MKFILE_DEPS)
247247
RANLIB="$$(AR_$(1)) s" \
248248
CFLAGS="$$(CFG_GCCISH_CFLAGS_$(1))" \
249249
TargetTriple=$(1) \
250-
triple-runtime
251-
$$(Q)cp $$(COMPRT_BUILD_DIR_$(1))/triple/runtime/libcompiler_rt.a $$(COMPRT_LIB_$(1))
250+
triple-builtins
251+
$$(Q)cp $$(COMPRT_BUILD_DIR_$(1))/triple/builtins/libcompiler_rt.a $$(COMPRT_LIB_$(1))
252252

253253
################################################################################
254254
# libbacktrace

branches/try/mk/target.mk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ $$(TLIB$(1)_T_$(2)_H_$(3))/stamp.$(4): \
8383
$$(WFLAGS_ST$(1)) \
8484
-L "$$(RT_OUTPUT_DIR_$(2))" \
8585
-L "$$(LLVM_LIBDIR_$(2))" \
86+
-L "$$(dir $$(LLVM_STDCPP_LOCATION_$(2)))" \
8687
--out-dir $$(@D) $$<
8788
@touch $$@
8889
$$(call LIST_ALL_OLD_GLOB_MATCHES,\

branches/try/mk/tests.mk

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -349,6 +349,16 @@ TESTDEP_$(1)_$(2)_$(3)_$(4) = $$(SREQ$(1)_T_$(2)_H_$(3)) \
349349
$$(foreach crate,$$(TARGET_CRATES),\
350350
$$(TLIB$(1)_T_$(2)_H_$(3))/stamp.$$(crate)) \
351351
$$(CRATE_FULLDEPS_$(1)_T_$(2)_H_$(3)_$(4))
352+
353+
# The regex crate depends on the regex_macros crate during testing, but it
354+
# notably depend on the *host* regex_macros crate, not the target version.
355+
# Additionally, this is not a dependency in stage1, only in stage2.
356+
ifeq ($(4),regex)
357+
ifneq ($(1),1)
358+
TESTDEP_$(1)_$(2)_$(3)_$(4) += $$(TLIB$(1)_T_$(3)_H_$(3))/stamp.regex_macros
359+
endif
360+
endif
361+
352362
else
353363
TESTDEP_$(1)_$(2)_$(3)_$(4) = $$(RSINPUTS_$(4))
354364
endif
@@ -526,8 +536,6 @@ endif
526536
# triples). The associated message will be printed as a warning
527537
# during attempts to run those tests.
528538

529-
CTEST_DISABLE_NONSELFHOST_rpass-full = "run-pass-full suite is unavailable when cross-compiling."
530-
531539
define DEF_CTEST_VARS
532540

533541
# All the per-stage build rules you might want to call from the
@@ -573,7 +581,7 @@ CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3) := \
573581
$$(CTEST_TESTARGS)
574582

575583
CTEST_DEPS_rpass_$(1)-T-$(2)-H-$(3) = $$(RPASS_TESTS)
576-
CTEST_DEPS_rpass-full_$(1)-T-$(2)-H-$(3) = $$(RPASS_FULL_TESTS) $$(CSREQ$(1)_T_$(2)_H_$(3))
584+
CTEST_DEPS_rpass-full_$(1)-T-$(2)-H-$(3) = $$(RPASS_FULL_TESTS) $$(CSREQ$(1)_T_$(3)_H_$(3)) $$(SREQ$(1)_T_$(2)_H_$(3))
577585
CTEST_DEPS_rfail_$(1)-T-$(2)-H-$(3) = $$(RFAIL_TESTS)
578586
CTEST_DEPS_cfail_$(1)-T-$(2)-H-$(3) = $$(CFAIL_TESTS)
579587
CTEST_DEPS_bench_$(1)-T-$(2)-H-$(3) = $$(BENCH_TESTS)

branches/try/src/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ Source layout:
1919
| `libfourcc/` | Data format identifier library |
2020
| `libgetopts/` | Get command-line-options library |
2121
| `libglob/` | Unix glob patterns library |
22+
| `libregex/` | Regular expressions |
2223
| `libsemver/` | Rust's semantic versioning library |
2324
| `libserialize/` | Encode-Decode types library |
2425
| `libsync/` | Concurrency mechanisms and primitives |

branches/try/src/compiler-rt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Subproject commit f4b221571ce6f05714c1f1c6fa48f1393499989c
1+
Subproject commit ed112ca1e4275e1c5707a898f2bf6164707ba378

branches/try/src/compiletest/compiletest.rs

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ pub fn parse_config(args: Vec<~str> ) -> config {
9393
assert!(!args.is_empty());
9494
let argv0 = (*args.get(0)).clone();
9595
let args_ = args.tail();
96-
if *args.get(1) == ~"-h" || *args.get(1) == ~"--help" {
96+
if *args.get(1) == "-h".to_owned() || *args.get(1) == "--help".to_owned() {
9797
let message = format!("Usage: {} [OPTIONS] [TESTNAME...]", argv0);
9898
println!("{}", getopts::usage(message, groups.as_slice()));
9999
println!("");
@@ -181,7 +181,7 @@ pub fn log_config(config: &config) {
181181
logv(c, format!("adb_test_dir: {}", config.adb_test_dir));
182182
logv(c, format!("adb_device_status: {}", config.adb_device_status));
183183
match config.test_shard {
184-
None => logv(c, ~"test_shard: (all)"),
184+
None => logv(c, "test_shard: (all)".to_owned()),
185185
Some((a,b)) => logv(c, format!("test_shard: {}.{}", a, b))
186186
}
187187
logv(c, format!("verbose: {}", config.verbose));
@@ -199,7 +199,7 @@ pub fn opt_str<'a>(maybestr: &'a Option<~str>) -> &'a str {
199199
}
200200

201201
pub fn opt_str2(maybestr: Option<~str>) -> ~str {
202-
match maybestr { None => ~"(none)", Some(s) => { s } }
202+
match maybestr { None => "(none)".to_owned(), Some(s) => { s } }
203203
}
204204

205205
pub fn str_mode(s: ~str) -> mode {
@@ -216,17 +216,17 @@ pub fn str_mode(s: ~str) -> mode {
216216

217217
pub fn mode_str(mode: mode) -> ~str {
218218
match mode {
219-
mode_compile_fail => ~"compile-fail",
220-
mode_run_fail => ~"run-fail",
221-
mode_run_pass => ~"run-pass",
222-
mode_pretty => ~"pretty",
223-
mode_debug_info => ~"debug-info",
224-
mode_codegen => ~"codegen",
219+
mode_compile_fail => "compile-fail".to_owned(),
220+
mode_run_fail => "run-fail".to_owned(),
221+
mode_run_pass => "run-pass".to_owned(),
222+
mode_pretty => "pretty".to_owned(),
223+
mode_debug_info => "debug-info".to_owned(),
224+
mode_codegen => "codegen".to_owned(),
225225
}
226226
}
227227

228228
pub fn run_tests(config: &config) {
229-
if config.target == ~"arm-linux-androideabi" {
229+
if config.target == "arm-linux-androideabi".to_owned() {
230230
match config.mode{
231231
mode_debug_info => {
232232
println!("arm-linux-androideabi debug-info \
@@ -267,7 +267,8 @@ pub fn test_opts(config: &config) -> test::TestOpts {
267267
ratchet_metrics: config.ratchet_metrics.clone(),
268268
ratchet_noise_percent: config.ratchet_noise_percent.clone(),
269269
save_metrics: config.save_metrics.clone(),
270-
test_shard: config.test_shard.clone()
270+
test_shard: config.test_shard.clone(),
271+
nocapture: false,
271272
}
272273
}
273274

@@ -296,10 +297,10 @@ pub fn is_test(config: &config, testfile: &Path) -> bool {
296297
// Pretty-printer does not work with .rc files yet
297298
let valid_extensions =
298299
match config.mode {
299-
mode_pretty => vec!(~".rs"),
300-
_ => vec!(~".rc", ~".rs")
300+
mode_pretty => vec!(".rs".to_owned()),
301+
_ => vec!(".rc".to_owned(), ".rs".to_owned())
301302
};
302-
let invalid_prefixes = vec!(~".", ~"#", ~"~");
303+
let invalid_prefixes = vec!(".".to_owned(), "#".to_owned(), "~".to_owned());
303304
let name = testfile.filename_str().unwrap();
304305

305306
let mut valid = false;

branches/try/src/compiletest/errors.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ pub fn load_errors(testfile: &Path) -> Vec<ExpectedError> {
3131

3232
fn parse_expected(line_num: uint, line: ~str) -> Vec<ExpectedError> {
3333
let line = line.trim();
34-
let error_tag = ~"//~";
34+
let error_tag = "//~".to_owned();
3535
let mut idx;
3636
match line.find_str(error_tag) {
3737
None => return Vec::new(),

0 commit comments

Comments
 (0)