Skip to content

Commit bceef2c

Browse files
committed
---
yaml --- r: 130809 b: refs/heads/master c: bf274bc h: refs/heads/master i: 130807: f088d43 v: v3
1 parent 85a2fbb commit bceef2c

Some content is hidden

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

52 files changed

+689
-471
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
refs/heads/master: 9f6d27c39f48895577eff1b9b42ab0e1d8e2a4a8
2+
refs/heads/master: bf274bc18bcbfea1377c5c64ae0cc099b03d9beb
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 6faa4f33a42de32579e02a8d030db920d360e2b5
55
refs/heads/try: a2473a89da106f7dd3be86e9d52fe23f43d5bfa5

trunk/README.md

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -101,18 +101,6 @@ There is a lot more documentation in the [wiki].
101101

102102
[wiki]: https://github.com/rust-lang/rust/wiki
103103

104-
## Getting help and getting involved
105-
106-
The Rust community congregates in a few places:
107-
108-
* [StackOverflow] - Get help here.
109-
* [/r/rust] - General discussion.
110-
* [discuss.rust-lang.org] - For development of the Rust language itself.
111-
112-
[StackOverflow]: http://stackoverflow.com/questions/tagged/rust
113-
[/r/rust]: http://reddit.com/r/rust
114-
[discuss.rust-lang.org]: http://discuss.rust-lang.org/
115-
116104
## License
117105

118106
Rust is primarily distributed under the terms of both the MIT license

trunk/mk/dist.mk

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ distcheck-tar-src: dist-tar-src
112112

113113
ifdef CFG_ISCC
114114

115-
PKG_EXE = dist/$(PKG_NAME)-$(CFG_BUILD).exe
115+
PKG_EXE = dist/$(PKG_NAME)-install.exe
116116

117117
%.iss: $(S)src/etc/pkg/%.iss
118118
cp $< $@
@@ -123,7 +123,7 @@ PKG_EXE = dist/$(PKG_NAME)-$(CFG_BUILD).exe
123123
$(PKG_EXE): rust.iss modpath.iss upgrade.iss LICENSE.txt rust-logo.ico \
124124
$(CSREQ3_T_$(CFG_BUILD)_H_$(CFG_BUILD)) \
125125
dist-prepare-win
126-
$(CFG_PYTHON) $(S)src/etc/copy-runtime-deps.py tmp/dist/win/bin $(CFG_BUILD)
126+
$(CFG_PYTHON) $(S)src/etc/copy-runtime-deps.py tmp/dist/win/bin
127127
@$(call E, ISCC: $@)
128128
$(Q)"$(CFG_ISCC)" $<
129129

trunk/mk/reconfig.mk

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,7 @@ rwildcard=$(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2) \
1515

1616
ifndef CFG_DISABLE_MANAGE_SUBMODULES
1717
# This is a pretty expensive operation but I don't see any way to avoid it
18-
# NB: This only looks for '+' status (wrong commit checked out), not '-' status
19-
# (nothing checked out at all). `./configure --{llvm,jemalloc,libuv}-root`
20-
# will explicitly deinitialize the corresponding submodules, and we don't
21-
# want to force constant rebuilds in that case.
22-
NEED_GIT_RECONFIG=$(shell cd "$(CFG_SRC_DIR)" && "$(CFG_GIT)" submodule status | grep -c '^+')
18+
NEED_GIT_RECONFIG=$(shell cd "$(CFG_SRC_DIR)" && "$(CFG_GIT)" submodule status | grep -c '^\(+\|-\)')
2319
else
2420
NEED_GIT_RECONFIG=0
2521
endif

trunk/src/doc/guide-strings.md

