Skip to content

Commit c519da6

Browse files
author
Clark Gaebel
committed
---
yaml --- r: 165624 b: refs/heads/auto c: d57f259 h: refs/heads/master v: v3
1 parent 158cadc commit c519da6

File tree

398 files changed

+17556
-9614
lines changed

Some content is hidden

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

398 files changed

+17556
-9614
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
1010
refs/tags/release-0.3.1: 495bae036dfe5ec6ceafd3312b4dca48741e845b
1111
refs/tags/release-0.4: e828ea2080499553b97dfe33b3f4d472b4562ad7
1212
refs/tags/release-0.5: 7e3bcfbf21278251ee936ad53e92e9b719702d73
13-
refs/heads/auto: cc19e3380b4b7c63b6f1f79d1dfc213ea00e16cf
13+
refs/heads/auto: d57f25907bc4247b4d98efce5ab6948c35baa12d
1414
refs/heads/servo: af82457af293e2a842ba6b7759b70288da276167
1515
refs/tags/release-0.6: b4ebcfa1812664df5e142f0134a5faea3918544c
1616
refs/tags/0.1: b19db808c2793fe2976759b85a355c3ad8c8b336

branches/auto/mk/crates.mk

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,9 @@
5151

5252
TARGET_CRATES := libc std flate arena term \
5353
serialize getopts collections test time rand \
54-
log regex graphviz core rbml alloc \
54+
log regex graphviz core rbml alloc rustrt \
5555
unicode
56-
RUSTC_CRATES := rustc rustc_typeck rustc_borrowck rustc_resolve rustc_driver \
57-
rustc_trans rustc_back rustc_llvm
56+
RUSTC_CRATES := rustc rustc_typeck rustc_borrowck rustc_driver rustc_trans rustc_back rustc_llvm
5857
HOST_CRATES := syntax $(RUSTC_CRATES) rustdoc regex_macros fmt_macros
5958
CRATES := $(TARGET_CRATES) $(HOST_CRATES)
6059
TOOLS := compiletest rustdoc rustc
@@ -63,17 +62,17 @@ DEPS_core :=
6362
DEPS_libc := core
6463
DEPS_unicode := core
6564
DEPS_alloc := core libc native:jemalloc
66-
DEPS_std := core libc rand alloc collections unicode \
67-
native:rust_builtin native:backtrace native:rustrt_native
65+
DEPS_rustrt := alloc core libc collections native:rustrt_native
66+
DEPS_std := core libc rand alloc collections rustrt unicode \
67+
native:rust_builtin native:backtrace
6868
DEPS_graphviz := std
6969
DEPS_syntax := std term serialize log fmt_macros arena libc
7070
DEPS_rustc_driver := arena flate getopts graphviz libc rustc rustc_back rustc_borrowck \
71-
rustc_typeck rustc_resolve log syntax serialize rustc_llvm rustc_trans
71+
rustc_typeck log syntax serialize rustc_llvm rustc_trans
7272
DEPS_rustc_trans := arena flate getopts graphviz libc rustc rustc_back \
7373
log syntax serialize rustc_llvm
7474
DEPS_rustc_typeck := rustc syntax
7575
DEPS_rustc_borrowck := rustc log graphviz syntax
76-
DEPS_rustc_resolve := rustc log syntax
7776
DEPS_rustc := syntax flate arena serialize getopts rbml \
7877
time log graphviz rustc_llvm rustc_back
7978
DEPS_rustc_llvm := native:rustllvm libc std
@@ -120,11 +119,9 @@ DOC_CRATES := $(filter-out rustc, \
120119
$(filter-out rustc_trans, \
121120
$(filter-out rustc_typeck, \
122121
$(filter-out rustc_borrowck, \
123-
$(filter-out rustc_resolve, \
124122
$(filter-out rustc_driver, \
125-
$(filter-out syntax, $(CRATES))))))))
126-
COMPILER_DOC_CRATES := rustc rustc_trans rustc_borrowck rustc_resolve \
127-
rustc_typeck rustc_driver syntax
123+
$(filter-out syntax, $(CRATES)))))))
124+
COMPILER_DOC_CRATES := rustc rustc_trans rustc_borrowck rustc_typeck rustc_driver syntax
128125

