Skip to content

Commit 111585b

Browse files
committed
---
yaml --- r: 271444 b: refs/heads/auto c: 4c71347 h: refs/heads/master
1 parent dda0571 commit 111585b

File tree

75 files changed

+614
-3212
lines changed

Some content is hidden

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

75 files changed

+614
-3212
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
88
refs/tags/release-0.3.1: 495bae036dfe5ec6ceafd3312b4dca48741e845b
99
refs/tags/release-0.4: e828ea2080499553b97dfe33b3f4d472b4562ad7
1010
refs/tags/release-0.5: 7e3bcfbf21278251ee936ad53e92e9b719702d73
11-
refs/heads/auto: d7bf3d328457d6b49b1c92d752ef2022c0b0bded
11+
refs/heads/auto: 4c71347e94a420ea063a17f017ee20d516919091
1212
refs/tags/release-0.6: b4ebcfa1812664df5e142f0134a5faea3918544c
1313
refs/tags/0.1: b19db808c2793fe2976759b85a355c3ad8c8b336
1414
refs/tags/0.2: 1754d02027f2924bed83b0160ee340c7f41d5ea1

branches/auto/configure

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1034,7 +1034,7 @@ then
10341034
if [ -n "$CFG_OSX_CLANG_VERSION" ]
10351035
then
10361036
case $CFG_OSX_CLANG_VERSION in
1037-
(7.0* | 7.1* | 7.2* | 7.3*)
1037+
(7.0* | 7.1* | 7.2*)
10381038
step_msg "found ok version of APPLE CLANG: $CFG_OSX_CLANG_VERSION"
10391039
;;
10401040
(*)

branches/auto/mk/crates.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ DEPS_rustc := syntax fmt_macros flate arena serialize getopts rbml rustc_front\
9797
log graphviz rustc_llvm rustc_back rustc_data_structures\
9898
rustc_const_eval
9999
DEPS_rustc_back := std syntax rustc_llvm rustc_front flate log libc
100-
DEPS_rustc_borrowck := rustc rustc_front rustc_mir log graphviz syntax
100+
DEPS_rustc_borrowck := rustc rustc_front log graphviz syntax
101101
DEPS_rustc_data_structures := std log serialize
102102
DEPS_rustc_driver := arena flate getopts graphviz libc rustc rustc_back rustc_borrowck \
103103
rustc_typeck rustc_mir rustc_resolve log syntax serialize rustc_llvm \

branches/auto/src/bootstrap/build/check.rs

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,3 @@ pub fn linkcheck(build: &Build, stage: u32, host: &str) {
1616
build.run(build.tool_cmd(&compiler, "linkchecker")
1717
.arg(build.out.join(host).join("doc")));
1818
}
19-
20-
pub fn cargotest(build: &Build, stage: u32, host: &str) {
21-
let ref compiler = Compiler::new(stage, host);
22-
build.run(build.tool_cmd(compiler, "cargotest")
23-
.env("RUSTC", build.compiler_path(compiler))
24-
.env("RUSTDOC", build.rustdoc(compiler))
25-
.arg(&build.cargo));
26-
}

