Skip to content

Commit 62fb41c

Browse files
committed
auto merge of rust-lang#20145 : alexcrichton/rust/rollup, r=alexcrichton
2 parents 2f3cff6 + 3583d61 commit 62fb41c

File tree

286 files changed

+6311
-5525
lines changed

Some content is hidden

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

286 files changed

+6311
-5525
lines changed

AUTHORS.txt

+1
Original file line numberDiff line numberDiff line change
@@ -498,6 +498,7 @@ Robert Irelan <[email protected]>
498498
Robert Knight <[email protected]>
499499
Robert Millar <[email protected]>
500500
Roland Tanglao <[email protected]>
501+
Rolf Timmermans <[email protected]>
501502
Ron Dahlgren <[email protected]>
502503
Roy Frostig <[email protected]>
503504

man/rustc.1

+79-52
Original file line numberDiff line numberDiff line change
@@ -12,75 +12,54 @@ This program is a compiler for the Rust language, available at
1212
.SH OPTIONS
1313

1414
.TP
15-
\fB\-\-crate-name NAME\fR
16-
Specify the name of the crate being built
17-
.TP
18-
\fB\-\-crate-type=[bin|lib|dylib|rlib|staticlib]\fR
19-
Configure the flavor of rust crate that is generated (default `bin`)
15+
\fB\-h\fR, \fB\-\-help\fR
16+
Display the help message
2017
.TP
2118
\fB\-\-cfg\fR SPEC
2219
Configure the compilation environment
2320
.TP
24-
\fB\-\-emit=[asm,ir,bc,obj,link]\fR
25-
Configure the output that rustc will produce
26-
.TP
27-
\fB\-h\fR, \fB\-\-help\fR
28-
Display this message
29-
.TP
3021
\fB\-L\fR PATH
3122
Add a directory to the library search path
3223
.TP
33-
\fB\-\-no\-trans\fR
34-
Run all passes except translation; no output
24+
\fB\-l\fR NAME[:KIND]
25+
Link the generated crate(s) to the specified native library NAME. The optional
26+
KIND can be one of, static, dylib, or framework. If omitted, dylib is assumed.
3527
.TP
36-
\fB\-\-no\-analysis\fR
37-
Parse and expand the source, but run no analysis and produce no output
28+
\fB\-\-crate-type\fR [bin|lib|rlib|dylib|staticlib]
29+
Comma separated list of types of crates for the compiler to emit
3830
.TP
39-
\fB\-g\fR
40-
Emit DWARF debug information into object files generated.
31+
\fB\-\-crate-name NAME\fR
32+
Specify the name of the crate being built
4133
.TP
42-
\fB\-\-debuginfo\fR LEVEL
43-
Emit DWARF debug info to the objects created: 0 = no debug info, 1 =
44-
line-tables only (for stacktraces and breakpoints), 2 = full debug
45-
info with variable and type information (same as -g).
34+
\fB\-\-emit\fR [asm|llvm-bc|llvm-ir|obj|link|dep-info]
35+
Configure the output that rustc will produce
36+
.TP
37+
\fB\-\-print\fR [crate-name|output-file-names|sysroot]
38+
Comma separated list of compiler information to print on stdout
39+
.TP
40+
\fB\-g\fR
41+
Equivalent to \fI\-C\fR debuginfo=2
4642
.TP
4743
\fB\-O\fR
48-
Equivalent to \fI\-\-opt\-level=2\fR
44+
Equivalent to \fI\-C\fR opt-level=2
4945
.TP
5046
\fB\-o\fR FILENAME
51-
Write output to <filename>. Ignored if more than one --emit is specified.
52-
.TP
53-
\fB\-\-opt\-level\fR LEVEL
54-
Optimize with possible levels 0-3
47+
Write output to <filename>. Ignored if multiple \fI\-\-emit\fR outputs are
48+
specified.
5549
.TP
5650
\fB\-\-out\-dir\fR DIR
57-
Write output to compiler-chosen filename in <dir>. Ignored if -o is specified.
58-
(default the current directory)
59-
.TP
60-
\fB\-\-parse\-only\fR
61-
Parse only; do not compile, assemble, or link
51+
Write output to compiler-chosen filename in <dir>. Ignored if \fI\-o\fR is
52+
specified. Defaults to the current directory.
6253
.TP
63-
\fB\-\-pretty\fR [TYPE]
64-
Pretty-print the input instead of compiling; valid types are: normal
65-
(un-annotated source), expanded (crates expanded), typed (crates
66-
expanded, with type annotations), identified (fully parenthesized,
67-
AST nodes and blocks with IDs), or flowgraph=<nodeid> (graphviz
68-
formatted flowgraph for node)
69-
.TP
70-
\fB\-\-dep-info\fR [FILENAME]
71-
Output dependency info to <filename> after compiling, in a format suitable
72-
for use by Makefiles.
73-
.TP
74-
\fB\-\-sysroot\fR PATH
75-
Override the system root
54+
\fB\-\-explain\fR OPT
55+
Provide a detailed explanation of an error message
7656
.TP
7757
\fB\-\-test\fR
7858
Build a test harness
7959
.TP
8060
\fB\-\-target\fR TRIPLE
81-
Target triple cpu-manufacturer-kernel[-os] to compile for (see
82-
http://sources.redhat.com/autobook/autobook/autobook_17.html
83-
for details)
61+
Target triple cpu-manufacturer-kernel[-os] to compile for (see chapter 3.4 of
62+
http://www.sourceware.org/autobook/ for details)
8463
.TP
8564
\fB\-W\fR help
8665
Print 'lint' options and default settings
@@ -97,15 +76,30 @@ Set lint denied
9776
\fB\-F\fR OPT, \fB\-\-forbid\fR OPT
9877
Set lint forbidden
9978
.TP
100-
\fB\-Z\fR FLAG
101-
Set internal debugging options. Use "-Z help" to print available options.
102-
.TP
10379
\fB\-C\fR FLAG[=VAL], \fB\-\-codegen\fR FLAG[=VAL]
10480
Set a codegen-related flag to the value specified. Use "-C help" to print
10581
available flags. See CODEGEN OPTIONS below
10682
.TP
107-
\fB\-v\fR, \fB\-\-version\fR
83+
\fB\-V\fR, \fB\-\-version\fR
10884
Print version info and exit
85+
.TP
86+
\fB\-v\fR, \fB\-\-verbose\fR
87+
Use verbose output
88+
.TP
89+
\fB\-\-extern\fR NAME=PATH
90+
Specify where an external rust library is located
91+
.TP
92+
\fB\-\-sysroot\fR PATH
93+
Override the system root
94+
.TP
95+
\fB\-Z\fR FLAG
96+
Set internal debugging options. Use "-Z help" to print available options.
97+
.TP
98+
\fB\-\-color\fR auto|always|never
99+
Configure coloring of output:
100+
auto = colorize, if output goes to a tty (default);
101+
always = always colorize output;
102+
never = never colorize output
109103

110104
.SH CODEGEN OPTIONS
111105

@@ -121,6 +115,9 @@ objects.
121115
A space-separated list of extra arguments to pass to the linker when the linker
122116
is invoked.
123117
.TP
118+
\fBlto\fR
119+
Perform LLVM link-time optimizations.
120+
.TP
124121
\fBtarget-cpu\fR=help
125122
Selects a target processor. If the value is 'help', then a list of available
126123
CPUs is printed.
@@ -167,8 +164,38 @@ Prefers dynamic linking to static linking.
167164
\fBno-integrated-as\fR
168165
Force usage of an external assembler rather than LLVM's integrated one.
169166
.TP
167+
\fBno-redzone\fR
168+
Disable the use of the redzone.
169+
.TP
170170
\fBrelocation-model\fR=[pic,static,dynamic-no-pic]
171-
The relocation model to use. (default: pic)
171+
The relocation model to use. (Default: pic)
172+
.TP
173+
\fBcode-model\fR=[small,kernel,medium,large]
174+
Choose the code model to use.
175+
.TP
176+
\fBmetadata\fR=val
177+
Metadata to mangle symbol names with.
178+
.TP
179+
\fBextra-filename\fR=val
180+
Extra data to put in each output filename.
181+
.TP
182+
\fBcodegen-units\fR=val
183+
Divide crate into N units to optimize in parallel.
184+
.TP
185+
\fBremark\fR=val
186+
Print remarks for these optimization passes (space separated, or "all").
187+
.TP
188+
\fBno-stack-check\fR
189+
Disable checks for stack exhaustion (a memory-safety hazard!).
190+
.TP
191+
\fBdebuginfo\fR=val
192+
Debug info emission level:
193+
0 = no debug info;
194+
1 = line-tables only (for stacktraces and breakpoints);
195+
2 = full debug info with variable and type information.
196+
.TP
197+
\fBopt-level\fR=val
198+
Optimize with possible levels 0-3
172199

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

mk/rt.mk

+2-3
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
# that's per-target so you're allowed to conditionally add files based on the
3636
# target.
3737
################################################################################
38-
NATIVE_LIBS := rust_builtin hoedown morestack miniz context_switch \
38+
NATIVE_LIBS := rust_builtin hoedown morestack miniz \
3939
rustrt_native rust_test_helpers
4040

4141
# $(1) is the target triple
@@ -58,8 +58,7 @@ NATIVE_DEPS_rustrt_native_$(1) := \
5858
arch/$$(HOST_$(1))/record_sp.S
5959
NATIVE_DEPS_rust_test_helpers_$(1) := rust_test_helpers.c
6060
NATIVE_DEPS_morestack_$(1) := arch/$$(HOST_$(1))/morestack.S
61-
NATIVE_DEPS_context_switch_$(1) := \
62-
arch/$$(HOST_$(1))/_context.S
61+
6362

6463
################################################################################
6564
# You shouldn't find it that necessary to edit anything below this line.

src/compiletest/compiletest.rs

+2-4
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ pub fn parse_config(args: Vec<String> ) -> Config {
152152
matches.opt_str("ratchet-metrics").map(|s| Path::new(s)),
153153
ratchet_noise_percent:
154154
matches.opt_str("ratchet-noise-percent")
155-
.and_then(|s| from_str::<f64>(s.as_slice())),
155+
.and_then(|s| s.as_slice().parse::<f64>()),
156156
runtool: matches.opt_str("runtool"),
157157
host_rustcflags: matches.opt_str("host-rustcflags"),
158158
target_rustcflags: matches.opt_str("target-rustcflags"),
@@ -190,9 +190,7 @@ pub fn log_config(config: &Config) {
190190
logv(c, format!("filter: {}",
191191
opt_str(&config.filter
192192
.as_ref()
193-
.map(|re| {
194-
re.to_string().into_string()
195-
}))));
193+
.map(|re| re.to_string()))));
196194
logv(c, format!("runtool: {}", opt_str(&config.runtool)));
197195
logv(c, format!("host-rustcflags: {}",
198196
opt_str(&config.host_rustcflags)));