129126
# This macro creates some simple definitions for each crate being built, just
130127
# some munging of all of the parameters above.

branches/auto/mk/dist.mk

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ dist-install-dir-$(1): prepare-base-dir-$(1) docs compiler-docs
229229
$$(Q)$$(PREPARE_MAN_CMD) $$(S)LICENSE-APACHE $$(PREPARE_DEST_DIR)
230230
$$(Q)$$(PREPARE_MAN_CMD) $$(S)LICENSE-MIT $$(PREPARE_DEST_DIR)
231231
$$(Q)$$(PREPARE_MAN_CMD) $$(S)README.md $$(PREPARE_DEST_DIR)
232-
$$(Q)[ ! -d doc ] || cp -r doc $$(PREPARE_DEST_DIR)
232+
$$(Q)cp -r doc $$(PREPARE_DEST_DIR)
233233

234234
dist/$$(PKG_NAME)-$(1).tar.gz: dist-install-dir-$(1)
235235
@$(call E, build: $$@)
@@ -312,17 +312,9 @@ MAYBE_DIST_TAR_SRC=dist-tar-src
312312
MAYBE_DISTCHECK_TAR_SRC=distcheck-tar-src
313313
endif
314314

315-
ifneq ($(CFG_DISABLE_DOCS),)
316-
MAYBE_DIST_DOCS=
317-
MAYBE_DISTCHECK_DOCS=
318-
else
319-
MAYBE_DIST_DOCS=dist-docs
320-
MAYBE_DISTCHECK_DOCS=distcheck-docs
321-
endif
322-
323-
dist: $(MAYBE_DIST_TAR_SRC) dist-osx dist-tar-bins $(MAYBE_DIST_DOCS)
315+
dist: $(MAYBE_DIST_TAR_SRC) dist-osx dist-tar-bins dist-docs
324316

325-
distcheck: $(MAYBE_DISTCHECK_TAR_SRC) distcheck-osx distcheck-tar-bins $(MAYBE_DISTCHECK_DOCS)
317+
distcheck: $(MAYBE_DISTCHECK_TAR_SRC) distcheck-osx distcheck-tar-bins distcheck-docs
326318
$(Q)rm -Rf tmp/distcheck
327319
@echo
328320
@echo -----------------------------------------------

branches/auto/mk/tests.mk

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@ $(eval $(call RUST_CRATE,coretest))
2121

2222
TEST_TARGET_CRATES = $(filter-out core unicode,$(TARGET_CRATES)) coretest
2323
TEST_DOC_CRATES = $(DOC_CRATES)
24-
TEST_HOST_CRATES = $(filter-out rustc_typeck rustc_borrowck rustc_resolve rustc_trans,\
25-
$(HOST_CRATES))
24+
TEST_HOST_CRATES = $(filter-out rustc_typeck rustc_borrowck rustc_trans,$(HOST_CRATES))
2625
TEST_CRATES = $(TEST_TARGET_CRATES) $(TEST_HOST_CRATES)
2726

2827
######################################################################

branches/auto/src/compiletest/runtest.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ use std::io;
3232
use std::os;
3333
use std::str;
3434
use std::string::String;
35-
use std::thread::Thread;
35+
use std::task;
3636
use std::time::Duration;
3737
use test::MetricMap;
3838