branches/auto/src/bootstrap/build/mod.rs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -183,9 +183,6 @@ impl Build {
183183
compile::tool(self, stage, target.target,
184184
"error_index_generator");
185185
}
186-
ToolCargoTest { stage } => {
187-
compile::tool(self, stage, target.target, "cargotest");
188-
}
189186
DocBook { stage } => {
190187
doc::rustbook(self, stage, target.target, "book", &doc_out);
191188
}
@@ -213,9 +210,6 @@ impl Build {
213210
CheckLinkcheck { stage } => {
214211
check::linkcheck(self, stage, target.target);
215212
}
216-
CheckCargoTest { stage } => {
217-
check::cargotest(self, stage, target.target);
218-
}
219213

220214
DistDocs { stage } => dist::docs(self, stage, target.target),
221215
DistMingw { _dummy } => dist::mingw(self, target.target),

branches/auto/src/bootstrap/build/step.rs

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ macro_rules! targets {
4747
(tool_linkchecker, ToolLinkchecker { stage: u32 }),
4848
(tool_rustbook, ToolRustbook { stage: u32 }),
4949
(tool_error_index, ToolErrorIndex { stage: u32 }),
50-
(tool_cargotest, ToolCargoTest { stage: u32 }),
5150

5251
// Steps for long-running native builds. Ideally these wouldn't
5352
// actually exist and would be part of build scripts, but for now
@@ -74,7 +73,6 @@ macro_rules! targets {
7473
// target to depend on a bunch of others.
7574
(check, Check { stage: u32, compiler: Compiler<'a> }),
7675
(check_linkcheck, CheckLinkcheck { stage: u32 }),
77-
(check_cargotest, CheckCargoTest { stage: u32 }),
7876

7977
// Distribution targets, creating tarballs
8078
(dist, Dist { stage: u32 }),
@@ -294,9 +292,6 @@ impl<'a> Step<'a> {
294292
Source::CheckLinkcheck { stage } => {
295293
vec![self.tool_linkchecker(stage), self.doc(stage)]
296294
}
297-
Source::CheckCargoTest { stage } => {
298-
vec![self.tool_cargotest(stage)]
299-
}
300295

301296
Source::ToolLinkchecker { stage } => {
302297
vec![self.libstd(self.compiler(stage))]
@@ -305,9 +300,6 @@ impl<'a> Step<'a> {
305300
Source::ToolRustbook { stage } => {
306301
vec![self.librustc(self.compiler(stage))]
307302
}
308-
Source::ToolCargoTest { stage } => {
309-
vec![self.libstd(self.compiler(stage))]
310-
}
311303

312304
Source::DistDocs { stage } => vec![self.doc(stage)],
313305
Source::DistMingw { _dummy: _ } => Vec::new(),

branches/auto/src/bootstrap/mk/Makefile.in

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,6 @@ standalone-docs:
3838
$(Q)$(BOOTSTRAP) --step doc-standalone
3939
check:
4040
$(Q)$(BOOTSTRAP) --step check
41-
cargotest:
42-
$(Q)$(BOOTSTRAP) --step cargotest
4341
dist:
4442
$(Q)$(BOOTSTRAP) --step dist
4543

branches/auto/src/doc/book/lifetimes.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -282,12 +282,14 @@ to it.
282282

283283
## Lifetime Elision
284284

285-
Rust supports powerful local type inference in the bodies of functions but not in their item signatures.
286-
It's forbidden to allow reasoning about types based on the item signature alone.
287-
However, for ergonomic reasons, a very restricted secondary inference algorithm called
288-
“lifetime elision” does apply when judging lifetimes. Lifetime elision is concerned solely to infer
289-
lifetime parameters using three easily memorizable and unambiguous rules. This means lifetime elision
290-
acts as a shorthand for writing an item signature, while not hiding
285+
Rust supports powerful local type inference in function bodies, but it’s
286+
forbidden in item signatures to allow reasoning about the types based on
287+
the item signature alone. However, for ergonomic reasons a very restricted
288+
secondary inference algorithm called “lifetime elision” applies in function
289+
signatures. It infers only based on the signature components themselves and not
290+
based on the body of the function, only infers lifetime parameters, and does
291+
this with only three easily memorizable and unambiguous rules. This makes
292+
lifetime elision a shorthand for writing an item signature, while not hiding
291293
away the actual types involved as full local inference would if applied to it.
292294

293295
When talking about lifetime elision, we use the term *input lifetime* and

branches/auto/src/doc/reference.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1905,8 +1905,6 @@ type int8_t = i8;
19051905
- `should_panic` - indicates that this test function should panic, inverting the success condition.
19061906
- `cold` - The function is unlikely to be executed, so optimize it (and calls
19071907
to it) differently.
1908-
- `naked` - The function utilizes a custom ABI or custom inline ASM that requires
1909-
epilogue and prologue to be skipped.
19101908

19111909
### Static-only attributes
19121910

branches/auto/src/libcollections/string.rs

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ use core::iter::FromIterator;
6161
use core::mem;
6262
use core::ops::{self, Add, Index, IndexMut};
6363
use core::ptr;
64+
use core::slice;
6465
use core::str::pattern::Pattern;
6566
use rustc_unicode::char::{decode_utf16, REPLACEMENT_CHARACTER};
6667
use rustc_unicode::str as unicode_str;
@@ -969,7 +970,22 @@ impl String {
969970
pub fn push(&mut self, ch: char) {
970971
match ch.len_utf8() {
971972
1 => self.vec.push(ch as u8),
972-
_ => self.vec.extend_from_slice(ch.encode_utf8().as_slice()),
973+
ch_len => {
974+
let cur_len = self.len();
975+
// This may use up to 4 bytes.
976+
self.vec.reserve(ch_len);
977+
978+
unsafe {
979+
// Attempt to not use an intermediate buffer by just pushing bytes
980+
// directly onto this string.
981+
let slice = slice::from_raw_parts_mut(self.vec
982+
.as_mut_ptr()
983+
.offset(cur_len as isize),
984+
ch_len);
985+
let used = ch.encode_utf8(slice).unwrap_or(0);
986+
self.vec.set_len(cur_len + used);
987+
}
988+
}
973989
}
974990
}
975991

@@ -1120,10 +1136,9 @@ impl String {
11201136
let len = self.len();
11211137
assert!(idx <= len);
11221138
assert!(self.is_char_boundary(idx));
1123-
let bits = ch.encode_utf8();
1124-
let bits = bits.as_slice();
1125-
let amt = bits.len();
1126-
self.vec.reserve(amt);
1139+
self.vec.reserve(4);
1140+
let mut bits = [0; 4];
1141+
let amt = ch.encode_utf8(&mut bits).unwrap();
11271142

11281143
unsafe {
11291144
ptr::copy(self.vec.as_ptr().offset(idx as isize),

0 commit comments

Comments
 (0)