Skip to content

Commit e6cca15

Browse files
committed
---
yaml --- r: 219743 b: refs/heads/snap-stage3 c: 8890089 h: refs/heads/master i: 219741: 89793df 219739: c9f2e79 219735: 20f3fe2 219727: 6967188 219711: 658b0f3 v: v3
1 parent 9a505dd commit e6cca15

File tree

102 files changed

+1249
-2321
lines changed

Some content is hidden

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

102 files changed

+1249
-2321
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
refs/heads/master: c044791d80ea0dc5c4b57b6030a67b69f8510239
3-
refs/heads/snap-stage3: 8a599c8cef871d842eea0a6217cfce23093d09cf
3+
refs/heads/snap-stage3: 88900895562e0ab5e0642724fe9dd71eeda79a7a
44
refs/heads/try: b53c0f93eedcdedd4fd89bccc5a3a09d1c5cd23e
55
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
66
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596

branches/snap-stage3/Makefile.in

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@
6262
# * tidy-basic - show file / line stats
6363
# * tidy-errors - show the highest rustc error code
6464
# * tidy-features - show the status of language and lib features
65-
# * rustc-stage$(stage) - Only build up to a specific stage
6665
#
6766
# Then mix in some of these environment variables to harness the
6867
# ultimate power of The Rust Build System.
@@ -91,7 +90,7 @@
9190
#
9291
# # Rust recipes for build system success
9392
#
94-
# // Modifying libstd? Use this command to run unit tests just on your change
93+
# // Modifying libstd? Use this comment to run unit tests just on your change
9594
# make check-stage1-std NO_REBUILD=1 NO_BENCH=1
9695
#
9796
# // Added a run-pass test? Use this to test running your test

branches/snap-stage3/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Rust is a fast systems programming language that guarantees
44
memory safety and offers painless concurrency ([no data races]).
55
It does not employ a garbage collector and has minimal runtime overhead.
66

7-
This repo contains the code for the compiler (`rustc`), as well
7+
This repo contains the code for `rustc`, the Rust compiler, as well
88
as standard libraries, tools and documentation for Rust.
99

1010
[no data races]: http://blog.rust-lang.org/2015/04/10/Fearless-Concurrency.html
Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
% The Rust Pointer Guide
1+
% The (old) Rust Pointer Guide
22

3-
This content has been removed, with no direct replacement. Rust only
4-
has two built-in pointer types now,
5-
[references](book/references-and-borrowing.html) and [raw
6-
pointers](book/raw-pointers.html). Older Rusts had many more pointer
7-
types, they’re gone now.
3+
This content has moved into
4+
[the Rust Programming Language book](book/pointers.html).

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

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,6 @@ series of small examples.
2020

2121
[rbe]: http://rustbyexample.com/
2222

23-
# The Standard Library
24-
25-
We have [API documentation for the entire standard
26-
library](std/index.html). There's a list of crates on the left with more
27-
specific sections, or you can use the search bar at the top to search for
28-
something if you know its name.
29-
3023
# Community & Getting Help
3124

3225
If you need help with something, or just want to talk about Rust with others,
@@ -82,6 +75,13 @@ There are questions that are asked quite often, so we've made FAQs for them:
8275
* [Project FAQ](complement-project-faq.html)
8376
* [How to submit a bug report](https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports)
8477

78+
# The Standard Library
79+
80+
We have [API documentation for the entire standard
81+
library](std/index.html). There's a list of crates on the left with more
82+
specific sections, or you can use the search bar at the top to search for
83+
something if you know its name.
84+
8585
# The Error Index
8686

8787
If you encounter an error while compiling your code you may be able to look it

