Skip to content

Commit c047dac

Browse files
committed
---
yaml --- r: 157502 b: refs/heads/snap-stage3 c: 6f65ad1 h: refs/heads/master v: v3
1 parent 386a744 commit c047dac

File tree

141 files changed

+3211
-2164
lines changed

Some content is hidden

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

141 files changed

+3211
-2164
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: 065caf34f5ff29e04605f95d9c5d511af219439a
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
4-
refs/heads/snap-stage3: 0c3ad8be5bae6d3df6044a07171a9938cb700009
4+
refs/heads/snap-stage3: 6f65ad1a44a022097a55014becba53c86d64cfb8
55
refs/heads/try: 0ee4d8b0b112c608646fa75463ab4dc59132efd9
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b

branches/snap-stage3/configure

Lines changed: 92 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -151,11 +151,22 @@ validate_opt () {
151151
done
152152
}
153153

154-
valopt() {
155-
VAL_OPTIONS="$VAL_OPTIONS $1"
154+
# `valopt OPTION_NAME DEFAULT DOC` extracts a string-valued option
155+
# from command line, using provided default value for the option if
156+
# not present, and saves it to the generated config.mk.
157+
#
158+
# `valopt_nosave` is much the same, except that it does not save the
159+
# result to config.mk (instead the script should use `putvar` itself
160+
# later on to save it). `valopt_core` is the core upon which the
161+
# other two are built.
156162

157-
local OP=$1
158-
local DEFAULT=$2
163+
valopt_core() {
164+
VAL_OPTIONS="$VAL_OPTIONS $2"
165+
166+
local SAVE=$1
167+
local OP=$2
168+
local DEFAULT=$3
169+
shift
159170
shift
160171
shift
161172
local DOC="$*"
@@ -172,7 +183,10 @@ valopt() {
172183
eval $V=$val
173184
fi
174185
done
175-
putvar $V
186+
if [ "$SAVE" = "save" ]
187+
then
188+
putvar $V
189+
fi
176190
else
177191
if [ -z "$DEFAULT" ]
178192
then
@@ -183,11 +197,30 @@ valopt() {
183197
fi
184198
}
185199

186-
opt() {
187-
BOOL_OPTIONS="$BOOL_OPTIONS $1"
200+
valopt_nosave() {
201+
valopt_core nosave "$@"
202+
}
203+
204+
valopt() {
205+
valopt_core save "$@"
206+
}
188207

189-
local OP=$1
190-
local DEFAULT=$2
208+
# `opt OPTION_NAME DEFAULT DOC` extracts a boolean-valued option from
209+
# command line, using the provided default value (0/1) for the option
210+
# if not present, and saves it to the generated config.mk.
211+
#
212+
# `opt_nosave` is much the same, except that it does not save the
213+
# result to config.mk (instead the script should use `putvar` itself
214+
# later on to save it). `opt_core` is the core upon which the other
215+
# two are built.
216+
217+
opt_core() {
218+
BOOL_OPTIONS="$BOOL_OPTIONS $2"
219+
220+
local SAVE=$1
221+
local OP=$2
222+
local DEFAULT=$3
223+
shift
191224
shift
192225
shift
193226
local DOC="$*"
@@ -211,7 +244,10 @@ opt() {
211244
FLAG=$(echo $FLAG | tr 'a-z' 'A-Z')
212245
local V="CFG_${FLAG}_${OP}"
213246
eval $V=1
214-
putvar $V
247+
if [ "$SAVE" = "save" ]
248+
then
249+
putvar $V
250+
fi
215251
fi
216252
done
217253
else
@@ -223,6 +259,14 @@ opt() {
223259
fi
224260
}
225261

262+
opt_nosave() {
263+
opt_core nosave "$@"
264+
}
265+
266+
opt() {
267+
opt_core save "$@"
268+
}
269+
226270
envopt() {
227271
local NAME=$1
228272
local V="CFG_${NAME}"
@@ -422,38 +466,40 @@ opt llvm-assertions 1 "build LLVM with assertions"
422466
opt debug 1 "build with extra debug fun"
423467
opt ratchet-bench 0 "ratchet benchmarks"
424468
opt fast-make 0 "use .gitmodules as timestamp for submodule deps"
425-
opt manage-submodules 1 "let the build manage the git submodules"
426469
opt mingw-cross 0 "cross-compile for win32 using mingw"
427-
opt clang 0 "prefer clang to gcc for building the runtime"
428470
opt ccache 0 "invoke gcc/clang via ccache to reuse object files between builds"
429471
opt local-rust 0 "use an installed rustc rather than downloading a snapshot"
430-
opt inject-std-version 1 "inject the current compiler version of libstd into programs"
431472
opt llvm-static-stdcpp 0 "statically link to libstdc++ for LLVM"
432473
opt rpath 0 "build rpaths into rustc itself"
433474
opt nightly 0 "build nightly packages"
434475
opt verify-install 1 "verify installed binaries work"
435-
opt jemalloc 1 "build liballoc with jemalloc"
436476
# This is used by the automation to produce single-target nightlies
437477
opt dist-host-only 0 "only install bins for the host architecture"
438-
valopt prefix "/usr/local" "set installation prefix"
439-
valopt local-rust-root "/usr/local" "set prefix for local rust binary"
440-
valopt llvm-root "" "set LLVM root"
441-
valopt jemalloc-root "" "set directory where libjemalloc_pic.a is located"
442-
valopt android-cross-path "/opt/ndk_standalone" "Android NDK standalone path"
443-
valopt mingw32-cross-path "" "MinGW32 cross compiler path"
444-
445-
valopt build "${DEFAULT_BUILD}" "GNUs ./configure syntax LLVM build triple"
446-
valopt host "${CFG_BUILD}" "GNUs ./configure syntax LLVM host triples"
447-
valopt target "${CFG_HOST}" "GNUs ./configure syntax LLVM target triples"
478+
opt inject-std-version 1 "inject the current compiler version of libstd into programs"
479+
opt jemalloc 1 "build liballoc with jemalloc"
448480

449481
valopt localstatedir "/var/lib" "local state directory"
450482
valopt sysconfdir "/etc" "install system configuration files"
451483

452484
valopt datadir "${CFG_PREFIX}/share" "install data"
453485
valopt infodir "${CFG_PREFIX}/share/info" "install additional info"
454-
valopt mandir "${CFG_PREFIX}/share/man" "install man pages in PATH"
486+
valopt llvm-root "" "set LLVM root"
487+
valopt jemalloc-root "" "set directory where libjemalloc_pic.a is located"
488+
valopt build "${DEFAULT_BUILD}" "GNUs ./configure syntax LLVM build triple"
489+
valopt android-cross-path "/opt/ndk_standalone" "Android NDK standalone path"
490+
valopt mingw32-cross-path "" "MinGW32 cross compiler path"
491+
492+
# Many of these are saved below during the "writing configuration" step
493+
# (others are conditionally saved).
494+
opt_nosave manage-submodules 1 "let the build manage the git submodules"
495+
opt_nosave clang 0 "prefer clang to gcc for building the runtime"
455496

456-
valopt release-channel "dev" "the name of the release channel to build"
497+
valopt_nosave prefix "/usr/local" "set installation prefix"
498+
valopt_nosave local-rust-root "/usr/local" "set prefix for local rust binary"
499+
valopt_nosave host "${CFG_BUILD}" "GNUs ./configure syntax LLVM host triples"
500+
valopt_nosave target "${CFG_HOST}" "GNUs ./configure syntax LLVM target triples"
501+
valopt_nosave mandir "${CFG_PREFIX}/share/man" "install man pages in PATH"
502+
valopt_nosave release-channel "dev" "the name of the release channel to build"
457503

458504
# On windows we just store the libraries in the bin directory because
459505
# there's no rpath. This is where the build system itself puts libraries;
@@ -491,8 +537,8 @@ esac
491537
if [ ! -z "$CFG_ENABLE_NIGHTLY" ]
492538
then
493539
CFG_RELEASE_CHANNEL=nightly
494-
putvar CFG_RELEASE_CHANNEL
495540
fi
541+
putvar CFG_RELEASE_CHANNEL
496542

497543
step_msg "looking for build programs"
498544

@@ -605,17 +651,27 @@ then
605651
err "no local rust to use"
606652
fi
607653

608-
LRV=`${CFG_LOCAL_RUST_ROOT}/bin/rustc${BIN_SUF} --version`
654+
CMD="${CFG_LOCAL_RUST_ROOT}/bin/rustc${BIN_SUF}"
655+
LRV=`$CMD --version`
656+
if [ $? -ne 0 ]
657+
then
658+
step_msg "failure while running $CMD --version"
659+
exit 1
660+
fi
609661
step_msg "using rustc at: ${CFG_LOCAL_RUST_ROOT} with version: $LRV"
610662
putvar CFG_LOCAL_RUST_ROOT
663+
else
664+
if [ ! -z "$CFG_LOCAL_RUST_ROOT" ]
665+
then
666+
warn "Use of --local-rust-root without --enable-local-rust"
667+
fi
611668
fi
612669

613670
# Force freebsd to build with clang; gcc doesn't like us there
614671
if [ $CFG_OSTYPE = unknown-freebsd ]
615672
then
616673
step_msg "on FreeBSD, forcing use of clang"
617674
CFG_ENABLE_CLANG=1
618-
putvar CFG_ENABLE_CLANG
619675
fi
620676

621677
if [ -z "$CFG_ENABLE_CLANG" -a -z "$CFG_GCC" ]
@@ -632,12 +688,10 @@ then
632688
then
633689
step_msg "on OS X 10.9, forcing use of clang"
634690
CFG_ENABLE_CLANG=1
635-
putvar CFG_ENABLE_CLANG
636691
else
637692
if [ $("$CFG_GCC" --version 2>&1 | grep -c ' 4\.[0-6]') -ne 0 ]; then
638693
step_msg "older GCC found, using clang instead"
639694
CFG_ENABLE_CLANG=1
640-
putvar CFG_ENABLE_CLANG
641695
else
642696
# on OS X, with xcode 5 and newer, certain developers may have
643697
# cc, gcc and g++ point to a mixture of clang and gcc
@@ -663,6 +717,13 @@ then
663717
fi
664718
fi
665719

720+
# Okay, at this point, we have made up our minds about whether we are
721+
# going to force CFG_ENABLE_CLANG or not; save the setting if so.
722+
if [ ! -z "$CFG_ENABLE_CLANG" ]
723+
then
724+
putvar CFG_ENABLE_CLANG
725+
fi
726+
666727
if [ ! -z "$CFG_LLVM_ROOT" -a -e "$CFG_LLVM_ROOT/bin/llvm-config" ]
667728
then
668729
step_msg "using custom LLVM at $CFG_LLVM_ROOT"
@@ -1204,18 +1265,11 @@ putvar CFG_OSTYPE
12041265
putvar CFG_CPUTYPE
12051266
putvar CFG_CONFIGURE_ARGS
12061267
putvar CFG_PREFIX
1207-
putvar CFG_BUILD
12081268
putvar CFG_HOST
12091269
putvar CFG_TARGET
1210-
putvar CFG_LIBDIR
12111270
putvar CFG_LIBDIR_RELATIVE
12121271
putvar CFG_DISABLE_MANAGE_SUBMODULES
1213-
putvar CFG_ANDROID_CROSS_PATH
1214-
putvar CFG_MINGW32_CROSS_PATH
12151272
putvar CFG_MANDIR
1216-
putvar CFG_DISABLE_INJECT_STD_VERSION
1217-
putvar CFG_JEMALLOC_ROOT
1218-
putvar CFG_DISABLE_JEMALLOC
12191273

12201274
# Avoid spurious warnings from clang by feeding it original source on
12211275
# ccache-miss rather than preprocessed input.
@@ -1238,7 +1292,6 @@ then
12381292
putvar CFG_PANDOC
12391293
fi
12401294

1241-
putvar CFG_LLVM_ROOT
12421295
putvar CFG_LLVM_SRC_DIR
12431296

12441297
for t in $CFG_HOST

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

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ use std::io::fs;
2525
use std::from_str::FromStr;
2626
use getopts::{optopt, optflag, reqopt};
2727
use common::Config;
28-
use common::{Pretty, DebugInfoGdb, Codegen};
28+
use common::{Pretty, DebugInfoGdb, DebugInfoLldb, Codegen};
2929
use util::logv;
3030
use regex::Regex;
3131

@@ -244,6 +244,16 @@ pub fn run_tests(config: &Config) {
244244
os::setenv("RUST_TEST_TASKS","1");
245245
}
246246

247+
match config.mode {
248+
DebugInfoLldb => {
249+
// Some older versions of LLDB seem to have problems with multiple
250+
// instances running in parallel, so only run one test task at a
251+
// time.
252+
os::setenv("RUST_TEST_TASKS", "1");
253+
}
254+
_ => { /* proceed */ }
255+
}
256+
247257
let opts = test_opts(config);
248258
let tests = make_tests(config);
249259
// sadly osx needs some file descriptor limits raised for running tests in

branches/snap-stage3/src/doc/complement-bugreport.md

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,21 @@ miss out on valid bug reports.
3333

3434
It generally helps our diagnosis to include your specific OS (for example: Mac OS X 10.8.3,
3535
Windows 7, Ubuntu 12.04) and your hardware architecture (for example: i686, x86_64).
36-
It's also helpful to copy/paste the output of re-running the erroneous rustc
37-
command with the `-v` flag. Finally, if you can run the offending command under gdb,
38-
pasting a stack trace can be useful; to do so, you will need to set a breakpoint on `rust_fail`.
36+
It's also helpful to provide the exact version and host by copying the output of
37+
re-running the erroneous rustc command with the `--version=verbose` flag, which will
38+
produce something like this:
39+
40+
```{ignore}
41+
rustc 0.12.0 (ba4081a5a 2014-10-07 13:44:41 -0700)
42+
binary: rustc
43+
commit-hash: ba4081a5a8573875fed17545846f6f6902c8ba8d
44+
commit-date: 2014-10-07 13:44:41 -0700
45+
host: i686-apple-darwin
46+
release: 0.12.0
47+
```
48+
49+
Finally, if you can run the offending command under gdb, pasting a stack trace can be
50+
useful; to do so, you will need to set a breakpoint on `rust_fail`.
3951

4052
# I submitted a bug, but nobody has commented on it!
4153

branches/snap-stage3/src/doc/guide-plugin.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ extern crate rustc;
5656
5757
use syntax::codemap::Span;
5858
use syntax::parse::token::{IDENT, get_ident};
59-
use syntax::ast::{TokenTree, TTTok};
59+
use syntax::ast::{TokenTree, TtToken};
6060
use syntax::ext::base::{ExtCtxt, MacResult, DummyResult, MacExpr};
6161
use syntax::ext::build::AstBuilder; // trait for expr_uint
6262
use rustc::plugin::Registry;
@@ -71,7 +71,7 @@ fn expand_rn(cx: &mut ExtCtxt, sp: Span, args: &[TokenTree])
7171
("I", 1)];
7272
7373
let text = match args {
74-
[TTTok(_, IDENT(s, _))] => get_ident(s).to_string(),
74+
[TtToken(_, IDENT(s, _))] => get_ident(s).to_string(),
7575
_ => {
7676
cx.span_err(sp, "argument should be a single identifier");
7777
return DummyResult::any(sp);

branches/snap-stage3/src/doc/guide-strings.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ Rust has two main types of strings: `&str` and `String`.
1414

1515
# &str
1616

17-
The first kind is a `&str`. This is pronounced a 'string slice.' String literals
18-
are of the type `&str`:
17+
The first kind is a `&str`. This is pronounced a 'string slice'.
18+
String literals are of the type `&str`:
1919

2020
```{rust}
2121
let string = "Hello there.";
@@ -121,8 +121,8 @@ Both of these lines will print `12`.
121121
To compare a String to a constant string, prefer `as_slice()`...
122122

123123
```{rust}
124-
fn compare(string: String) {
125-
if string.as_slice() == "Hello" {
124+
fn compare(x: String) {
125+
if x.as_slice() == "Hello" {
126126
println!("yes");
127127
}
128128
}
@@ -131,8 +131,8 @@ fn compare(string: String) {
131131
... over `to_string()`:
132132

133133
```{rust}
134-
fn compare(string: String) {
135-
if string == "Hello".to_string() {
134+
fn compare(x: String) {
135+
if x == "Hello".to_string() {
136136
println!("yes");
137137
}
138138
}

0 commit comments

Comments
 (0)