Skip to content

Commit d86b5b5

Browse files
committed
---
yaml --- r: 127084 b: refs/heads/snap-stage3 c: 46d1ee7 h: refs/heads/master v: v3
1 parent b1509d8 commit d86b5b5

File tree

39 files changed

+311
-180
lines changed

39 files changed

+311
-180
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: 7be8f0af0393dcdb077c2f6b1653836fd3fba235
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
4-
refs/heads/snap-stage3: fd69365ead71e6ee0ca2990a926a163df5076f2d
4+
refs/heads/snap-stage3: 46d1ee72ac0292adb3db66de23216b57a40a52b2
55
refs/heads/try: 502e4c045236682e9728539dc0d2b3d0b237f55c
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b

branches/snap-stage3/mk/docs.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ doc/$(1)/:
285285
$(2) += doc/$(1)/index.html
286286
doc/$(1)/index.html: CFG_COMPILER_HOST_TRIPLE = $(CFG_TARGET)
287287
doc/$(1)/index.html: $$(LIB_DOC_DEP_$(1)) doc/$(1)/
288-
@$$(call E, rustdoc $$@)
288+
@$$(call E, rustdoc: $$@)
289289
$$(Q)$$(RUSTDOC) --cfg dox --cfg stage2 $$<
290290
endef
291291

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ pub struct Config {
136136
// Extra parameter to run adb on arm-linux-androideabi
137137
pub adb_path: String,
138138

139-
// Extra parameter to run test sute on arm-linux-androideabi
139+
// Extra parameter to run test suite on arm-linux-androideabi
140140
pub adb_test_dir: String,
141141

142142
// status whether android device available or not

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@ fn run_debuginfo_gdb_test(config: &Config, props: &TestProps, testfile: &Path) {
325325
let DebuggerCommands { commands, check_lines, .. } = parse_debugger_commands(testfile, "gdb");
326326
let mut cmds = commands.connect("\n");
327327

328-
// compile test file (it shoud have 'compile-flags:-g' in the header)
328+
// compile test file (it should have 'compile-flags:-g' in the header)
329329
let compiler_run_result = compile_test(config, props, testfile);
330330
if !compiler_run_result.status.success() {
331331
fatal_proc_rec("compilation failed!", &compiler_run_result);
@@ -520,7 +520,7 @@ fn run_debuginfo_lldb_test(config: &Config, props: &TestProps, testfile: &Path)
520520

521521
let config = &mut config;
522522

523-
// compile test file (it shoud have 'compile-flags:-g' in the header)
523+
// compile test file (it should have 'compile-flags:-g' in the header)
524524
let compile_result = compile_test(config, props, testfile);
525525
if !compile_result.status.success() {
526526
fatal_proc_rec("compilation failed!", &compile_result);

branches/snap-stage3/src/doc/complement-design-faq.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
% Rust Design FAQ
1+
% The Rust Design FAQ
22

33
This document describes decisions were arrived at after lengthy discussion and
44
experimenting with alternatives. Please do not propose reversing them unless

branches/snap-stage3/src/doc/complement-lang-faq.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
% Language FAQ
1+
% The Rust Language FAQ
22

33
## Are there any big programs written in it yet? I want to read big samples.
44

@@ -162,4 +162,15 @@ debugging linking in the compiler you might set
162162
`RUST_LOG=rustc::metadata::creader,rustc::util::filesearch,rustc::back::rpath`
163163
For a full description see [the logging crate][1].
164164

165+
## How fast is Rust?
166+
167+
As always, this question is difficult to answer. There's still a lot of work to
168+
do on speed, and depending on what you're benchmarking, Rust has variable
169+
performance.
170+
171+
That said, it is an explicit goal of Rust to be as fast as C++ for most things.
172+
Language decisions are made with performance in mind, and we want Rust to be as
173+
fast as possible. Given that Rust is built on top of LLVM, any performance
174+
improvements in it also help us be faster.
175+
165176
[1]:log/index.html

branches/snap-stage3/src/doc/complement-project-faq.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
% Project FAQ
1+
% The Rust Project FAQ
22

33
# What is this project's goal, in one sentence?
44

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
% The Strings Guide
1+
% The Guide to Rust Strings
22

33
Strings are an important concept to master in any programming language. If you
44
come from a managed language background, you may be surprised at the complexity

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
% Writing Safe Unsafe and Low-Level Code
1+
% Writing Unsafe and Low-Level Code in Rust
22

33
# Introduction
44

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

Lines changed: 48 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ Now that you've got your file open, type this in:
152152

153153
```
154154
fn main() {
155-
println!("Hello, world");
155+
println!("Hello, world!");
156156
}
157157
```
158158

@@ -161,7 +161,7 @@ Save the file, and then type this into your terminal window:
161161
```{bash}
162162
$ rustc hello_world.rs
163163
$ ./hello_world # or hello_world.exe on Windows
164-
Hello, world
164+
Hello, world!
165165
```
166166

167167
Success! Let's go over what just happened in detail.
@@ -187,7 +187,7 @@ declaration, with one space in between.
187187
Next up is this line:
188188

189189
```
190-
println!("Hello, world");
190+
println!("Hello, world!");
191191
```
192192

193193
This line does all of the work in our little program. There are a number of
@@ -205,7 +205,7 @@ to mention: Rust's macros are significantly different than C macros, if you've
205205
used those. Don't be scared of using macros. We'll get to the details
206206
eventually, you'll just have to trust us for now.
207207

208-
Next, `"Hello, world"` is a **string**. Strings are a surprisingly complicated
208+
Next, `"Hello, world!"` is a **string**. Strings are a surprisingly complicated
209209
topic in a systems programming language, and this is a **statically allocated**
210210
string. We will talk more about different kinds of allocation later. We pass
211211
this string as an argument to `println!`, which prints the string to the
@@ -316,7 +316,7 @@ Put this inside:
316316
317317
name = "hello_world"
318318
version = "0.1.0"
319-
authors = [ "someone@example.com" ]
319+
authors = [ "Your name <you@example.com>" ]
320320
321321
[[bin]]
322322
@@ -354,6 +354,18 @@ file, we would need to call `rustc` twice, and pass it a bunch of options to
354354
tell it to build everything together. With Cargo, as our project grows, we can
355355
just `cargo build` and it'll work the right way.
356356

357+
You'll also notice that Cargo has created a new file: `Cargo.lock`.
358+
359+
```{ignore,notrust}
360+
[root]
361+
name = "hello_world"
362+
version = "0.0.1"
363+
```
364+
365+
This file is used by Cargo to keep track of dependencies in your application.
366+
Right now, we don't have any, so it's a bit sparse. You won't ever need
367+
to touch this file yourself, just let Cargo handle it.
368+
357369
That's it! We've successfully built `hello_world` with Cargo. Even though our
358370
program is simple, it's using much of the real tooling that you'll use for the
359371
rest of your Rust career.
@@ -449,9 +461,9 @@ let x;
449461
...we'll get an error:
450462

451463
```{ignore}
452-
src/guessing_game.rs:2:9: 2:10 error: cannot determine a type for this local variable: unconstrained type
453-
src/guessing_game.rs:2 let x;
454-
^
464+
src/hello_world.rs:2:9: 2:10 error: cannot determine a type for this local variable: unconstrained type
465+
src/hello_world.rs:2 let x;
466+
^
455467
```
456468

457469
Giving it a type will compile, though:
@@ -460,7 +472,7 @@ Giving it a type will compile, though:
460472
let x: int;
461473
```
462474

463-
Let's try it out. Change your `src/guessing_game.rs` file to look like this:
475+
Let's try it out. Change your `src/hello_world.rs` file to look like this:
464476

465477
```{rust}
466478
fn main() {
@@ -474,10 +486,10 @@ You can use `cargo build` on the command line to build it. You'll get a warning,
474486
but it will still print "Hello, world!":
475487

476488
```{ignore,notrust}
477-
Compiling guessing_game v0.1.0 (file:/home/you/projects/guessing_game)
478-
src/guessing_game.rs:2:9: 2:10 warning: unused variable: `x`, #[warn(unused_variable)] on by default
479-
src/guessing_game.rs:2 let x: int;
480-
^
489+
Compiling hello_world v0.1.0 (file:/home/you/projects/hello_world)
490+
src/hello_world.rs:2:9: 2:10 warning: unused variable: `x`, #[warn(unused_variable)] on by default
491+
src/hello_world.rs:2 let x: int;
492+
^
481493
```
482494

483495
Rust warns us that we never use the variable binding, but since we never use it,
@@ -496,16 +508,16 @@ And try to build it. You'll get an error:
496508

497509
```{bash}
498510
$ cargo build
499-
Compiling guessing_game v0.1.0 (file:/home/you/projects/guessing_game)
500-
src/guessing_game.rs:4:39: 4:40 error: use of possibly uninitialized variable: `x`
501-
src/guessing_game.rs:4 println!("The value of x is: {}", x);
502-
^
511+
Compiling hello_world v0.1.0 (file:/home/you/projects/hello_world)
512+
src/hello_world.rs:4:39: 4:40 error: use of possibly uninitialized variable: `x`
513+
src/hello_world.rs:4 println!("The value of x is: {}", x);
514+
^
503515
note: in expansion of format_args!
504516
<std macros>:2:23: 2:77 note: expansion site
505517
<std macros>:1:1: 3:2 note: in expansion of println!
506-
src/guessing_game.rs:4:5: 4:42 note: expansion site
518+
src/hello_world.rs:4:5: 4:42 note: expansion site
507519
error: aborting due to previous error
508-
Could not execute process `rustc src/guessing_game.rs --crate-type bin --out-dir /home/you/projects/guessing_game/target -L /home/you/projects/guessing_game/target -L /home/you/projects/guessing_game/target/deps` (status=101)
520+
Could not execute process `rustc src/hello_world.rs --crate-type bin --out-dir /home/you/projects/hello_world/target -L /home/you/projects/hello_world/target -L /home/you/projects/hello_world/target/deps` (status=101)
509521
```
510522

511523
Rust will not let us use a value that has not been initialized. So why let us
@@ -1594,41 +1606,45 @@ taken to the screen. Sound good?
15941606

15951607
## Set up
15961608

1597-
Let's set up a new project. Go to your projects directory, and make a new
1598-
directory for the project, as well as a `src` directory for our code:
1609+
Let's set up a new project. Go to your projects directory. Remember how we
1610+
had to create our directory structure and a `Cargo.toml` for `hello_world`? Cargo
1611+
has a command that does that for us. Let's give it a shot:
15991612

16001613
```{bash}
16011614
$ cd ~/projects
1602-
$ mkdir guessing_game
1615+
$ cargo new guessing_game --bin
16031616
$ cd guessing_game
1604-
$ mkdir src
16051617
```
16061618

1607-
Great. Next, let's make a `Cargo.toml` file so Cargo knows how to build our
1608-
project:
1619+
We pass the name of our project to `cargo new`, and then the `--bin` flag,
1620+
since we're making a binary, rather than a library.
1621+
1622+
Check out the generated `Cargo.toml`:
16091623

16101624
```{ignore}
16111625
[package]
16121626
16131627
name = "guessing_game"
16141628
version = "0.1.0"
1615-
authors = [ "someone@example.com" ]
1629+
authors = ["Your Name <you@example.com>"]
16161630
16171631
[[bin]]
16181632
16191633
name = "guessing_game"
16201634
```
16211635

1622-
Finally, we need our source file. Let's just make it hello world for now, so we
1623-
can check that our setup works. In `src/guessing_game.rs`:
1636+
Cargo gets this information from your environment. If it's not correct, go ahead
1637+
and fix that.
1638+
1639+
Finally, Cargo generated a hello, world for us. Check out `src/main.rs`:
16241640

16251641
```{rust}
16261642
fn main() {
16271643
println!("Hello world!");
16281644
}
16291645
```
16301646

1631-
Let's make sure that worked:
1647+
Let's try compiling what Cargo gave us:
16321648

16331649
```{bash}
16341650
$ cargo build
@@ -1883,7 +1899,6 @@ fn cmp(a: int, b: int) -> Ordering {
18831899
If we try to compile, we'll get some errors:
18841900

18851901
```{notrust,ignore}
1886-
$ cargo build
18871902
$ cargo build
18881903
Compiling guessing_game v0.1.0 (file:/home/you/projects/guessing_game)
18891904
src/guessing_game.rs:20:15: 20:20 error: mismatched types: expected `int` but found `collections::string::String` (expected int but found struct collections::string::String)
@@ -2486,27 +2501,7 @@ Enough talk, let's build something! Let's make a new project called `modules`.
24862501

24872502
```{bash,ignore}
24882503
$ cd ~/projects
2489-
$ mkdir modules
2490-
$ cd modules
2491-
$ mkdir src
2492-
```
2493-
2494-
We need to make our two 'hello world' files. In `src/main.rs`:
2495-
2496-
```{rust}
2497-
fn main() {
2498-
println!("Hello, world!");
2499-
}
2500-
```
2501-
2502-
And in `Cargo.toml`:
2503-
2504-
```{notrust,ignore}
2505-
[package]
2506-
2507-
name = "modules"
2508-
version = "0.1.0"
2509-
authors = [ "[email protected]" ]
2504+
$ cargo new modules --bin
25102505
```
25112506

25122507
Let's double check our work by compiling:
@@ -2924,34 +2919,16 @@ now: make a new project:
29242919

29252920
```{bash,ignore}
29262921
$ cd ~/projects
2927-
$ mkdir testing
2922+
$ cargo new testing --bin
29282923
$ cd testing
2929-
$ mkdir test
2930-
```
2931-
2932-
In `src/main.rs`:
2933-
2934-
```{rust}
2935-
fn main() {
2936-
println!("Hello, world!");
2937-
}
2938-
```
2939-
2940-
And in `Cargo.toml`:
2941-
2942-
```{notrust,ignore}
2943-
[package]
2944-
2945-
name = "testing"
2946-
version = "0.1.0"
2947-
authors = [ "[email protected]" ]
29482924
```
29492925

29502926
And try it out:
29512927

29522928
```{notrust,ignore}
29532929
$ cargo run
29542930
Compiling testing v0.1.0 (file:/home/you/projects/testing)
2931+
Running `target/testing`
29552932
Hello, world!
29562933
$
29572934
```

branches/snap-stage3/src/doc/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
% Rust documentation
1+
% Rust Documentation
22

33
<!-- Completely hide the TOC and the section numbers -->
44
<style type="text/css">
@@ -19,7 +19,7 @@ li {list-style-type: none; }
1919
* [Containers and Iterators](guide-container.html)
2020
* [Tasks and Communication](guide-tasks.html)
2121
* [Foreign Function Interface](guide-ffi.html)
22-
* [Writing Safe Unsafe and Low-Level Code](guide-unsafe.html)
22+
* [Writing Unsafe and Low-Level Code](guide-unsafe.html)
2323
* [Macros](guide-macros.html)
2424
* [Testing](guide-testing.html)
2525
* [Rust's Runtime](guide-runtime.html)

branches/snap-stage3/src/doc/rust.css

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -324,13 +324,14 @@ table th {
324324

325325
.rusttest { display: none; }
326326
pre.rust { position: relative; }
327-
pre.rust a { transform: scaleX(-1); }
328327
.test-arrow {
329328
display: inline-block;
330329
position: absolute;
331330
top: 0;
332331
right: 10px;
333332
font-size: 150%;
333+
-webkit-transform: scaleX(-1);
334+
transform: scaleX(-1);
334335
}
335336

336337
@media (min-width: 1170px) {

branches/snap-stage3/src/doc/rust.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1823,11 +1823,11 @@ meta_item : ident [ '=' literal
18231823
meta_seq : meta_item [ ',' meta_seq ] ? ;
18241824
~~~~
18251825

1826-
Static entities in Rust &mdash; crates, modules and items &mdash; may have _attributes_
1827-
applied to them. Attributes in Rust are modeled on Attributes in ECMA-335,
1828-
with the syntax coming from ECMA-334 (C#). An attribute is a general,
1829-
free-form metadatum that is interpreted according to name, convention, and
1830-
language and compiler version. Attributes may appear as any of:
1826+
Any item declaration may have an _attribute_ applied to it. Attributes in Rust
1827+
are modeled on Attributes in ECMA-335, with the syntax coming from ECMA-334
1828+
(C#). An attribute is a general, free-form metadatum that is interpreted
1829+
according to name, convention, and language and compiler version. Attributes
1830+
may appear as any of:
18311831

18321832
* A single identifier, the attribute name
18331833
* An identifier followed by the equals sign '=' and a literal, providing a

0 commit comments

Comments
 (0)