Skip to content

Commit a33b808

Browse files
committed
Auto merge of #25735 - oli-obk:rollup, r=steveklabnik
- Successful merges: #25681, #25687, #25695, #25697, #25702, #25703, #25709, #25710, #25714, #25715, #25716, #25722 - Failed merges:
2 parents 4ee6820 + a650075 commit a33b808

32 files changed

+313
-288
lines changed

configure

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/sh
22

33
msg() {
4-
echo "configure: $1"
4+
echo "configure: $*"
55
}
66

77
step_msg() {
@@ -33,8 +33,8 @@ need_ok() {
3333

3434
need_cmd() {
3535
if command -v $1 >/dev/null 2>&1
36-
then msg "found program $1"
37-
else err "need program $1"
36+
then msg "found program '$1'"
37+
else err "program '$1' is missing, please install it"
3838
fi
3939
}
4040

@@ -986,7 +986,7 @@ then
986986
| cut -d ' ' -f 2)
987987

988988
case $CFG_CLANG_VERSION in
989-
(3.2* | 3.3* | 3.4* | 3.5* | 3.6*)
989+
(3.2* | 3.3* | 3.4* | 3.5* | 3.6* | 3.7*)
990990
step_msg "found ok version of CLANG: $CFG_CLANG_VERSION"
991991
if [ -z "$CC" ]
992992
then

src/doc/reference.md

+4
Original file line numberDiff line numberDiff line change
@@ -2003,6 +2003,10 @@ arbitrarily complex configurations through nesting.
20032003

20042004
The following configurations must be defined by the implementation:
20052005

2006+
* `debug_assertions`. Enabled by default when compiling without optimizations.
2007+
This can be used to enable extra debugging code in development but not in
2008+
production. For example, it controls the behavior of the standard library's
2009+
`debug_assert!` macro.
20062010
* `target_arch = "..."`. Target CPU architecture, such as `"x86"`, `"x86_64"`
20072011
`"mips"`, `"powerpc"`, `"arm"`, or `"aarch64"`.
20082012
* `target_endian = "..."`. Endianness of the target CPU, either `"little"` or

src/doc/trpl/dining-philosophers.md

+44-42
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,28 @@
22

33
For our second project, let’s look at a classic concurrency problem. It’s
44
called ‘the dining philosophers’. It was originally conceived by Dijkstra in
5-
1965, but we’ll use the version from [this paper][paper] by Tony Hoare in 1985.
5+
1965, but we’ll use a lightly adapted version from [this paper][paper] by Tony
6+
Hoare in 1985.
67

78
[paper]: http://www.usingcsp.com/cspbook.pdf
89

910
> In ancient times, a wealthy philanthropist endowed a College to accommodate
10-
> five eminent philosophers. Each philosopher had a room in which she could
11-
> engage in her professional activity of thinking; there was also a common
11+
> five eminent philosophers. Each philosopher had a room in which they could
12+
> engage in their professional activity of thinking; there was also a common
1213
> dining room, furnished with a circular table, surrounded by five chairs, each
1314
> labelled by the name of the philosopher who was to sit in it. They sat
1415
> anticlockwise around the table. To the left of each philosopher there was
1516
> laid a golden fork, and in the centre stood a large bowl of spaghetti, which
16-
> was constantly replenished. A philosopher was expected to spend most of her
17-
> time thinking; but when she felt hungry, she went to the dining room, sat down
18-
> in her own chair, picked up her own fork on her left, and plunged it into the
19-
> spaghetti. But such is the tangled nature of spaghetti that a second fork is
20-
> required to carry it to the mouth. The philosopher therefore had also to pick
21-
> up the fork on her right. When she was finished she would put down both her
22-
> forks, get up from her chair, and continue thinking. Of course, a fork can be
23-
> used by only one philosopher at a time. If the other philosopher wants it, she
24-
> just has to wait until the fork is available again.
17+
> was constantly replenished. A philosopher was expected to spend most of
18+
> their time thinking; but when they felt hungry, they went to the dining
19+
> room, sat down in their own chair, picked up their own fork on their left,
20+
> and plunged it into the spaghetti. But such is the tangled nature of
21+
> spaghetti that a second fork is required to carry it to the mouth. The
22+
> philosopher therefore had also to pick up the fork on their right. When
23+
> they were finished they would put down both their forks, get up from their
24+
> chair, and continue thinking. Of course, a fork can be used by only one
25+
> philosopher at a time. If the other philosopher wants it, they just have
26+
> to wait until the fork is available again.
2527
2628
This classic problem shows off a few different elements of concurrency. The
2729
reason is that it's actually slightly tricky to implement: a simple
@@ -60,10 +62,10 @@ impl Philosopher {
6062
}
6163

6264
fn main() {
63-
let p1 = Philosopher::new("Baruch Spinoza");
65+
let p1 = Philosopher::new("Judith Butler");
6466
let p2 = Philosopher::new("Gilles Deleuze");
6567
let p3 = Philosopher::new("Karl Marx");
66-
let p4 = Philosopher::new("Friedrich Nietzsche");
68+
let p4 = Philosopher::new("Emma Goldman");
6769
let p5 = Philosopher::new("Michel Foucault");
6870
}
6971
```
@@ -159,10 +161,10 @@ look at `main()` again:
159161
# }
160162
#
161163
fn main() {
162-
let p1 = Philosopher::new("Baruch Spinoza");
164+
let p1 = Philosopher::new("Judith Butler");
163165
let p2 = Philosopher::new("Gilles Deleuze");
164166
let p3 = Philosopher::new("Karl Marx");
165-
let p4 = Philosopher::new("Friedrich Nietzsche");
167+
let p4 = Philosopher::new("Emma Goldman");
166168
let p5 = Philosopher::new("Michel Foucault");
167169
}
168170
```
@@ -176,10 +178,10 @@ that `new()` function, it would look like this:
176178
# name: String,
177179
# }
178180
fn main() {
179-
let p1 = Philosopher { name: "Baruch Spinoza".to_string() };
181+
let p1 = Philosopher { name: "Judith Butler".to_string() };
180182
let p2 = Philosopher { name: "Gilles Deleuze".to_string() };
181183
let p3 = Philosopher { name: "Karl Marx".to_string() };
182-
let p4 = Philosopher { name: "Friedrich Nietzche".to_string() };
184+
let p4 = Philosopher { name: "Emma Goldman".to_string() };
183185
let p5 = Philosopher { name: "Michel Foucault".to_string() };
184186
}
185187
```
@@ -211,10 +213,10 @@ impl Philosopher {
211213

212214
fn main() {
213215
let philosophers = vec![
214-
Philosopher::new("Baruch Spinoza"),
216+
Philosopher::new("Judith Butler"),
215217
Philosopher::new("Gilles Deleuze"),
216218
Philosopher::new("Karl Marx"),
217-
Philosopher::new("Friedrich Nietzsche"),
219+
Philosopher::new("Emma Goldman"),
218220
Philosopher::new("Michel Foucault"),
219221
];
220222

@@ -247,10 +249,10 @@ mention they’re done eating. Running this program should give you the followin
247249
output:
248250

249251
```text
250-
Baruch Spinoza is done eating.
252+
Judith Butler is done eating.
251253
Gilles Deleuze is done eating.
252254
Karl Marx is done eating.
253-
Friedrich Nietzsche is done eating.
255+
Emma Goldman is done eating.
254256
Michel Foucault is done eating.
255257
```
256258

@@ -285,10 +287,10 @@ impl Philosopher {
285287

286288
fn main() {
287289
let philosophers = vec![
288-
Philosopher::new("Baruch Spinoza"),
290+
Philosopher::new("Judith Butler"),
289291
Philosopher::new("Gilles Deleuze"),
290292
Philosopher::new("Karl Marx"),
291-
Philosopher::new("Friedrich Nietzsche"),
293+
Philosopher::new("Emma Goldman"),
292294
Philosopher::new("Michel Foucault"),
293295
];
294296

@@ -323,14 +325,14 @@ simulate the time it takes a philosopher to eat.
323325
If you run this program, you should see each philosopher eat in turn:
324326

325327
```text
326-
Baruch Spinoza is eating.
327-
Baruch Spinoza is done eating.
328+
Judith Butler is eating.
329+
Judith Butler is done eating.
328330
Gilles Deleuze is eating.
329331
Gilles Deleuze is done eating.
330332
Karl Marx is eating.
331333
Karl Marx is done eating.
332-
Friedrich Nietzsche is eating.
333-
Friedrich Nietzsche is done eating.
334+
Emma Goldman is eating.
335+
Emma Goldman is done eating.
334336
Michel Foucault is eating.
335337
Michel Foucault is done eating.
336338
```
@@ -366,10 +368,10 @@ impl Philosopher {
366368

367369
fn main() {
368370
let philosophers = vec![
369-
Philosopher::new("Baruch Spinoza"),
371+
Philosopher::new("Judith Butler"),
370372
Philosopher::new("Gilles Deleuze"),
371373
Philosopher::new("Karl Marx"),
372-
Philosopher::new("Friedrich Nietzsche"),
374+
Philosopher::new("Emma Goldman"),
373375
Philosopher::new("Michel Foucault"),
374376
];
375377

@@ -458,11 +460,11 @@ We have multi-threading!
458460
```text
459461
Gilles Deleuze is eating.
460462
Gilles Deleuze is done eating.
461-
Friedrich Nietzsche is eating.
462-
Friedrich Nietzsche is done eating.
463+
Emma Goldman is eating.
464+
Emma Goldman is done eating.
463465
Michel Foucault is eating.
464-
Baruch Spinoza is eating.
465-
Baruch Spinoza is done eating.
466+
Judith Butler is eating.
467+
Judith Butler is done eating.
466468
Karl Marx is eating.
467469
Karl Marx is done eating.
468470
Michel Foucault is done eating.
@@ -532,10 +534,10 @@ fn main() {
532534
]});
533535

