Skip to content

Commit 6c53796

Browse files
committed
---
yaml --- r: 273854 b: refs/heads/beta c: 1af79cf h: refs/heads/master
1 parent 8e068c7 commit 6c53796

File tree

50 files changed

+493
-181
lines changed

Some content is hidden

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

50 files changed

+493
-181
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ refs/tags/0.9: 36870b185fc5f5486636d4515f0e22677493f225
2323
refs/tags/0.10: ac33f2b15782272ae348dbd7b14b8257b2148b5a
2424
refs/tags/0.11.0: e1247cb1d0d681be034adb4b558b5a0c0d5720f9
2525
refs/tags/0.12.0: f0c419429ef30723ceaf6b42f9b5a2aeb5d2e2d1
26-
refs/heads/beta: 33cc0ed1f0c7aab766f2572481cea5a0401b8b8e
26+
refs/heads/beta: 1af79cf34e1fd6f38ba256631e2997ca650e490b
2727
refs/tags/1.0.0-alpha: e42bd6d93a1d3433c486200587f8f9e12590a4d7
2828
refs/heads/tmp: e06d2ad9fcd5027bcaac5b08fc9aa39a49d0ecd3
2929
refs/tags/1.0.0-alpha.2: 4c705f6bc559886632d3871b04f58aab093bfa2f

branches/beta/CONTRIBUTING.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,8 @@ which includes important information about what platform you're on, what
7171
version of Rust you're using, etc.
7272

7373
Sometimes, a backtrace is helpful, and so including that is nice. To get
74-
a backtrace, set the `RUST_BACKTRACE` environment variable. The easiest way
74+
a backtrace, set the `RUST_BACKTRACE` environment variable to a value
75+
other than `0`. The easiest way
7576
to do this is to invoke `rustc` like this:
7677