branches/snap-stage3/src/doc/trpl/academic-research.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Recommended for inspiration and a better understanding of Rust's background.
1212
* [Macros that work together](https://www.cs.utah.edu/plt/publications/jfp12-draft-fcdf.pdf)
1313
* [Traits: composable units of behavior](http://scg.unibe.ch/archive/papers/Scha03aTraits.pdf)
1414
* [Alias burying](http://www.cs.uwm.edu/faculty/boyland/papers/unique-preprint.ps) - We tried something similar and abandoned it.
15-
* [External uniqueness is unique enough](http://www.cs.uu.nl/research/techreps/UU-CS-2002-048.html)
15+
* [External uniqueness is unique enough](http://www.computingscience.nl/research/techreps/repo/CS-2002/2002-048.pdf)
1616
* [Uniqueness and Reference Immutability for Safe Parallelism](https://research.microsoft.com/pubs/170528/msr-tr-2012-79.pdf)
1717
* [Region Based Memory Management](http://www.cs.ucla.edu/~palsberg/tba/papers/tofte-talpin-iandc97.pdf)
1818

@@ -26,10 +26,10 @@ Recommended for inspiration and a better understanding of Rust's background.
2626
* [Dynamic circular work stealing deque](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.170.1097&rep=rep1&type=pdf) - The Chase/Lev deque
2727
* [Work-first and help-first scheduling policies for async-finish task parallelism](http://www.cs.rice.edu/%7Eyguo/pubs/PID824943.pdf) - More general than fully-strict work stealing
2828
* [A Java fork/join calamity](http://www.coopsoft.com/ar/CalamityArticle.html) - critique of Java's fork/join library, particularly its application of work stealing to non-strict computation
29-
* [Scheduling techniques for concurrent systems](http://www.stanford.edu/~ouster/cgi-bin/papers/coscheduling.pdf)
29+
* [Scheduling techniques for concurrent systems](http://www.ece.rutgers.edu/%7Eparashar/Classes/ece572-papers/05/ps-ousterhout.pdf)
3030
* [Contention aware scheduling](http://www.blagodurov.net/files/a8-blagodurov.pdf)
3131
* [Balanced work stealing for time-sharing multicores](http://www.cse.ohio-state.edu/hpcs/WWW/HTML/publications/papers/TR-12-1.pdf)
32-
* [Three layer cake for shared-memory programming](http://dl.acm.org/citation.cfm?id=1953616&dl=ACM&coll=DL&CFID=524387192&CFTOKEN=44362705)
32+
* [Three layer cake](http://www.upcrc.illinois.edu/workshops/paraplop10/papers/paraplop10_submission_8.pdf)
3333
* [Non-blocking steal-half work queues](http://www.cs.bgu.ac.il/%7Ehendlerd/papers/p280-hendler.pdf)
3434
* [Reagents: expressing and composing fine-grained concurrency](http://www.mpi-sws.org/~turon/reagents.pdf)
3535
* [Algorithms for scalable synchronization of shared-memory multiprocessors](https://www.cs.rochester.edu/u/scott/papers/1991_TOCS_synch.pdf)

branches/snap-stage3/src/doc/trpl/documentation.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,8 @@ pub fn new(value: T) -> Rc<T> {
3333
```
3434

3535
This code generates documentation that looks [like this][rc-new]. I've left the
36-
implementation out, with a regular comment in its place.
37-
38-
The first thing to notice about this annotation is that it uses
39-
`///` instead of `//`. The triple slash
36+
implementation out, with a regular comment in its place. That's the first thing
37+
to notice about this annotation: it uses `///`, instead of `//`. The triple slash
4038
indicates a documentation comment.
4139

4240
Documentation comments are written in Markdown.
@@ -377,7 +375,7 @@ $ rustdoc --test path/to/my/crate/root.rs
377375
$ cargo test
378376
```
379377

380-
That's right, `cargo test` tests embedded documentation too. However,
378+
That's right, `cargo test` tests embedded documentation too. However,
381379
`cargo test` will not test binary crates, only library ones. This is
382380
due to the way `rustdoc` works: it links against the library to be tested,
383381
but with a binary, there’s nothing to link to.

branches/snap-stage3/src/doc/trpl/link-args.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Note that this feature is currently hidden behind the `feature(link_args)` gate
1717
because this is not a sanctioned way of performing linking. Right now rustc
1818
shells out to the system linker, so it makes sense to provide extra command line
1919
arguments, but this will not always be the case. In the future rustc may use
20-
LLVM directly to link native libraries, in which case `link_args` will have no
20+
LLVM directly to link native libraries in which case `link_args` will have no
2121
meaning.
2222

2323
It is highly recommended to *not* use this attribute, and rather use the more

branches/snap-stage3/src/doc/trpl/references-and-borrowing.md

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -336,9 +336,7 @@ In other words, `y` is only valid for the scope where `x` exists. As soon as
336336
the borrow ‘doesn’t live long enough’ because it’s not valid for the right
337337
amount of time.
338338

339-
The same problem occurs when the reference is declared _before_ the variable it
340-
refers to. This is because resources within the same scope are freed in the
341-
opposite order they were declared:
339+
The same problem occurs when the reference is declared _before_ the variable it refers to:
342340

343341
```rust,ignore
344342
let y: &i32;
@@ -371,6 +369,3 @@ statement 1 at 3:14
371369
println!("{}", y);
372370
}
373371
```
374-
375-
In the above example, `y` is declared before `x`, meaning that `y` lives longer
376-
than `x`, which is not allowed.

branches/snap-stage3/src/libcollections/bit.rs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,6 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
#![deprecated(reason = "BitVec and BitSet have been migrated to cargo as bit-vec and bit-set",
12-
since = "1.3.0")]
13-
#![unstable(feature = "collections", reason = "deprecated")]
14-
#![allow(deprecated)]
15-
1611
// FIXME(Gankro): BitVec and BitSet are very tightly coupled. Ideally (for
1712
// maintenance), they should be in separate files/modules, with BitSet only
1813
// using BitVec's public API. This will be hard for performance though, because

branches/snap-stage3/src/libcollections/fmt.rs

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -128,15 +128,15 @@
128128
//! This allows multiple actual types to be formatted via `{:x}` (like `i8` as
129129
//! well as `isize`). The current mapping of types to traits is:
130130
//!
131-
//! * *nothing* ⇒ [`Display`](trait.Display.html)
132-
//! * `?` ⇒ [`Debug`](trait.Debug.html)
133-
//! * `o` ⇒ [`Octal`](trait.Octal.html)
134-
//! * `x` ⇒ [`LowerHex`](trait.LowerHex.html)
135-
//! * `X` ⇒ [`UpperHex`](trait.UpperHex.html)
136-
//! * `p` ⇒ [`Pointer`](trait.Pointer.html)
137-
//! * `b` ⇒ [`Binary`](trait.Binary.html)
138-
//! * `e` ⇒ [`LowerExp`](trait.LowerExp.html)
139-
//! * `E` ⇒ [`UpperExp`](trait.UpperExp.html)
131+
//! * *nothing* ⇒ `Display`
132+
//! * `?` ⇒ `Debug`
133+
//! * `o` ⇒ `Octal`
134+
//! * `x` ⇒ `LowerHex`
135+
//! * `X` ⇒ `UpperHex`
136+
//! * `p` ⇒ `Pointer`
137+
//! * `b` ⇒ `Binary`
138+
//! * `e` ⇒ `LowerExp`
139+
//! * `E` ⇒ `UpperExp`
140140
//!
141141
//! What this means is that any type of argument which implements the
142142
//! `fmt::Binary` trait can then be formatted with `{:b}`. Implementations
@@ -367,11 +367,11 @@
367367
//! should always be printed.
368368
//! * '-' - Currently not used
369369
//! * '#' - This flag is indicates that the "alternate" form of printing should
370-
//! be used. The alternate forms are:
371-
//! * `#?` - pretty-print the `Debug` formatting
370+
//! be used. For array slices, the alternate form omits the brackets.
371+
//! For the integer formatting traits, the alternate forms are:
372372
//! * `#x` - precedes the argument with a "0x"
373373
//! * `#X` - precedes the argument with a "0x"
374-
//! * `#b` - precedes the argument with a "0b"
374+
//! * `#t` - precedes the argument with a "0b"
375375
//! * `#o` - precedes the argument with a "0o"
376376
//! * '0' - This is used to indicate for integer formats that the padding should
377377
//! both be done with a `0` character as well as be sign-aware. A format
@@ -408,20 +408,19 @@
408408
//!
409409
//! There are three possible ways to specify the desired `precision`:
410410
//!
411-
//! 1. An integer `.N`:
412-
//!
413-
//! the integer `N` itself is the precision.
414-
//!
415-
//! 2. An integer followed by dollar sign `.N$`:
411+
//! There are three possible ways to specify the desired `precision`:
412+
//! 1. An integer `.N`,
413+
//! 2. an integer followed by dollar sign `.N$`, or
414+
//! 3. an asterisk `.*`.
416415
//!
417-
//! use format *argument* `N` (which must be a `usize`) as the precision.
416+
//! The first specification, `.N`, means the integer `N` itself is the precision.
418417
//!
419-
//! 3. An asterisk `.*`:
418+
//! The second, `.N$`, means use format *argument* `N` (which must be a `usize`) as the precision.
420419
//!
421-
//! `.*` means that this `{...}` is associated with *two* format inputs rather than one: the
422-
//! first input holds the `usize` precision, and the second holds the value to print. Note that
423-
//! in this case, if one uses the format string `{<arg>:<spec>.*}`, then the `<arg>` part refers
424-
//! to the *value* to print, and the `precision` must come in the input preceding `<arg>`.
420+
//! Finally, `.*` means that this `{...}` is associated with *two* format inputs rather than one:
421+
//! the first input holds the `usize` precision, and the second holds the value to print. Note
422+
//! that in this case, if one uses the format string `{<arg>:<spec>.*}`, then the `<arg>` part
423+
//! refers to the *value* to print, and the `precision` must come in the input preceding `<arg>`.
425424
//!
426425
//! For example, these:
427426
//!

branches/snap-stage3/src/libcollections/lib.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,7 @@ extern crate alloc;
7777
#[cfg(test)] extern crate test;
7878

7979
pub use binary_heap::BinaryHeap;
80-
#[allow(deprecated)]
8180
pub use bit_vec::BitVec;
82-
#[allow(deprecated)]
8381
pub use bit_set::BitSet;
8482
pub use btree_map::BTreeMap;
8583
pub use btree_set::BTreeSet;
@@ -113,13 +111,11 @@ pub mod vec_map;
113111

114112
#[unstable(feature = "bitvec", reason = "RFC 509")]
115113
pub mod bit_vec {
116-
#![allow(deprecated)]
117114
pub use bit::{BitVec, Iter};
118115
}
119116

120117
#[unstable(feature = "bitset", reason = "RFC 509")]
121118
pub mod bit_set {
122-
#![allow(deprecated)]
123119
pub use bit::{BitSet, Union, Intersection, Difference, SymmetricDifference};
124120
pub use bit::SetIter as Iter;
125121
}

branches/snap-stage3/src/libcollectionstest/str.rs

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -705,7 +705,7 @@ fn test_split_at() {
705705
#[should_panic]
706706
fn test_split_at_boundscheck() {
707707
let s = "ศไทย中华Việt Nam";
708-
s.split_at(1);
708+
let (a, b) = s.split_at(1);
709709
}
710710

711711
#[test]
@@ -1820,14 +1820,6 @@ mod pattern {
18201820
Match (4, 6),
18211821
Reject(6, 7),
18221822
]);
1823-
make_test!(str_searcher_ascii_haystack_seq, "bb", "abbcbbbbd", [
1824-
Reject(0, 1),
1825-
Match (1, 3),
1826-
Reject(3, 4),
1827-
Match (4, 6),
1828-
Match (6, 8),
1829-
Reject(8, 9),
1830-
]);
18311823
make_test!(str_searcher_empty_needle_ascii_haystack, "", "abbcbbd", [
18321824
Match (0, 0),
18331825
Reject(0, 1),

branches/snap-stage3/src/libcore/atomic.rs

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -272,13 +272,13 @@ impl AtomicBool {
272272
unsafe { atomic_swap(self.v.get(), val, order) > 0 }
273273
}
274274

275-
/// Stores a value into the `bool` if the current value is the same as the `current` value.
275+
/// Stores a value into the bool if the current value is the same as the expected value.
276276
///
277-
/// The return value is always the previous value. If it is equal to `current`, then the value
278-
/// was updated.
277+
/// The return value is always the previous value. If it is equal to `old`, then the value was
278+
/// updated.
279279
///
280-
/// `compare_and_swap` also takes an `Ordering` argument which describes the memory ordering of
281-
/// this operation.
280+
/// `swap` also takes an `Ordering` argument which describes the memory ordering of this
281+
/// operation.
282282
///
283283
/// # Examples
284284
///
@@ -295,11 +295,11 @@ impl AtomicBool {
295295
/// ```
296296
#[inline]
297297
#[stable(feature = "rust1", since = "1.0.0")]
298-
pub fn compare_and_swap(&self, current: bool, new: bool, order: Ordering) -> bool {
299-
let current = if current { UINT_TRUE } else { 0 };
298+
pub fn compare_and_swap(&self, old: bool, new: bool, order: Ordering) -> bool {
299+
let old = if old { UINT_TRUE } else { 0 };
300300
let new = if new { UINT_TRUE } else { 0 };
301301

302-
unsafe { atomic_compare_and_swap(self.v.get(), current, new, order) > 0 }
302+
unsafe { atomic_compare_and_swap(self.v.get(), old, new, order) > 0 }
303303
}
304304

305305
/// Logical "and" with a boolean value.
@@ -515,10 +515,10 @@ impl AtomicIsize {
515515
unsafe { atomic_swap(self.v.get(), val, order) }
516516
}
517517

518-
/// Stores a value into the `isize` if the current value is the same as the `current` value.
518+
/// Stores a value into the isize if the current value is the same as the expected value.
519519
///
520-
/// The return value is always the previous value. If it is equal to `current`, then the value
521-
/// was updated.
520+
/// The return value is always the previous value. If it is equal to `old`, then the value was
521+
/// updated.
522522
///
523523
/// `compare_and_swap` also takes an `Ordering` argument which describes the memory ordering of
524524
/// this operation.
@@ -538,8 +538,8 @@ impl AtomicIsize {
538538
/// ```
539539
#[inline]
540540
#[stable(feature = "rust1", since = "1.0.0")]
541-
pub fn compare_and_swap(&self, current: isize, new: isize, order: Ordering) -> isize {
542-
unsafe { atomic_compare_and_swap(self.v.get(), current, new, order) }
541+
pub fn compare_and_swap(&self, old: isize, new: isize, order: Ordering) -> isize {
542+
unsafe { atomic_compare_and_swap(self.v.get(), old, new, order) }
543543
}
544544

545545
/// Add an isize to the current value, returning the previous value.
@@ -709,10 +709,10 @@ impl AtomicUsize {
709709
unsafe { atomic_swap(self.v.get(), val, order) }
710710
}
711711

712-
/// Stores a value into the `usize` if the current value is the same as the `current` value.
712+
/// Stores a value into the usize if the current value is the same as the expected value.
713713
///
714-
/// The return value is always the previous value. If it is equal to `current`, then the value
715-
/// was updated.
714+
/// The return value is always the previous value. If it is equal to `old`, then the value was
715+
/// updated.
716716
///
717717
/// `compare_and_swap` also takes an `Ordering` argument which describes the memory ordering of
718718
/// this operation.
@@ -732,8 +732,8 @@ impl AtomicUsize {
732732
/// ```
733733
#[inline]
734734
#[stable(feature = "rust1", since = "1.0.0")]
735-
pub fn compare_and_swap(&self, current: usize, new: usize, order: Ordering) -> usize {
736-
unsafe { atomic_compare_and_swap(self.v.get(), current, new, order) }
735+
pub fn compare_and_swap(&self, old: usize, new: usize, order: Ordering) -> usize {
736+
unsafe { atomic_compare_and_swap(self.v.get(), old, new, order) }
737737
}
738738

739739
/// Add to the current usize, returning the previous value.
@@ -910,10 +910,10 @@ impl<T> AtomicPtr<T> {
910910
unsafe { atomic_swap(self.p.get() as *mut usize, ptr as usize, order) as *mut T }
911911
}
912912

913-
/// Stores a value into the pointer if the current value is the same as the `current` value.
913+
/// Stores a value into the pointer if the current value is the same as the expected value.
914914
///
915-
/// The return value is always the previous value. If it is equal to `current`, then the value
916-
/// was updated.
915+
/// The return value is always the previous value. If it is equal to `old`, then the value was
916+
/// updated.
917917
///
918918
/// `compare_and_swap` also takes an `Ordering` argument which describes the memory ordering of
919919
/// this operation.
@@ -933,9 +933,9 @@ impl<T> AtomicPtr<T> {
933933
/// ```
934934
#[inline]
935935
#[stable(feature = "rust1", since = "1.0.0")]
936-
pub fn compare_and_swap(&self, current: *mut T, new: *mut T, order: Ordering) -> *mut T {
936+
pub fn compare_and_swap(&self, old: *mut T, new: *mut T, order: Ordering) -> *mut T {
937937
unsafe {
938-
atomic_compare_and_swap(self.p.get() as *mut usize, current as usize,
938+
atomic_compare_and_swap(self.p.get() as *mut usize, old as usize,
939939
new as usize, order) as *mut T
940940
}
941941
}

branches/snap-stage3/src/libcore/cmp.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,6 @@ impl Ordering {
166166
///
167167
/// - total and antisymmetric: exactly one of `a < b`, `a == b` or `a > b` is true; and
168168
/// - transitive, `a < b` and `b < c` implies `a < c`. The same must hold for both `==` and `>`.
169-
///
170-
/// When this trait is `derive`d, it produces a lexicographic ordering.
171169
#[stable(feature = "rust1", since = "1.0.0")]
172170
pub trait Ord: Eq + PartialOrd<Self> {
173171
/// This method returns an `Ordering` between `self` and `other`.

0 commit comments

Comments
 (0)