@@ -445,9 +445,9 @@ fn run_debuginfo_gdb_test(config: &Config, props: &TestProps, testfile: &Path) {
445445
loop {
446446
//waiting 1 second for gdbserver start
447447
timer::sleep(Duration::milliseconds(1000));
448-
let result = Thread::spawn(move || {
448+
let result = task::try(move || {
449449
tcp::TcpStream::connect("127.0.0.1:5039").unwrap();
450-
}).join();
450+
});
451451
if result.is_err() {
452452
continue;
453453
}
@@ -1666,7 +1666,7 @@ fn compile_test_and_save_bitcode(config: &Config, props: &TestProps,
16661666
// FIXME (#9639): This needs to handle non-utf8 paths
16671667
let mut link_args = vec!("-L".to_string(),
16681668
aux_dir.as_str().unwrap().to_string());
1669-
let llvm_args = vec!("--emit=llvm-bc,obj".to_string(),
1669+
let llvm_args = vec!("--emit=bc,obj".to_string(),
16701670
"--crate-type=lib".to_string());
16711671
link_args.extend(llvm_args.into_iter());
16721672
let args = make_compile_args(config,

branches/auto/src/doc/guide-tasks.md

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
% The Rust Tasks and Communication Guide
22

3-
**NOTE** This guide is badly out of date an needs to be rewritten.
4-
53
# Introduction
64

75
Rust provides safe concurrent abstractions through a number of core library
@@ -24,7 +22,7 @@ from shared mutable state.
2422
At its simplest, creating a task is a matter of calling the `spawn` function
2523
with a closure argument. `spawn` executes the closure in the new task.
2624

27-
```{rust,ignore}
25+
```{rust}
2826
# use std::task::spawn;
2927
3028
// Print something profound in a different task using a named function
@@ -51,7 +49,7 @@ closure is limited to capturing `Send`-able data from its environment
5149
ensures that `spawn` can safely move the entire closure and all its
5250
associated state into an entirely different task for execution.
5351

54-
```{rust,ignore}
52+
```{rust}
5553
# use std::task::spawn;
5654
# fn generate_task_number() -> int { 0 }
5755
// Generate some state locally
@@ -77,7 +75,7 @@ The simplest way to create a channel is to use the `channel` function to create
7775
of a channel, and a **receiver** is the receiving endpoint. Consider the following
7876
example of calculating two results concurrently:
7977

80-
```{rust,ignore}
78+
```{rust}
8179
# use std::task::spawn;
8280
8381
let (tx, rx): (Sender<int>, Receiver<int>) = channel();
@@ -98,15 +96,15 @@ stream for sending and receiving integers (the left-hand side of the `let`,
9896
`(tx, rx)`, is an example of a destructuring let: the pattern separates a tuple
9997
into its component parts).
10098

101-
```{rust,ignore}
99+
```{rust}
102100
let (tx, rx): (Sender<int>, Receiver<int>) = channel();
103101
```
104102

105103
The child task will use the sender to send data to the parent task, which will
106104
wait to receive the data on the receiver. The next statement spawns the child
107105
task.
108106

109-
```{rust,ignore}
107+
```{rust}
110108
# use std::task::spawn;
111109
# fn some_expensive_computation() -> int { 42 }
112110
# let (tx, rx) = channel();
@@ -125,7 +123,7 @@ computation, then sends the result over the captured channel.
125123
Finally, the parent continues with some other expensive computation, then waits
126124
for the child's result to arrive on the receiver:
127125

128-
```{rust,ignore}
126+
```{rust}
129127
# fn some_other_expensive_computation() {}
130128
# let (tx, rx) = channel::<int>();
131129
# tx.send(0);
@@ -156,7 +154,7 @@ spawn(move || {
156154

157155
Instead we can clone the `tx`, which allows for multiple senders.
158156

159-
```{rust,ignore}
157+
```{rust}
160158
let (tx, rx) = channel();
161159
162160
for init_val in range(0u, 3) {
@@ -181,7 +179,7 @@ Note that the above cloning example is somewhat contrived since you could also
181179
simply use three `Sender` pairs, but it serves to illustrate the point. For
182180
reference, written with multiple streams, it might look like the example below.
183181

184-
```{rust,ignore}
182+
```{rust}
185183
# use std::task::spawn;
186184
187185
// Create a vector of ports, one for each child task
@@ -205,7 +203,7 @@ getting the result later.
205203

206204
The basic example below illustrates this.
207205

208-
```{rust,ignore}
206+
```{rust}
209207
use std::sync::Future;
210208
211209
# fn main() {
@@ -232,7 +230,7 @@ called.
232230
Here is another example showing how futures allow you to background
233231
computations. The workload will be distributed on the available cores.
234232

235-
```{rust,ignore}
233+
```{rust}
236234
# use std::num::Float;
237235
# use std::sync::Future;
238236
fn partial_sum(start: uint) -> f64 {
@@ -270,7 +268,7 @@ Here is a small example showing how to use Arcs. We wish to run concurrently
270268
several computations on a single large vector of floats. Each task needs the
271269
full vector to perform its duty.
272270

273-
```{rust,ignore}
271+
```{rust}
274272
use std::num::Float;
275273
use std::rand;
276274
use std::sync::Arc;
@@ -297,7 +295,7 @@ The function `pnorm` performs a simple computation on the vector (it computes
297295
the sum of its items at the power given as argument and takes the inverse power
298296
of this value). The Arc on the vector is created by the line:
299297

300-
```{rust,ignore}
298+
```{rust}
301299
# use std::rand;
302300
# use std::sync::Arc;
303301
# fn main() {
@@ -311,7 +309,7 @@ the wrapper and not its contents. Within the task's procedure, the captured
311309
Arc reference can be used as a shared reference to the underlying vector as
312310
if it were local.
313311

314-
```{rust,ignore}
312+
```{rust}
315313
# use std::rand;
316314
# use std::sync::Arc;
317315
# fn pnorm(nums: &[f64], p: uint) -> f64 { 4.0 }
@@ -348,17 +346,17 @@ and `()`, callers can pattern-match on a result to check whether it's an `Ok`
348346
result with an `int` field (representing a successful result) or an `Err` result
349347
(representing termination with an error).
350348

351-
```{rust,ignore}
352-
# use std::thread::Thread;
349+
```{rust}
350+
# use std::task;
353351
# fn some_condition() -> bool { false }
354352
# fn calculate_result() -> int { 0 }
355-
let result: Result<int, Box<std::any::Any + Send>> = Thread::spawn(move || {
353+
let result: Result<int, Box<std::any::Any + Send>> = task::try(move || {
356354
if some_condition() {
357355
calculate_result()
358356
} else {
359357
panic!("oops!");
360358
}
361-
}).join();
359+
});
362360
assert!(result.is_err());
363361
```
364362

branches/auto/src/doc/guide.md

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5217,8 +5217,6 @@ the same function, so our binary is a little bit larger.
52175217
52185218
# Tasks
52195219
5220-
**NOTE**: this section is currently out of date and will be rewritten soon.
5221-
52225220
Concurrency and parallelism are topics that are of increasing interest to a
52235221
broad subsection of software developers. Modern computers are often multi-core,
52245222
to the point that even embedded devices like cell phones have more than one
@@ -5233,7 +5231,7 @@ library, and not part of the language. This means that in the future, other
52335231
concurrency libraries can be written for Rust to help in specific scenarios.
52345232
Here's an example of creating a task:
52355233
5236-
```{rust,ignore}
5234+
```{rust}
52375235
spawn(move || {
52385236
println!("Hello from a task!");
52395237
});
@@ -5263,7 +5261,7 @@ If tasks were only able to capture these values, they wouldn't be very useful.
52635261
Luckily, tasks can communicate with each other through **channel**s. Channels
52645262
work like this:
52655263
5266-
```{rust,ignore}
5264+
```{rust}
52675265
let (tx, rx) = channel();
52685266
52695267
spawn(move || {
@@ -5282,7 +5280,7 @@ which returns an `Result<T, TryRecvError>` and does not block.
52825280
52835281
If you want to send messages to the task as well, create two channels!
52845282
5285-
```{rust,ignore}
5283+
```{rust}
52865284
let (tx1, rx1) = channel();
52875285
let (tx2, rx2) = channel();
52885286
@@ -5342,7 +5340,7 @@ we'll just get the value immediately.
53425340
Tasks don't always succeed, they can also panic. A task that wishes to panic
53435341
can call the `panic!` macro, passing a message:
53445342
5345-
```{rust,ignore}
5343+
```{rust}
53465344
spawn(move || {
53475345
panic!("Nope.");
53485346
});
@@ -5351,7 +5349,7 @@ spawn(move || {
53515349
If a task panics, it is not possible for it to recover. However, it can
53525350
notify other tasks that it has panicked. We can do this with `task::try`:
53535351
5354-
```{rust,ignore}
5352+
```{rust}
53555353
use std::task;
53565354
use std::rand;
53575355

0 commit comments

Comments
 (0)