src/compiletest/header.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -351,8 +351,8 @@ pub fn gdb_version_to_int(version_string: &str) -> int {
351351
panic!("{}", error_string);
352352
}
353353

354-
let major: int = from_str(components[0]).expect(error_string);
355-
let minor: int = from_str(components[1]).expect(error_string);
354+
let major: int = components[0].parse().expect(error_string);
355+
let minor: int = components[1].parse().expect(error_string);
356356

357357
return major * 1000 + minor;
358358
}
@@ -362,6 +362,6 @@ pub fn lldb_version_to_int(version_string: &str) -> int {
362362
"Encountered LLDB version string with unexpected format: {}",
363363
version_string);
364364
let error_string = error_string.as_slice();
365-
let major: int = from_str(version_string).expect(error_string);
365+
let major: int = version_string.parse().expect(error_string);
366366
return major;
367367
}

src/compiletest/runtest.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1361,7 +1361,7 @@ fn split_maybe_args(argstr: &Option<String>) -> Vec<String> {
13611361
s.as_slice()
13621362
.split(' ')
13631363
.filter_map(|s| {
1364-
if s.is_whitespace() {
1364+
if s.chars().all(|c| c.is_whitespace()) {
13651365
None
13661366
} else {
13671367
Some(s.to_string())

src/doc/guide.md

+14-14
Original file line numberDiff line numberDiff line change
@@ -1010,8 +1010,8 @@ in the original declaration.
10101010
Finally, because fields have names, we can access the field through dot
10111011
notation: `origin.x`.
10121012

1013-
The values in structs are immutable, like other bindings in Rust. However, you
1014-
can use `mut` to make them mutable:
1013+
The values in structs are immutable by default, like other bindings in Rust.
1014+
Use `mut` to make them mutable:
10151015

10161016
```{rust}
10171017
struct Point {
@@ -2257,10 +2257,10 @@ a function for that:
22572257
let input = io::stdin().read_line()
22582258
.ok()
22592259
.expect("Failed to read line");
2260-
let input_num: Option<uint> = from_str(input.as_slice());
2260+
let input_num: Option<uint> = input.parse();
22612261
```
22622262
2263-
The `from_str` function takes in a `&str` value and converts it into something.
2263+
The `parse` function takes in a `&str` value and converts it into something.
22642264
We tell it what kind of something with a type hint. Remember our type hint with
22652265
`random()`? It looked like this:
22662266
@@ -2279,8 +2279,8 @@ In this case, we say `x` is a `uint` explicitly, so Rust is able to properly
22792279
tell `random()` what to generate. In a similar fashion, both of these work:
22802280
22812281
```{rust,ignore}
2282-
let input_num = from_str::<uint>("5"); // input_num: Option<uint>
2283-
let input_num: Option<uint> = from_str("5"); // input_num: Option<uint>
2282+
let input_num = "5".parse::<uint>(); // input_num: Option<uint>
2283+
let input_num: Option<uint> = "5".parse(); // input_num: Option<uint>
22842284
```
22852285
22862286
Anyway, with us now converting our input to a number, our code looks like this:
@@ -2301,7 +2301,7 @@ fn main() {
23012301
let input = io::stdin().read_line()
23022302
.ok()
23032303
.expect("Failed to read line");
2304-
let input_num: Option<uint> = from_str(input.as_slice());
2304+
let input_num: Option<uint> = input.parse();
23052305

23062306
println!("You guessed: {}", input_num);
23072307

@@ -2350,7 +2350,7 @@ fn main() {
23502350
let input = io::stdin().read_line()
23512351
.ok()
23522352
.expect("Failed to read line");
2353-
let input_num: Option<uint> = from_str(input.as_slice());
2353+
let input_num: Option<uint> = input.parse();
23542354
23552355
let num = match input_num {
23562356
Some(num) => num,
@@ -2395,7 +2395,7 @@ Uh, what? But we did!
23952395
23962396
... actually, we didn't. See, when you get a line of input from `stdin()`,
23972397
you get all the input. Including the `\n` character from you pressing Enter.
2398-
Therefore, `from_str()` sees the string `"5\n"` and says "nope, that's not a
2398+
Therefore, `parse()` sees the string `"5\n"` and says "nope, that's not a
23992399
number; there's non-number stuff in there!" Luckily for us, `&str`s have an easy
24002400
method we can use defined on them: `trim()`. One small modification, and our
24012401
code looks like this:
@@ -2416,7 +2416,7 @@ fn main() {
24162416
let input = io::stdin().read_line()
24172417
.ok()
24182418
.expect("Failed to read line");
2419-
let input_num: Option<uint> = from_str(input.as_slice().trim());
2419+
let input_num: Option<uint> = input.trim().parse();
24202420
24212421
let num = match input_num {
24222422
Some(num) => num,
@@ -2491,7 +2491,7 @@ fn main() {
24912491
let input = io::stdin().read_line()
24922492
.ok()
24932493
.expect("Failed to read line");
2494-
let input_num: Option<uint> = from_str(input.as_slice().trim());
2494+
let input_num: Option<uint> = input.trim().parse();
24952495

24962496
let num = match input_num {
24972497
Some(num) => num,
@@ -2566,7 +2566,7 @@ fn main() {
25662566
let input = io::stdin().read_line()
25672567
.ok()
25682568
.expect("Failed to read line");
2569-
let input_num: Option<uint> = from_str(input.as_slice().trim());
2569+
let input_num: Option<uint> = input.trim().parse();
25702570
25712571
let num = match input_num {
25722572
Some(num) => num,
@@ -2621,7 +2621,7 @@ fn main() {
26212621
let input = io::stdin().read_line()
26222622
.ok()
26232623
.expect("Failed to read line");
2624-
let input_num: Option<uint> = from_str(input.as_slice().trim());
2624+
let input_num: Option<uint> = input.trim().parse();
26252625
26262626
let num = match input_num {
26272627
Some(num) => num,
@@ -2697,7 +2697,7 @@ fn main() {
26972697
let input = io::stdin().read_line()
26982698
.ok()
26992699
.expect("Failed to read line");
2700-
let input_num: Option<uint> = from_str(input.as_slice().trim());
2700+
let input_num: Option<uint> = input.trim().parse();
27012701
27022702
let num = match input_num {
27032703
Some(num) => num,

src/doc/reference.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -3177,7 +3177,7 @@ Some examples of call expressions:
31773177
# fn add(x: int, y: int) -> int { 0 }
31783178
31793179
let x: int = add(1, 2);
3180-
let pi: Option<f32> = from_str("3.14");
3180+
let pi: Option<f32> = "3.14".parse();
31813181
```
31823182

31833183
### Lambda expressions

0 commit comments

Comments
 (0)