534536
let philosophers = vec![
535-
Philosopher::new("Baruch Spinoza", 0, 1),
537+
Philosopher::new("Judith Butler", 0, 1),
536538
Philosopher::new("Gilles Deleuze", 1, 2),
537539
Philosopher::new("Karl Marx", 2, 3),
538-
Philosopher::new("Friedrich Nietzsche", 3, 4),
540+
Philosopher::new("Emma Goldman", 3, 4),
539541
Philosopher::new("Michel Foucault", 0, 4),
540542
];
541543

@@ -643,10 +645,10 @@ count will go up, and when each thread ends, it will go back down.
643645

644646
```rust,ignore
645647
let philosophers = vec![
646-
Philosopher::new("Baruch Spinoza", 0, 1),
648+
Philosopher::new("Judith Butler", 0, 1),
647649
Philosopher::new("Gilles Deleuze", 1, 2),
648650
Philosopher::new("Karl Marx", 2, 3),
649-
Philosopher::new("Friedrich Nietzsche", 3, 4),
651+
Philosopher::new("Emma Goldman", 3, 4),
650652
Philosopher::new("Michel Foucault", 0, 4),
651653
];
652654
```
@@ -679,12 +681,12 @@ and so you’ll get some output like this:
679681

680682
```text
681683
Gilles Deleuze is eating.
682-
Friedrich Nietzsche is eating.
683-
Friedrich Nietzsche is done eating.
684+
Emma Goldman is eating.
685+
Emma Goldman is done eating.
684686
Gilles Deleuze is done eating.
685-
Baruch Spinoza is eating.
687+
Judith Butler is eating.
686688
Karl Marx is eating.
687-
Baruch Spinoza is done eating.
689+
Judith Butler is done eating.
688690
Michel Foucault is eating.
689691
Karl Marx is done eating.
690692
Michel Foucault is done eating.

src/doc/trpl/guessing-game.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -637,7 +637,7 @@ When we wrote `let guess = String::new()`, Rust was able to infer that `guess`
637637
should be a `String`, and so it doesn’t make us write out the type. And with
638638
our `secret_number`, there are a number of types which can have a value
639639
between one and a hundred: `i32`, a thirty-two-bit number, or `u32`, an
640-
unsigned thirty-two-bit number, or `i64`, a sixty-four-bit number. Or others.
640+
unsigned thirty-two-bit number, or `i64`, a sixty-four-bit number or others.
641641
So far, that hasn’t mattered, and so Rust defaults to an `i32`. However, here,
642642
Rust doesn’t know how to compare the `guess` and the `secret_number`. They
643643
need to be the same type. Ultimately, we want to convert the `String` we

src/liballoc/rc.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@
144144
//! // At the end of the method, gadget_owner, gadget1 and gadget2 get
145145
//! // destroyed. There are now no strong (`Rc<T>`) references to the gadgets.
146146
//! // Once they get destroyed, the Gadgets get destroyed. This zeroes the
147-
//! // reference count on Gadget Man, so he gets destroyed as well.
147+
//! // reference count on Gadget Man, they get destroyed as well.
148148
//! }
149149
//! ```
150150

src/libcollections/str.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -1110,9 +1110,8 @@ impl str {
11101110
/// such as leaving a combining character as the first code point of the
11111111
/// string.
11121112
///
1113-
/// Due to the design of UTF-8, this operation is `O(end)`. See `slice`,
1114-
/// `slice_to` and `slice_from` for `O(1)` variants that use byte indices
1115-
/// rather than code point indices.
1113+
/// Due to the design of UTF-8, this operation is `O(end)`. Use slicing
1114+
/// syntax if you want to use byte indices rather than codepoint indices.
11161115
///
11171116
/// # Panics
11181117
///

src/libcollections/vec.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
//! A growable list type with heap-allocated contents, written `Vec<T>` but
1212
//! pronounced 'vector.'
1313
//!
14-
//! Vectors have `O(1)` indexing, push (to the end) and pop (from the end).
14+
//! Vectors have `O(1)` indexing, amortized `O(1)` push (to the end) and
15+
//! `O(1)` pop (from the end).
1516
//!
1617
//! # Examples
1718
//!

0 commit comments

Comments
 (0)