Lines changed: 3 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -92,33 +92,9 @@ fn foo(s: String) {
9292
```
9393

9494
If you have good reason. It's not polite to hold on to ownership you don't
95-
need, and it can make your lifetimes more complex.
96-
97-
## Generic functions
98-
99-
To write a function that's generic over types of strings, use [the `Str`
100-
trait](http://doc.rust-lang.org/std/str/trait.Str.html):
101-
102-
```{rust}
103-
fn some_string_length<T: Str>(x: T) -> uint {
104-
x.as_slice().len()
105-
}
106-
107-
fn main() {
108-
let s = "Hello, world";
109-
110-
println!("{}", some_string_length(s));
111-
112-
let s = "Hello, world".to_string();
113-
114-
println!("{}", some_string_length(s));
115-
}
116-
```
117-
118-
Both of these lines will print `12`.
119-
120-
The only method that the `Str` trait has is `as_slice()`, which gives you
121-
access to a `&str` value from the underlying string.
95+
need, and it can make your lifetimes more complex. Furthermore, you can pass
96+
either kind of string into `foo` by using `.as_slice()` on any `String` you
97+
need to pass in, so the `&str` version is more flexible.
12298

12399
## Comparisons
124100

@@ -145,65 +121,6 @@ fn compare(string: String) {
145121
Converting a `String` to a `&str` is cheap, but converting the `&str` to a
146122
`String` involves an allocation.
147123

148-
## Indexing strings
149-
150-
You may be tempted to try to access a certain character of a `String`, like
151-
this:
152-
153-
```{rust,ignore}
154-
let s = "hello".to_string();
155-
156-
println!("{}", s[0]);
157-
```
158-
159-
This does not compile. This is on purpose. In the world of UTF-8, direct
160-
indexing is basically never what you want to do. The reason is that each
161-
character can be a variable number of bytes. This means that you have to iterate
162-
through the characters anyway, which is a O(n) operation.
163-
164-
To iterate over a string, use the `graphemes()` method on `&str`:
165-
166-
```{rust}
167-
let s = "αἰθήρ";
168-
169-
for l in s.graphemes(true) {
170-
println!("{}", l);
171-
}
172-
```
173-
174-
Note that `l` has the type `&str` here, since a single grapheme can consist of
175-
multiple codepoints, so a `char` wouldn't be appropriate.
176-
177-
This will print out each character in turn, as you'd expect: first "α", then
178-
"ἰ", etc. You can see that this is different than just the individual bytes.
179-
Here's a version that prints out each byte:
180-
181-
```{rust}
182-
let s = "αἰθήρ";
183-
184-
for l in s.bytes() {
185-
println!("{}", l);
186-
}
187-
```
188-
189-
This will print:
190-
191-
```{notrust,ignore}
192-
206
193-
177
194-
225
195-
188
196-
176
197-
206
198-
184
199-
206
200-
174
201-
207
202-
129
203-
```
204-
205-
Many more bytes than graphemes!
206-
207124
# Other Documentation
208125

209126
* [the `&str` API documentation](/std/str/index.html)

trunk/src/doc/guide.md

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ in your file name, use an underscore. `hello_world.rs` versus `goodbye.rs`.
150150

151151
Now that you've got your file open, type this in:
152152

153-
```{rust}
153+
```
154154
fn main() {
155155
println!("Hello, world!");
156156
}
@@ -166,7 +166,7 @@ Hello, world!
166166

167167
Success! Let's go over what just happened in detail.
168168

169-
```{rust}
169+
```
170170
fn main() {
171171
172172
}
@@ -186,7 +186,7 @@ declaration, with one space in between.
186186

187187
Next up is this line:
188188

189-
```{rust}
189+
```
190190
println!("Hello, world!");
191191
```
192192

@@ -562,7 +562,7 @@ the block is executed. If it's `false`, then it is not.
562562

563563
If you want something to happen in the `false` case, use an `else`:
564564

565-
```{rust}
565+
```
566566
let x = 5i;
567567
568568
if x == 5i {
@@ -574,8 +574,7 @@ if x == 5i {
574574

575575
This is all pretty standard. However, you can also do this:
576576

577-
578-
```{rust}
577+
```
579578
let x = 5i;
580579
581580
let y = if x == 5i {
@@ -587,7 +586,7 @@ let y = if x == 5i {
587586

588587
Which we can (and probably should) write like this:
589588

590-
```{rust}
589+
```
591590
let x = 5i;
592591
593592
let y = if x == 5i { 10i } else { 15i };
@@ -644,7 +643,7 @@ every line of Rust code you see.
644643
What is this exception that makes us say 'almost?' You saw it already, in this
645644
code:
646645

647-
```{rust}
646+
```
648647
let x = 5i;
649648
650649
let y: int = if x == 5i { 10i } else { 15i };
@@ -990,7 +989,7 @@ notation: `origin.x`.
990989
The values in structs are immutable, like other bindings in Rust. However, you
991990
can use `mut` to make them mutable:
992991

993-
```{rust}
992+
```rust
994993
struct Point {
995994
x: int,
996995
y: int,
@@ -1014,7 +1013,7 @@ called a **tuple struct**. Tuple structs do have a name, but their fields
10141013
don't:
10151014

10161015

1017-
```{rust}
1016+
```
10181017
struct Color(int, int, int);
10191018
struct Point(int, int, int);
10201019
```
@@ -1029,7 +1028,7 @@ let origin = Point(0, 0, 0);
10291028
It is almost always better to use a struct than a tuple struct. We would write
10301029
`Color` and `Point` like this instead:
10311030

1032-
```{rust}
1031+
```rust
10331032
struct Color {
10341033
red: int,
10351034
blue: int,
@@ -1050,7 +1049,7 @@ There _is_ one case when a tuple struct is very useful, though, and that's a
10501049
tuple struct with only one element. We call this a 'newtype,' because it lets
10511050
you create a new type that's a synonym for another one:
10521051

1053-
```{rust}
1052+
```
10541053
struct Inches(int);
10551054
10561055
let length = Inches(10);
@@ -1167,7 +1166,7 @@ what's the solution?
11671166
Rust has a keyword, `match`, that allows you to replace complicated `if`/`else`
11681167
groupings with something more powerful. Check it out:
11691168

1170-
```{rust}
1169+
```rust
11711170
let x = 5i;
11721171

11731172
match x {
@@ -1408,7 +1407,7 @@ We now loop forever with `loop`, and use `break` to break out early.
14081407
`continue` is similar, but instead of ending the loop, goes to the next
14091408
iteration: This will only print the odd numbers:
14101409

1411-
```{rust}
1410+
```
14121411
for x in range(0i, 10i) {
14131412
if x % 2 == 0 { continue; }
14141413
@@ -4123,7 +4122,7 @@ the ability to use this **method call syntax** via the `impl` keyword.
41234122

41244123
Here's how it works:
41254124

4126-
```{rust}
4125+
```
41274126
struct Circle {
41284127
x: f64,
41294128
y: f64,
@@ -4162,7 +4161,7 @@ multiplications later, and we have our area.
41624161
You can also define methods that do not take a `self` parameter. Here's a
41634162
pattern that's very common in Rust code:
41644163

4165-
```{rust}
4164+
```
41664165
struct Circle {
41674166
x: f64,
41684167
y: f64,

trunk/src/doc/rust.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2555,6 +2555,8 @@ The currently implemented features of the reference compiler are:
25552555
which is considered wildly unsafe and will be
25562556
obsoleted by language improvements.
25572557

2558+
* `tuple_indexing` - Allows use of tuple indexing (expressions like `expr.0`)
2559+
25582560
If a feature is promoted to a language feature, then all existing programs will
25592561
start to receive compilation warnings about #[feature] directives which enabled
25602562
the new feature (because the directive is no longer necessary). However, if

trunk/src/etc/copy-runtime-deps.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@
1212

1313
import snapshot, sys, os, shutil
1414

15-
def copy_runtime_deps(dest_dir, triple):
16-
for path in snapshot.get_winnt_runtime_deps(snapshot.get_platform(triple)):
15+
def copy_runtime_deps(dest_dir):
16+
for path in snapshot.get_winnt_runtime_deps():
1717
shutil.copy(path, dest_dir)
1818

1919
lic_dest = os.path.join(dest_dir, "third-party")
2020
if os.path.exists(lic_dest):
2121
shutil.rmtree(lic_dest) # copytree() won't overwrite existing files
2222
shutil.copytree(os.path.join(os.path.dirname(__file__), "third-party"), lic_dest)
2323

24-
copy_runtime_deps(sys.argv[1], sys.argv[2])
24+
copy_runtime_deps(sys.argv[1])

trunk/src/etc/pkg/rust.iss

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
#define CFG_VERSION_WIN GetEnv("CFG_VERSION_WIN")
22
#define CFG_RELEASE GetEnv("CFG_RELEASE")
33
#define CFG_PACKAGE_NAME GetEnv("CFG_PACKAGE_NAME")
4-
#define CFG_BUILD GetEnv("CFG_BUILD")
54

65
[Setup]
76

@@ -21,7 +20,7 @@ DisableStartupPrompt=true
2120

2221
OutputDir=.\dist\
2322
SourceDir=.\
24-
OutputBaseFilename={#CFG_PACKAGE_NAME}-{#CFG_BUILD}
23+
OutputBaseFilename={#CFG_PACKAGE_NAME}-install
2524
DefaultDirName={pf32}\Rust
2625

2726
Compression=lzma2/ultra

trunk/src/etc/snapshot.py

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,8 @@ def scrub(b):
3939
"freebsd": ["bin/rustc"],
4040
}
4141

42-
winnt_runtime_deps_32 = ["libgcc_s_dw2-1.dll",
43-
"libstdc++-6.dll"]
44-
winnt_runtime_deps_64 = ["libgcc_s_seh-1.dll",
45-
"libstdc++-6.dll"]
42+
winnt_runtime_deps = ["libgcc_s_dw2-1.dll",
43+
"libstdc++-6.dll"]
4644

4745
def parse_line(n, line):
4846
global snapshotfile
@@ -148,14 +146,10 @@ def hash_file(x):
148146
return scrub(h.hexdigest())
149147

150148
# Returns a list of paths of Rust's system runtime dependencies
151-
def get_winnt_runtime_deps(platform):
152-
if platform == "winnt-x86_64":
153-
deps = winnt_runtime_deps_64
154-
else:
155-
deps = winnt_runtime_deps_32
149+
def get_winnt_runtime_deps():
156150
runtime_deps = []
157-
path_dirs = os.environ["PATH"].split(os.pathsep)
158-
for name in deps:
151+
path_dirs = os.environ["PATH"].split(';')
152+
for name in winnt_runtime_deps:
159153
for dir in path_dirs:
160154
matches = glob.glob(os.path.join(dir, name))
161155
if matches:
@@ -195,7 +189,7 @@ def in_tar_name(fn):
195189
"Please make a clean build." % "\n ".join(matches))
196190

197191
if kernel=="winnt":
198-
for path in get_winnt_runtime_deps(platform):
192+
for path in get_winnt_runtime_deps():
199193
tar.add(path, "rust-stage0/bin/" + os.path.basename(path))
200194
tar.add(os.path.join(os.path.dirname(__file__), "third-party"),
201195
"rust-stage0/bin/third-party")

trunk/src/jemalloc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Subproject commit aae04170ccbfeea620502106b581c3c216cd132a
1+
Subproject commit 024c67ad651e1a3ca228936c4cfb13a37329baf2

0 commit comments

Comments
 (0)