7778
```bash

branches/beta/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,10 +177,11 @@ To contribute to Rust, please see [CONTRIBUTING](CONTRIBUTING.md).
177177
Rust has an [IRC] culture and most real-time collaboration happens in a
178178
variety of channels on Mozilla's IRC network, irc.mozilla.org. The
179179
most popular channel is [#rust], a venue for general discussion about
180-
Rust, and a good place to ask for help.
180+
Rust. And a good place to ask for help would be [#rust-beginners].
181181
182182
[IRC]: https://en.wikipedia.org/wiki/Internet_Relay_Chat
183183
[#rust]: irc://irc.mozilla.org/rust
184+
[#rust-beginners]: irc://irc.mozilla.org/rust-beginners
184185
185186
## License
186187

branches/beta/man/rustc.1

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -268,15 +268,15 @@ the maximum number of threads used for this purpose.
268268

269269
.TP
270270
\fBRUST_TEST_NOCAPTURE\fR
271-
A synonym for the --nocapture flag.
271+
If set to a value other than "0", a synonym for the --nocapture flag.
272272

273273
.TP
274274
\fBRUST_MIN_STACK\fR
275275
Sets the minimum stack size for new threads.
276276

277277
.TP
278278
\fBRUST_BACKTRACE\fR
279-
If set, produces a backtrace in the output of a program which panics.
279+
If set to a value different than "0", produces a backtrace in the output of a program which panics.
280280

281281
.SH "EXAMPLES"
282282
To build an executable from a source file with a main function:

branches/beta/src/bootstrap/build/compile.rs

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,38 @@ fn build_startup_objects(build: &Build, target: &str, into: &Path) {
123123
}
124124
}
125125

126+
/// Build libtest.
127+
///
128+
/// This will build libtest and supporting libraries for a particular stage of
129+
/// the build using the `compiler` targeting the `target` architecture. The
130+
/// artifacts created will also be linked into the sysroot directory.
131+
pub fn test<'a>(build: &'a Build, target: &str, compiler: &Compiler<'a>) {
132+
println!("Building stage{} test artifacts ({} -> {})", compiler.stage,
133+
compiler.host, target);
134+
let out_dir = build.cargo_out(compiler, Mode::Libtest, target);
135+
build.clear_if_dirty(&out_dir, &libstd_shim(build, compiler, target));
136+
let mut cargo = build.cargo(compiler, Mode::Libtest, target, "build");
137+
cargo.arg("--manifest-path")
138+
.arg(build.src.join("src/rustc/test_shim/Cargo.toml"));
139+
build.run(&mut cargo);
140+
test_link(build, target, compiler, compiler.host);
141+
}
142+
143+
/// Link all libtest rlibs/dylibs into the sysroot location.
144+
///
145+
/// Links those artifacts generated in the given `stage` for `target` produced
146+
/// by `compiler` into `host`'s sysroot.
147+
pub fn test_link(build: &Build,
148+
target: &str,
149+
compiler: &Compiler,
150+
host: &str) {
151+
let target_compiler = Compiler::new(compiler.stage, host);
152+
let libdir = build.sysroot_libdir(&target_compiler, target);
153+
let out_dir = build.cargo_out(compiler, Mode::Libtest, target);
154+
add_to_sysroot(&out_dir, &libdir);
155+
}
156+
157+
126158
/// Build the compiler.
127159
///
128160
/// This will build the compiler for a particular stage of the build using
@@ -133,7 +165,7 @@ pub fn rustc<'a>(build: &'a Build, target: &str, compiler: &Compiler<'a>) {
133165
compiler.stage, compiler.host, target);
134166

135167
let out_dir = build.cargo_out(compiler, Mode::Librustc, target);
136-
build.clear_if_dirty(&out_dir, &libstd_shim(build, compiler, target));
168+
build.clear_if_dirty(&out_dir, &libtest_shim(build, compiler, target));
137169

138170
let mut cargo = build.cargo(compiler, Mode::Librustc, target, "build");
139171
cargo.arg("--features").arg(build.rustc_features())
@@ -202,6 +234,12 @@ fn libstd_shim(build: &Build, compiler: &Compiler, target: &str) -> PathBuf {
202234
build.cargo_out(compiler, Mode::Libstd, target).join("libstd_shim.rlib")
203235
}
204236

237+
/// Cargo's output path for libtest in a given stage, compiled by a particular
238+
/// compiler for the specified target.
239+
fn libtest_shim(build: &Build, compiler: &Compiler, target: &str) -> PathBuf {
240+
build.cargo_out(compiler, Mode::Libtest, target).join("libtest_shim.rlib")
241+
}
242+
205243
fn compiler_file(compiler: &Path, file: &str) -> String {
206244
output(Command::new(compiler)
207245
.arg(format!("-print-file-name={}", file))).trim().to_string()

branches/beta/src/bootstrap/build/doc.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,22 @@ pub fn std(build: &Build, stage: u32, host: &str, out: &Path) {
122122
cp_r(&out_dir, out)
123123
}
124124

125+
pub fn test(build: &Build, stage: u32, host: &str, out: &Path) {
126+
println!("Documenting stage{} test ({})", stage, host);
127+
let compiler = Compiler::new(stage, host);
128+
let out_dir = build.stage_out(&compiler, Mode::Libtest)
129+
.join(host).join("doc");
130+
let rustdoc = build.rustdoc(&compiler);
131+
132+
build.clear_if_dirty(&out_dir, &rustdoc);
133+
134+
let mut cargo = build.cargo(&compiler, Mode::Libtest, host, "doc");
135+
cargo.arg("--manifest-path")
136+
.arg(build.src.join("src/rustc/test_shim/Cargo.toml"));
137+
build.run(&mut cargo);
138+
cp_r(&out_dir, out)
139+
}
140+
125141
pub fn rustc(build: &Build, stage: u32, host: &str, out: &Path) {
126142
println!("Documenting stage{} compiler ({})", stage, host);
127143
let compiler = Compiler::new(stage, host);

branches/beta/src/bootstrap/build/mod.rs

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ pub struct Build {
8888

8989
pub enum Mode {
9090
Libstd,
91+
Libtest,
9192
Librustc,
9293
Tool,
9394
}
@@ -141,9 +142,13 @@ impl Build {
141142
return clean::clean(self);
142143
}
143144

145+
self.verbose("finding compilers");
144146
cc::find(self);
147+
self.verbose("running sanity check");
145148
sanity::check(self);
149+
self.verbose("collecting channel variables");
146150
channel::collect(self);
151+
self.verbose("updating submodules");
147152
self.update_submodules();
148153

149154
for target in step::all(self) {
@@ -158,12 +163,18 @@ impl Build {
158163
Libstd { compiler } => {
159164
compile::std(self, target.target, &compiler);
160165
}
166+
Libtest { compiler } => {
167+
compile::test(self, target.target, &compiler);
168+
}
161169
Librustc { compiler } => {
162170
compile::rustc(self, target.target, &compiler);
163171
}
164172
LibstdLink { compiler, host } => {
165173
compile::std_link(self, target.target, &compiler, host);
166174
}
175+
LibtestLink { compiler, host } => {
176+
compile::test_link(self, target.target, &compiler, host);
177+
}
167178
LibrustcLink { compiler, host } => {
168179
compile::rustc_link(self, target.target, &compiler, host);
169180
}
@@ -203,6 +214,9 @@ impl Build {
203214
DocStd { stage } => {
204215
doc::std(self, stage, target.target, &doc_out);
205216
}
217+
DocTest { stage } => {
218+
doc::test(self, stage, target.target, &doc_out);
219+
}
206220
DocRustc { stage } => {
207221
doc::rustc(self, stage, target.target, &doc_out);
208222
}
@@ -360,6 +374,7 @@ impl Build {
360374
let host = compiler.host;
361375
let paths = vec![
362376
self.cargo_out(compiler, Mode::Libstd, host).join("deps"),
377+
self.cargo_out(compiler, Mode::Libtest, host).join("deps"),
363378
self.cargo_out(compiler, Mode::Librustc, host).join("deps"),
364379
];
365380
add_lib_path(paths, &mut cmd);
@@ -414,7 +429,8 @@ impl Build {
414429
fn stage_out(&self, compiler: &Compiler, mode: Mode) -> PathBuf {
415430
let suffix = match mode {
416431
Mode::Libstd => "-std",
417-
_ => "-rustc",
432+
Mode::Libtest => "-test",
433+
Mode::Tool | Mode::Librustc => "-rustc",
418434
};
419435
self.out.join(compiler.host)
420436
.join(format!("stage{}{}", compiler.stage, suffix))

branches/beta/src/bootstrap/build/step.rs

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,19 +25,22 @@ macro_rules! targets {
2525
// compiler executable itself, not any of the support libraries
2626
(rustc, Rustc { stage: u32 }),
2727

28-
// Steps for the two main cargo builds, one for the standard library
29-
// and one for the compiler itself. These are parameterized over the
30-
// stage output they're going to be placed in along with the
31-
// compiler which is producing the copy of libstd or librustc
28+
// Steps for the two main cargo builds. These are parameterized over
29+
// the compiler which is producing the artifact.
3230
(libstd, Libstd { compiler: Compiler<'a> }),
31+
(libtest, Libtest { compiler: Compiler<'a> }),
3332
(librustc, Librustc { compiler: Compiler<'a> }),
3433

35-
// Links the standard library/librustc produced by the compiler
36-
// provided into the host's directory also provided.
34+
// Links the target produced by the compiler provided into the
35+
// host's directory also provided.
3736
(libstd_link, LibstdLink {
3837
compiler: Compiler<'a>,
3938
host: &'a str
4039
}),
40+
(libtest_link, LibtestLink {
41+
compiler: Compiler<'a>,
42+
host: &'a str
43+
}),
4144
(librustc_link, LibrustcLink {
4245
compiler: Compiler<'a>,
4346
host: &'a str
@@ -67,6 +70,7 @@ macro_rules! targets {
6770
(doc_style, DocStyle { stage: u32 }),
6871
(doc_standalone, DocStandalone { stage: u32 }),
6972
(doc_std, DocStd { stage: u32 }),
73+
(doc_test, DocTest { stage: u32 }),
7074
(doc_rustc, DocRustc { stage: u32 }),
7175
(doc_error_index, DocErrorIndex { stage: u32 }),
7276

@@ -162,10 +166,10 @@ fn top_level(build: &Build) -> Vec<Step> {
162166

163167
if host.target == build.config.build {
164168
targets.push(host.target(target)
165-
.libstd(host.compiler(stage)));
169+
.libtest(host.compiler(stage)));
166170
} else {
167171
targets.push(host.target(target)
168-
.libstd_link(t.compiler(stage), host.target));
172+
.libtest_link(t.compiler(stage), host.target));
169173
}
170174
}
171175
}
@@ -246,15 +250,21 @@ impl<'a> Step<'a> {
246250
vec![self.librustc(compiler)]
247251
}
248252
Source::Librustc { compiler } => {
249-
vec![self.libstd(compiler), self.llvm(())]
253+
vec![self.libtest(compiler), self.llvm(())]
254+
}
255+
Source::Libtest { compiler } => {
256+
vec![self.libstd(compiler)]
250257
}
251258
Source::Libstd { compiler } => {
252259
vec![self.compiler_rt(()),
253260
self.rustc(compiler.stage).target(compiler.host)]
254261
}
255262
Source::LibrustcLink { compiler, host } => {
256263
vec![self.librustc(compiler),
257-
self.libstd_link(compiler, host)]
264+
self.libtest_link(compiler, host)]
265+
}
266+
Source::LibtestLink { compiler, host } => {
267+
vec![self.libtest(compiler), self.libstd_link(compiler, host)]
258268
}
259269
Source::LibstdLink { compiler, host } => {
260270
vec![self.libstd(compiler),
@@ -267,6 +277,9 @@ impl<'a> Step<'a> {
267277
Source::DocStd { stage } => {
268278
vec![self.libstd(self.compiler(stage))]
269279
}
280+
Source::DocTest { stage } => {
281+
vec![self.libtest(self.compiler(stage))]
282+
}
270283
Source::DocBook { stage } |
271284
Source::DocNomicon { stage } |
272285
Source::DocStyle { stage } => {
@@ -279,7 +292,7 @@ impl<'a> Step<'a> {
279292
vec![self.rustc(stage)]
280293
}
281294
Source::DocRustc { stage } => {
282-
vec![self.doc_std(stage)]
295+
vec![self.doc_test(stage)]
283296
}
284297
Source::Doc { stage } => {
285298
vec![self.doc_book(stage), self.doc_nomicon(stage),
@@ -315,7 +328,7 @@ impl<'a> Step<'a> {
315328
vec![self.rustc(stage)]
316329
}
317330
Source::DistStd { compiler } => {
318-
vec![self.libstd(compiler)]
331+
vec![self.libtest(compiler)]
319332
}
320333

321334
Source::Dist { stage } => {

branches/beta/src/compiletest/compiletest.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,10 @@ pub fn test_opts(config: &Config) -> test::TestOpts {
263263
logfile: config.logfile.clone(),
264264
run_tests: true,
265265
bench_benchmarks: true,
266-
nocapture: env::var("RUST_TEST_NOCAPTURE").is_ok(),
266+
nocapture: match env::var("RUST_TEST_NOCAPTURE") {
267+
Ok(val) => &val != "0",
268+
Err(_) => false
269+
},
267270
color: test::AutoColor,
268271
}
269272
}

branches/beta/src/doc/book/functions.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,19 @@ stack backtrace:
246246
13: 0x0 - <unknown>
247247
```
248248

