Skip to content

Commit 4b5fd80

Browse files
committed
---
yaml --- r: 143358 b: refs/heads/try2 c: 8fb77c7 h: refs/heads/master v: v3
1 parent abd08d7 commit 4b5fd80

File tree

400 files changed

+13218
-9840
lines changed

Some content is hidden

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

400 files changed

+13218
-9840
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ refs/heads/snap-stage3: 78a7676898d9f80ab540c6df5d4c9ce35bb50463
55
refs/heads/try: 519addf6277dbafccbb4159db4b710c37eaa2ec5
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8-
refs/heads/try2: 63c9b112b52b31f511b08438fc7f812108688804
8+
refs/heads/try2: 8fb77c70993b8f020a9398a458e9a6aea02eb70b
99
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try2/doc/po/tutorial-tasks.md.pot

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ msgstr ""
135135
#. type: Bullet: '* '
136136
#: doc/tutorial-tasks.md:56
137137
msgid ""
138-
"[`extra::arc`] - The Arc (atomically reference counted) type, for safely "
138+
"[`extra::arc`] - The ARC (atomically reference counted) type, for safely "
139139
"sharing immutable data,"
140140
msgstr ""
141141

@@ -597,7 +597,7 @@ msgstr ""
597597

598598
#. type: Plain text
599599
#: doc/tutorial-tasks.md:338
600-
msgid "## Sharing immutable data without copy: Arc"
600+
msgid "## Sharing immutable data without copy: ARC"
601601
msgstr ""
602602

603603
#. type: Plain text
@@ -613,18 +613,18 @@ msgstr ""
613613
#: doc/tutorial-tasks.md:347
614614
msgid ""
615615
"To tackle this issue, one can use an Atomically Reference Counted wrapper "
616-
"(`Arc`) as implemented in the `extra` library of Rust. With an Arc, the data "
617-
"will no longer be copied for each task. The Arc acts as a reference to the "
616+
"(`ARC`) as implemented in the `extra` library of Rust. With an ARC, the data "
617+
"will no longer be copied for each task. The ARC acts as a reference to the "
618618
"shared data and only this reference is shared and cloned."
619619
msgstr ""
620620

621621
#. type: Plain text
622622
#: doc/tutorial-tasks.md:355
623623
msgid ""
624-
"Here is a small example showing how to use Arcs. We wish to run concurrently "
624+
"Here is a small example showing how to use ARCs. We wish to run concurrently "
625625
"several computations on a single large vector of floats. Each task needs the "
626626
"full vector to perform its duty. ~~~ # use std::vec; # use std::uint; # use "
627-
"std::rand; use extra::arc::Arc;"
627+
"std::rand; use extra::arc::ARC;"
628628
msgstr ""
629629

630630
#. type: Plain text
@@ -648,7 +648,7 @@ msgstr ""
648648
#. type: Plain text
649649
#: doc/tutorial-tasks.md:365
650650
#, no-wrap
651-
msgid " let numbers_arc = Arc::new(numbers);\n"
651+
msgid " let numbers_arc = ARC(numbers);\n"
652652
msgstr ""
653653

654654
#. type: Plain text
@@ -665,7 +665,7 @@ msgstr ""
665665
#, no-wrap
666666
msgid ""
667667
" do spawn {\n"
668-
" let local_arc : Arc<~[float]> = port.recv();\n"
668+
" let local_arc : ARC<~[float]> = port.recv();\n"
669669
" let task_numbers = local_arc.get();\n"
670670
" println(fmt!(\"%u-norm = %?\", num, pnorm(task_numbers, num)));\n"
671671
" }\n"
@@ -679,31 +679,31 @@ msgstr ""
679679
msgid ""
680680
"The function `pnorm` performs a simple computation on the vector (it "
681681
"computes the sum of its items at the power given as argument and takes the "
682-
"inverse power of this value). The Arc on the vector is created by the line "
683-
"~~~ # use extra::arc::Arc; # use std::vec; # use std::rand; # let numbers = "
682+
"inverse power of this value). The ARC on the vector is created by the line "
683+
"~~~ # use extra::arc::ARC; # use std::vec; # use std::rand; # let numbers = "
684684
"vec::from_fn(1000000, |_| rand::random::<float>()); let "
685-
"numbers_arc=Arc::new(numbers); ~~~ and a clone of it is sent to each task ~~~ # "
686-
"use extra::arc::Arc; # use std::vec; # use std::rand; # let numbers=vec::"
685+
"numbers_arc=ARC(numbers); ~~~ and a clone of it is sent to each task ~~~ # "
686+
"use extra::arc::ARC; # use std::vec; # use std::rand; # let numbers=vec::"
687687
"from_fn(1000000, |_| rand::random::<float>()); # let numbers_arc = "
688-
"Arc::new(numbers); # let (port, chan) = stream(); chan.send(numbers_arc."
688+
"ARC(numbers); # let (port, chan) = stream(); chan.send(numbers_arc."
689689
"clone()); ~~~ copying only the wrapper and not its contents."
690690
msgstr ""
691691

