Skip to content

Commit 88284d8

Browse files
committed
---
yaml --- r: 165678 b: refs/heads/auto c: 15d5454 h: refs/heads/master v: v3
1 parent 3caa743 commit 88284d8

File tree

419 files changed

+17984
-11338
lines changed

Some content is hidden

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

419 files changed

+17984
-11338
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: 576467b4927d55dc47c28d9b8732db165522e2e2
13+
refs/heads/auto: 15d54549d7311893eacd43d7d6cb527ac2acf944
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/docs.mk

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,36 @@ endef
216216
$(foreach docname,$(DOCS),$(eval $(call DEF_DOC,$(docname))))
217217

218218

219+
# Localized documentation
220+
221+
# FIXME: I (huonw) haven't actually been able to test properly, since
222+
# e.g. (by default) I'm doing an out-of-tree build (#12763), but even
223+
# adjusting for that, the files are too old(?) and are rejected by
224+
# po4a.
225+
#
226+
# As such, I've attempted to get it working as much as possible (and
227+
# switching from pandoc to rustdoc), but preserving the old behaviour
228+
# (e.g. only running on the guide)
229+
.PHONY: l10n-mds
230+
l10n-mds: $(D)/po4a.conf \
231+
$(foreach lang,$(L10N_LANG),$(D)/po/$(lang)/*.md.po)
232+
$(warning WARNING: localized documentation is experimental)
233+
po4a --copyright-holder="The Rust Project Developers" \
234+
--package-name="Rust" \
235+
--package-version="$(CFG_RELEASE)" \
236+
-M UTF-8 -L UTF-8 \
237+
$(D)/po4a.conf
238+
239+
define DEF_L10N_DOC
240+
DOC_L10N_TARGETS += doc/l10n/$(1)/$(2).html
241+
doc/l10n/$(1)/$(2).html: l10n-mds $$(HTML_DEPS) $$(RUSTDOC_DEPS_$(2))
242+
@$$(call E, rustdoc: $$@)
243+
$$(RUSTDOC) $$(RUSTDOC_HTML_OPTS) $$(RUSTDOC_FLAGS_$(1)) doc/l10n/$(1)/$(2).md
244+
endef
245+
246+
$(foreach lang,$(L10N_LANGS),$(eval $(call DEF_L10N_DOC,$(lang),guide)))
247+
248+
219249
######################################################################
220250
# Rustdoc (libstd/extra)
221251
######################################################################
@@ -264,3 +294,7 @@ endif
264294

265295
docs: $(DOC_TARGETS)
266296
compiler-docs: $(COMPILER_DOC_TARGETS)
297+
298+
docs-l10n: $(DOC_L10N_TARGETS)
299+
300+
.PHONY: docs-l10n

branches/auto/mk/tests.mk

Lines changed: 2 additions & 3 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
######################################################################
@@ -300,7 +299,7 @@ tidy:
300299
| xargs -n 10 $(CFG_PYTHON) $(S)src/etc/tidy.py
301300
$(Q)echo $(ALL_HS) \
302301
| xargs -n 10 $(CFG_PYTHON) $(S)src/etc/tidy.py
303-
$(Q)find $(S)src -type f -perm /a+x \
302+
$(Q)find $(S)src -type f -perm +a+x \
304303
-not -name '*.rs' -and -not -name '*.py' \
305304
-and -not -name '*.sh' \
306305
| grep '^$(S)src/jemalloc' -v \

branches/auto/src/compiletest/runtest.rs

Lines changed: 5 additions & 5 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
}
@@ -1609,7 +1609,7 @@ fn _arm_exec_compiled_test(config: &Config,
16091609
stderr_out.as_slice());
16101610

16111611
ProcRes {
1612-
status: process::ProcessExit::ExitStatus(exitcode),
1612+
status: process::ExitStatus(exitcode),
16131613
stdout: stdout_out,
16141614
stderr: stderr_out,
16151615
cmdline: cmdline
@@ -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/README.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@
66
document converter, is required to generate docs as HTML from Rust's
77
source code.
88

9+
[po4a](http://po4a.alioth.debian.org/) is required for generating translated
10+
docs from the master (English) docs.
11+
12+
[GNU gettext](http://www.gnu.org/software/gettext/) is required for managing
13+
the translation data.
14+
915
## Building
1016

1117
To generate all the docs, just run `make docs` from the root of the repository.
@@ -38,3 +44,43 @@ The syntax for pandoc flavored markdown can be found at:
3844
A nice quick reference (for non-pandoc markdown) is at:
3945

4046
- http://kramdown.gettalong.org/quickref.html
47+
48+
## Notes for translators
49+
50+
Notice: The procedure described below is a work in progress. We are working on
51+
translation system but the procedure contains some manual operations for now.
52+
53+
To start the translation for a new language, see `po4a.conf` at first.
54+
55+
To generate `.pot` and `.po` files, do something like:
56+
57+
~~~~
58+
po4a --copyright-holder="The Rust Project Developers" \
59+
--package-name="Rust" \
60+
--package-version="0.13.0" \
61+
-M UTF-8 -L UTF-8 \
62+
src/doc/po4a.conf
63+
~~~~
64+
65+
(the version number must be changed if it is not `0.13.0` now.)
66+
67+
Now you can translate documents with `.po` files, commonly used with gettext. If
68+
you are not familiar with gettext-based translation, please read the online
69+
manual linked from http://www.gnu.org/software/gettext/ . We use UTF-8 as the
70+
file encoding of `.po` files.
71+
72+
When you want to make a commit, do the command below before staging your
73+
change:
74+
75+
~~~~
76+
for f in src/doc/po/**/*.po; do
77+
msgattrib --translated $f -o $f.strip
78+
if [ -e $f.strip ]; then
79+
mv $f.strip $f
80+
else
81+
rm $f
82+
fi
83+
done
84+
~~~~
85+
86+
This removes untranslated entries from `.po` files to save disk space.

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

0 commit comments

Comments
 (0)