249+
If you need to override an already set `RUST_BACKTRACE`,
250+
in cases when you cannot just unset the variable,
251+
then set it to `0` to avoid getting a backtrace.
252+
Any other value(even no value at all) turns on backtrace.
253+
254+
```text
255+
$ export RUST_BACKTRACE=1
256+
...
257+
$ RUST_BACKTRACE=0 ./diverges
258+
thread '<main>' panicked at 'This function never returns!', hello.rs:2
259+
note: Run with `RUST_BACKTRACE=1` for a backtrace.
260+
```
261+
249262
`RUST_BACKTRACE` also works with Cargo’s `run` command:
250263

251264
```text

branches/beta/src/doc/book/getting-started.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -164,13 +164,15 @@ installed. Doing so will depend on your specific system, consult its
164164
documentation for more details.
165165

166166
If not, there are a number of places where we can get help. The easiest is
167-
[the #rust IRC channel on irc.mozilla.org][irc], which we can access through
168-
[Mibbit][mibbit]. Click that link, and we'll be chatting with other Rustaceans
169-
(a silly nickname we call ourselves) who can help us out. Other great resources
170-
include [the user’s forum][users], and [Stack Overflow][stackoverflow].
167+
[the #rust-beginners IRC channel on irc.mozilla.org][irc-beginners] and for
168+
general discussion [the #rust IRC channel on irc.mozilla.org][irc], which we
169+
can access through [Mibbit][mibbit]. Then we'll be chatting with other
170+
Rustaceans (a silly nickname we call ourselves) who can help us out. Other great
171+
resources include [the user’s forum][users] and [Stack Overflow][stackoverflow].
171172

173+
[irc-beginners]: irc://irc.mozilla.org/#rust-beginners
172174
[irc]: irc://irc.mozilla.org/#rust
173-
[mibbit]: http://chat.mibbit.com/?server=irc.mozilla.org&channel=%23rust
175+
[mibbit]: http://chat.mibbit.com/?server=irc.mozilla.org&channel=%23rust-beginners,%23rust
174176
[users]: https://users.rust-lang.org/
175177
[stackoverflow]: http://stackoverflow.com/questions/tagged/rust
176178

branches/beta/src/doc/nomicon/vec.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
To bring everything together, we're going to write `std::Vec` from scratch.
44
Because all the best tools for writing unsafe code are unstable, this
5-
project will only work on nightly (as of Rust 1.2.0). With the exception of the
5+
project will only work on nightly (as of Rust 1.9.0). With the exception of the
66
allocator API, much of the unstable code we'll use is expected to be stabilized
77
in a similar form as it is today.
88

branches/beta/src/etc/tidy.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
'src/libcore',
3232
'src/libstd',
3333
'src/rustc/std_shim',
34+
'src/rustc/test_shim',
3435
'src/test'
3536
}
3637

0 commit comments

Comments
 (0)