692692
#. type: Plain text
693693
#: doc/tutorial-tasks.md:414
694694
msgid ""
695-
"Each task recovers the underlying data by ~~~ # use extra::arc::Arc; # use "
695+
"Each task recovers the underlying data by ~~~ # use extra::arc::ARC; # use "
696696
"std::vec; # use std::rand; # let numbers=vec::from_fn(1000000, |_| rand::"
697-
"random::<float>()); # let numbers_arc=Arc::new(numbers); # let (port, chan) = "
698-
"stream(); # chan.send(numbers_arc.clone()); # let local_arc : Arc<~[float]> "
697+
"random::<float>()); # let numbers_arc=ARC(numbers); # let (port, chan) = "
698+
"stream(); # chan.send(numbers_arc.clone()); # let local_arc : ARC<~[float]> "
699699
"= port.recv(); let task_numbers = local_arc.get(); ~~~ and can use it as if "
700700
"it were local."
701701
msgstr ""
702702

703703
#. type: Plain text
704704
#: doc/tutorial-tasks.md:416
705705
msgid ""
706-
"The `arc` module also implements Arcs around mutable data that are not "
706+
"The `arc` module also implements ARCs around mutable data that are not "
707707
"covered here."
708708
msgstr ""
709709

branches/try2/doc/rust.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1494,7 +1494,7 @@ mod m1 {
14941494
This example shows how one can use `allow` and `warn` to toggle
14951495
a particular check on and off.
14961496

1497-
~~~{.xfail-test}
1497+
~~~
14981498
#[warn(missing_doc)]
14991499
mod m2{
15001500
#[allow(missing_doc)]

branches/try2/doc/tutorial-container.md

Lines changed: 11 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -108,14 +108,12 @@ impl Iterator<int> for ZeroStream {
108108
## Container iterators
109109
110110
Containers implement iteration over the contained elements by returning an
111-
iterator object. For example, vector slices several iterators available:
111+
iterator object. For example, vector slices have four iterators available:
112112
113-
* `iter()` and `rev_iter()`, for immutable references to the elements
114-
* `mut_iter()` and `mut_rev_iter()`, for mutable references to the elements
115-
* `consume_iter()` and `consume_rev_iter`, to move the elements out by-value
116-
117-
A typical mutable container will implement at least `iter()`, `mut_iter()` and
118-
`consume_iter()` along with the reverse variants if it maintains an order.
113+
* `vector.iter()`, for immutable references to the elements
114+
* `vector.mut_iter()`, for mutable references to the elements
115+
* `vector.rev_iter()`, for immutable references to the elements in reverse order
116+
* `vector.mut_rev_iter()`, for mutable references to the elements in reverse order
119117
120118
### Freezing
121119
@@ -194,15 +192,15 @@ let mut it = xs.iter().zip(ys.iter());
194192

195193
// print out the pairs of elements up to (&3, &"baz")
196194
for it.advance |(x, y)| {
197-
printfln!("%d %s", *x, *y);
195+
println(fmt!("%d %s", *x, *y));
198196

199197
if *x == 3 {
200198
break;
201199
}
202200
}
203201

204202
// yield and print the last pair from the iterator
205-
printfln!("last: %?", it.next());
203+
println(fmt!("last: %?", it.next()));
206204

207205
// the iterator is now fully consumed
208206
assert!(it.next().is_none());
@@ -296,59 +294,15 @@ another `DoubleEndedIterator` with `next` and `next_back` exchanged.
296294
~~~
297295
let xs = [1, 2, 3, 4, 5, 6];
298296
let mut it = xs.iter();
299-
printfln!("%?", it.next()); // prints `Some(&1)`
300-
printfln!("%?", it.next()); // prints `Some(&2)`
301-
printfln!("%?", it.next_back()); // prints `Some(&6)`
297+
println(fmt!("%?", it.next())); // prints `Some(&1)`
298+
println(fmt!("%?", it.next())); // prints `Some(&2)`
299+
println(fmt!("%?", it.next_back())); // prints `Some(&6)`
302300

303301
// prints `5`, `4` and `3`
304302
for it.invert().advance |&x| {
305-
printfln!("%?", x)
303+
println(fmt!("%?", x))
306304
}
307305
~~~
308306
309307
The `rev_iter` and `mut_rev_iter` methods on vectors just return an inverted
310308
version of the standard immutable and mutable vector iterators.
311-
312-
The `chain_`, `transform`, `filter`, `filter_map` and `peek` adaptors are
313-
`DoubleEndedIterator` implementations if the underlying iterators are.
314-
315-
~~~
316-
let xs = [1, 2, 3, 4];
317-
let ys = [5, 6, 7, 8];
318-
let mut it = xs.iter().chain_(ys.iter()).transform(|&x| x * 2);
319-
320-
printfln!("%?", it.next()); // prints `Some(2)`
321-
322-
// prints `16`, `14`, `12`, `10`, `8`, `6`, `4`
323-
for it.invert().advance |x| {
324-
printfln!("%?", x);
325-
}
326-
~~~
327-
328-
## Random-access iterators
329-
330-
The `RandomAccessIterator` trait represents an iterator offering random access
331-
to the whole range. The `indexable` method retrieves the number of elements
332-
accessible with the `idx` method.
333-
334-
The `chain_` adaptor is an implementation of `RandomAccessIterator` if the
335-
underlying iterators are.
336-
337-
~~~
338-
let xs = [1, 2, 3, 4, 5];
339-
let ys = ~[7, 9, 11];
340-
let mut it = xs.iter().chain_(ys.iter());
341-
printfln!("%?", it.idx(0)); // prints `Some(&1)`
342-
printfln!("%?", it.idx(5)); // prints `Some(&7)`
343-
printfln!("%?", it.idx(7)); // prints `Some(&11)`
344-
printfln!("%?", it.idx(8)); // prints `None`
345-
346-
// yield two elements from the beginning, and one from the end
347-
it.next();
348-
it.next();
349-
it.next_back();
350-
351-
printfln!("%?", it.idx(0)); // prints `Some(&3)`
352-
printfln!("%?", it.idx(4)); // prints `Some(&9)`
353-
printfln!("%?", it.idx(6)); // prints `None`
354-
~~~

branches/try2/doc/tutorial-tasks.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ concurrency at this writing:
5050
* [`std::pipes`] - The underlying messaging infrastructure,
5151
* [`extra::comm`] - Additional messaging types based on `std::pipes`,
5252
* [`extra::sync`] - More exotic synchronization tools, including locks,
53-
* [`extra::arc`] - The Arc (atomically reference counted) type,
53+
* [`extra::arc`] - The ARC (atomically reference counted) type,
5454
for safely sharing immutable data,
5555
* [`extra::future`] - A type representing values that may be computed concurrently and retrieved at a later time.
5656

@@ -334,24 +334,24 @@ fn main() {
334334
}
335335
~~~
336336

337-
## Sharing immutable data without copy: Arc
337+
## Sharing immutable data without copy: ARC
338338

339339
To share immutable data between tasks, a first approach would be to only use pipes as we have seen
340340
previously. A copy of the data to share would then be made for each task. In some cases, this would
341341
add up to a significant amount of wasted memory and would require copying the same data more than
342342
necessary.
343343

344-
To tackle this issue, one can use an Atomically Reference Counted wrapper (`Arc`) as implemented in
345-
the `extra` library of Rust. With an Arc, the data will no longer be copied for each task. The Arc
344+
To tackle this issue, one can use an Atomically Reference Counted wrapper (`ARC`) as implemented in
345+
the `extra` library of Rust. With an ARC, the data will no longer be copied for each task. The ARC
346346
acts as a reference to the shared data and only this reference is shared and cloned.
347347

348-
Here is a small example showing how to use Arcs. We wish to run concurrently several computations on
348+
Here is a small example showing how to use ARCs. We wish to run concurrently several computations on
349349
a single large vector of floats. Each task needs the full vector to perform its duty.
350350
~~~
351351
# use std::vec;
352352
# use std::uint;
353353
# use std::rand;
354-
use extra::arc::Arc;
354+
use extra::arc::ARC;
355355
356356
fn pnorm(nums: &~[float], p: uint) -> float {
357357
nums.iter().fold(0.0, |a,b| a+(*b).pow(&(p as float)) ).pow(&(1f / (p as float)))
@@ -361,14 +361,14 @@ fn main() {
361361
let numbers = vec::from_fn(1000000, |_| rand::random::<float>());
362362
println(fmt!("Inf-norm = %?", *numbers.iter().max().unwrap()));
363363
364-
let numbers_arc = Arc::new(numbers);
364+
let numbers_arc = ARC(numbers);
365365
366366
for uint::range(1,10) |num| {
367367
let (port, chan) = stream();
368368
chan.send(numbers_arc.clone());
369369
370370
do spawn {
371-
let local_arc : Arc<~[float]> = port.recv();
371+
let local_arc : ARC<~[float]> = port.recv();
372372
let task_numbers = local_arc.get();
373373
println(fmt!("%u-norm = %?", num, pnorm(task_numbers, num)));
374374
}
@@ -377,42 +377,42 @@ fn main() {
377377
~~~
378378

379379
The function `pnorm` performs a simple computation on the vector (it computes the sum of its items
380-
at the power given as argument and takes the inverse power of this value). The Arc on the vector is
380+
at the power given as argument and takes the inverse power of this value). The ARC on the vector is
381381
created by the line
382382
~~~
383-
# use extra::arc::Arc;
383+
# use extra::arc::ARC;
384384
# use std::vec;
385385
# use std::rand;
386386
# let numbers = vec::from_fn(1000000, |_| rand::random::<float>());
387-
let numbers_arc=Arc::new(numbers);
387+
let numbers_arc=ARC(numbers);
388388
~~~
389389
and a clone of it is sent to each task
390390
~~~
391-
# use extra::arc::Arc;
391+
# use extra::arc::ARC;
392392
# use std::vec;
393393
# use std::rand;
394394
# let numbers=vec::from_fn(1000000, |_| rand::random::<float>());
395-
# let numbers_arc = Arc::new(numbers);
395+
# let numbers_arc = ARC(numbers);
396396
# let (port, chan) = stream();
397397
chan.send(numbers_arc.clone());
398398
~~~
399399
copying only the wrapper and not its contents.
400400

401401
Each task recovers the underlying data by
402402
~~~
403-
# use extra::arc::Arc;
403+
# use extra::arc::ARC;
404404
# use std::vec;
405405
# use std::rand;
406406
# let numbers=vec::from_fn(1000000, |_| rand::random::<float>());
407-
# let numbers_arc=Arc::new(numbers);
407+
# let numbers_arc=ARC(numbers);
408408
# let (port, chan) = stream();
409409
# chan.send(numbers_arc.clone());
410-
# let local_arc : Arc<~[float]> = port.recv();
410+
# let local_arc : ARC<~[float]> = port.recv();
411411
let task_numbers = local_arc.get();
412412
~~~
413413
and can use it as if it were local.
414414

415-
The `arc` module also implements Arcs around mutable data that are not covered here.
415+
The `arc` module also implements ARCs around mutable data that are not covered here.
416416

417417
# Handling task failure
418418

0 commit comments

Comments
 (0)