Skip to content

Commit c61bee0

Browse files
committed
---
yaml --- r: 274171 b: refs/heads/stable c: c331ed0 h: refs/heads/master i: 274169: 3339f3a 274167: 82b5578
1 parent 9080322 commit c61bee0

File tree

333 files changed

+7124
-8612
lines changed

Some content is hidden

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

333 files changed

+7124
-8612
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ refs/heads/tmp: e06d2ad9fcd5027bcaac5b08fc9aa39a49d0ecd3
2929
refs/tags/1.0.0-alpha.2: 4c705f6bc559886632d3871b04f58aab093bfa2f
3030
refs/tags/homu-tmp: c0221c8897db309a79990367476177b1230bb264
3131
refs/tags/1.0.0-beta: 8cbb92b53468ee2b0c2d3eeb8567005953d40828
32-
refs/heads/stable: 228afd725129fe141ae934ed08814927107c0dad
32+
refs/heads/stable: c331ed044335d10f802a86a48b655c677b4a7238
3333
refs/tags/1.0.0: 55bd4f8ff2b323f317ae89e254ce87162d52a375
3434
refs/tags/1.1.0: bc3c16f09287e5545c1d3f76b7abd54f2eca868b
3535
refs/tags/1.2.0: f557861f822c34f07270347b94b5280de20a597e

branches/stable/COPYRIGHT

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ terms.
77
Longer version:
88

99
The Rust Project is copyright 2016, The Rust Project
10-
Developers (given in the file AUTHORS.txt).
10+
Developers.
1111

1212
Licensed under the Apache License, Version 2.0
1313
<LICENSE-APACHE or

branches/stable/Makefile.in

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,12 +220,19 @@ endif
220220
# The test suite
221221
ifneq ($(strip $(findstring check,$(MAKECMDGOALS)) \
222222
$(findstring test,$(MAKECMDGOALS)) \
223+
$(findstring perf,$(MAKECMDGOALS)) \
223224
$(findstring tidy,$(MAKECMDGOALS))),)
224225
CFG_INFO := $(info cfg: including test rules)
225226
include $(CFG_SRC_DIR)mk/tests.mk
226227
include $(CFG_SRC_DIR)mk/grammar.mk
227228
endif
228229

230+
# Performance and benchmarking
231+
ifneq ($(findstring perf,$(MAKECMDGOALS)),)
232+
CFG_INFO := $(info cfg: including perf rules)
233+
include $(CFG_SRC_DIR)mk/perf.mk
234+
endif
235+
229236
# Copy all the distributables to another directory for binary install
230237
ifneq ($(strip $(findstring prepare,$(MAKECMDGOALS)) \
231238
$(findstring dist,$(MAKECMDGOALS)) \

branches/stable/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ build.
7878
Download [MinGW from
7979
here](http://mingw-w64.org/doku.php/download/mingw-builds), and choose the
8080
`threads=win32,exceptions=dwarf/seh` flavor when installing. After installing,
81-
add its `bin` directory to your `PATH`. This is due to [#28260](https://github.com/rust-lang/rust/issues/28260), in the future,
81+
add its `bin` directory to your `PATH`. This is due to #28260, in the future,
8282
installing from pacman should be just fine.
8383
8484
```

branches/stable/configure

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -550,7 +550,7 @@ CFG_SELF="$0"
550550
CFG_CONFIGURE_ARGS="$@"
551551

552552

553-
case "${CFG_SRC_DIR}" in
553+
case "${CFG_SRC_DIR}" in
554554
*\ * )
555555
err "The path to the rust source directory contains spaces, which is not supported"
556556
;;
@@ -892,13 +892,6 @@ then
892892
CFG_DISABLE_JEMALLOC=1
893893
fi
894894

895-
if [ $CFG_OSTYPE = pc-windows-gnu ]
896-
then
897-
# FIXME(#31030) - there's not a great reason to disable jemalloc here
898-
step_msg "on Windows, disabling jemalloc"
899-
CFG_DISABLE_JEMALLOC=1
900-
fi
901-
902895
# OS X 10.9, gcc is actually clang. This can cause some confusion in the build
903896
# system, so if we find that gcc is clang, we should just use clang directly.
904897
if [ $CFG_OSTYPE = apple-darwin -a -z "$CFG_ENABLE_CLANG" ]
@@ -1042,7 +1035,7 @@ then
10421035
if [ -n "$CFG_OSX_CLANG_VERSION" ]
10431036
then
10441037
case $CFG_OSX_CLANG_VERSION in
1045-
(7.0* | 7.1* | 7.2*)
1038+
(7.0*)
10461039
step_msg "found ok version of APPLE CLANG: $CFG_OSX_CLANG_VERSION"
10471040
;;
10481041
(*)
@@ -1361,22 +1354,16 @@ for h in $CFG_HOST
13611354
do
13621355
for t in $CFG_TARGET
13631356
do
1364-
# host bin dir stage0
1365-
make_dir $h/stage0/bin
1366-
13671357
# host lib dir stage0
13681358
make_dir $h/stage0/lib
13691359

1370-
# host test dir stage0
1371-
make_dir $h/stage0/test
1372-
13731360
# target bin dir stage0
13741361
make_dir $h/stage0/lib/rustlib/$t/bin
13751362

13761363
# target lib dir stage0
13771364
make_dir $h/stage0/lib/rustlib/$t/lib
13781365

1379-
for i in 1 2 3
1366+
for i in 0 1 2 3
13801367
do
13811368
# host bin dir
13821369
make_dir $h/stage$i/bin

branches/stable/mk/crates.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ DEPS_rustc_front := std syntax log serialize
102102
DEPS_rustc_lint := rustc log syntax
103103
DEPS_rustc_llvm := native:rustllvm libc std rustc_bitflags
104104
DEPS_rustc_metadata := rustc rustc_front syntax rbml
105-
DEPS_rustc_passes := syntax rustc core rustc_front
105+
DEPS_rustc_passes := syntax rustc core
106106
DEPS_rustc_mir := rustc rustc_front syntax
107107
DEPS_rustc_resolve := arena rustc rustc_front log syntax
108108
DEPS_rustc_platform_intrinsics := rustc rustc_llvm

branches/stable/mk/main.mk

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
######################################################################
1414

1515
# The version number
16-
CFG_RELEASE_NUM=1.8.0
16+
CFG_RELEASE_NUM=1.7.0
1717

1818
# An optional number to put after the label, e.g. '.2' -> '-beta.2'
1919
# NB Make sure it starts with a dot to conform to semver pre-release
@@ -522,6 +522,14 @@ STAGE$(1)_T_$(2)_H_$(3) := \
522522
$$(CFG_RUSTC_FLAGS) $$(EXTRAFLAGS_STAGE$(1)) --target=$(2)) \
523523
$$(RUSTC_FLAGS_$(2))
524524

525+
PERF_STAGE$(1)_T_$(2)_H_$(3) := \
526+
$$(Q)$$(call CFG_RUN_TARG_$(3),$(1), \
527+
$$(CFG_PERF_TOOL) \
528+
$$(HBIN$(1)_H_$(3))/rustc$$(X_$(3)) \
529+
--cfg $$(CFGFLAG$(1)_T_$(2)_H_$(3)) \
530+
$$(CFG_RUSTC_FLAGS) $$(EXTRAFLAGS_STAGE$(1)) --target=$(2)) \
531+
$$(RUSTC_FLAGS_$(2))
532+
525533
endef
526534

527535
$(foreach build,$(CFG_HOST), \

branches/stable/mk/perf.mk

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Copyright 2012 The Rust Project Developers. See the COPYRIGHT
2+
# file at the top-level directory of this distribution and at
3+
# http://rust-lang.org/COPYRIGHT.
4+
#
5+
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
# option. This file may not be copied, modified, or distributed
9+
# except according to those terms.
10+
11+
12+
ifdef CFG_PERF_TOOL
13+
rustc-perf$(X): $(CFG_BUILD)/stage2/bin/rustc$(X_$(CFG_BUILD))
14+
@$(call E, perf compile: $@)
15+
$(PERF_STAGE2_T_$(CFG_BUILD)_H_$(CFG_BUILD)) \
16+
-o $@ $(COMPILER_CRATE) >rustc-perf.err 2>&1
17+
$(Q)rm -f $(LIBRUSTC_GLOB)
18+
else
19+
rustc-perf$(X): $(CFG_BUILD)/stage2/bin/rustc$(X_$(CFG_BUILD))
20+
$(Q)touch $@
21+
endif
22+
23+
perf: check-stage2-perf rustc-perf$(X_$(CFG_BUILD))
24+
$(Q)find $(CFG_BUILD)/test/perf -name \*.err | xargs cat
25+
$(Q)cat rustc-perf.err

branches/stable/mk/platform.mk

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,23 @@ define DEF_GOOD_VALGRIND
7777
endef
7878
$(foreach t,$(CFG_TARGET),$(eval $(call DEF_GOOD_VALGRIND,$(t))))
7979

80+
ifneq ($(findstring linux,$(CFG_OSTYPE)),)
81+
ifdef CFG_PERF
82+
ifneq ($(CFG_PERF_WITH_LOGFD),)
83+
CFG_PERF_TOOL := $(CFG_PERF) stat -r 3 --log-fd 2
84+
else
85+
CFG_PERF_TOOL := $(CFG_PERF) stat -r 3
86+
endif
87+
else
88+
ifdef CFG_VALGRIND
89+
CFG_PERF_TOOL := \
90+
$(CFG_VALGRIND) --tool=cachegrind --cache-sim=yes --branch-sim=yes
91+
else
92+
CFG_PERF_TOOL := /usr/bin/time --verbose
93+
endif
94+
endif
95+
endif
96+
8097
AR := ar
8198

8299
define SET_FROM_CFG

branches/stable/mk/tests.mk

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,11 @@ ifdef CFG_VALGRIND
5050
CTEST_RUNTOOL = --runtool "$(CFG_VALGRIND)"
5151
endif
5252

53+
# Arguments to the perf tests
54+
ifdef CFG_PERF_TOOL
55+
CTEST_PERF_RUNTOOL = --runtool "$(CFG_PERF_TOOL)"
56+
endif
57+
5358
CTEST_TESTARGS := $(TESTARGS)
5459

5560
# --bench is only relevant for crate tests, not for the compile tests
@@ -65,6 +70,12 @@ endif
6570
# This prevents tests from failing with some locales (fixes #17423).
6671
export LC_ALL=C
6772

73+
# If we're running perf then set this environment variable
74+
# to put the benchmarks into 'hard mode'
75+
ifeq ($(MAKECMDGOALS),perf)
76+
export RUST_BENCH=1
77+
endif
78+
6879
TEST_LOG_FILE=tmp/check-stage$(1)-T-$(2)-H-$(3)-$(4).log
6980
TEST_OK_FILE=tmp/check-stage$(1)-T-$(2)-H-$(3)-$(4).ok
7081

@@ -475,6 +486,10 @@ CODEGEN_RS := $(wildcard $(S)src/test/codegen/*.rs)
475486
CODEGEN_CC := $(wildcard $(S)src/test/codegen/*.cc)
476487
RUSTDOCCK_RS := $(wildcard $(S)src/test/rustdoc/*.rs)
477488

489+
# perf tests are the same as bench tests only they run under
490+
# a performance monitor.
491+
PERF_RS := $(wildcard $(S)src/test/bench/*.rs)
492+
478493
RPASS_TESTS := $(RPASS_RS)
479494
RPASS_VALGRIND_TESTS := $(RPASS_VALGRIND_RS)
480495
RPASS_FULL_TESTS := $(RPASS_FULL_RS)
@@ -484,6 +499,7 @@ RFAIL_TESTS := $(RFAIL_RS)
484499
CFAIL_TESTS := $(CFAIL_RS)
485500
PFAIL_TESTS := $(PFAIL_RS)
486501
BENCH_TESTS := $(BENCH_RS)
502+
PERF_TESTS := $(PERF_RS)
487503
PRETTY_TESTS := $(PRETTY_RS)
488504
DEBUGINFO_GDB_TESTS := $(DEBUGINFO_GDB_RS)
489505
DEBUGINFO_LLDB_TESTS := $(DEBUGINFO_LLDB_RS)
@@ -535,6 +551,11 @@ CTEST_BUILD_BASE_bench = bench
535551
CTEST_MODE_bench = run-pass
536552
CTEST_RUNTOOL_bench = $(CTEST_RUNTOOL)
537553

554+
CTEST_SRC_BASE_perf = bench
555+
CTEST_BUILD_BASE_perf = perf
556+
CTEST_MODE_perf = run-pass
557+
CTEST_RUNTOOL_perf = $(CTEST_PERF_RUNTOOL)
558+
538559
CTEST_SRC_BASE_debuginfo-gdb = debuginfo
539560
CTEST_BUILD_BASE_debuginfo-gdb = debuginfo-gdb
540561
CTEST_MODE_debuginfo-gdb = debuginfo-gdb
@@ -604,7 +625,7 @@ TEST_SREQ$(1)_T_$(2)_H_$(3) = \
604625
$$(HBIN$(1)_H_$(3))/compiletest$$(X_$(3)) \
605626
$$(SREQ$(1)_T_$(2)_H_$(3))
606627

607-
# Rules for the cfail/rfail/rpass/bench test runner
628+
# Rules for the cfail/rfail/rpass/bench/perf test runner
608629

609630
# The tests select when to use debug configuration on their own;
610631
# remove directive, if present, from CFG_RUSTC_FLAGS (issue #7898).
@@ -668,6 +689,7 @@ CTEST_DEPS_rfail_$(1)-T-$(2)-H-$(3) = $$(RFAIL_TESTS)
668689
CTEST_DEPS_cfail_$(1)-T-$(2)-H-$(3) = $$(CFAIL_TESTS)
669690
CTEST_DEPS_pfail_$(1)-T-$(2)-H-$(3) = $$(PFAIL_TESTS)
670691
CTEST_DEPS_bench_$(1)-T-$(2)-H-$(3) = $$(BENCH_TESTS)
692+
CTEST_DEPS_perf_$(1)-T-$(2)-H-$(3) = $$(PERF_TESTS)
671693
CTEST_DEPS_debuginfo-gdb_$(1)-T-$(2)-H-$(3) = $$(DEBUGINFO_GDB_TESTS)
672694
CTEST_DEPS_debuginfo-lldb_$(1)-T-$(2)-H-$(3) = $$(DEBUGINFO_LLDB_TESTS) \
673695
$(S)src/etc/lldb_batchmode.py \
@@ -739,7 +761,7 @@ endif
739761
endef
740762

741763
CTEST_NAMES = rpass rpass-valgrind rpass-full rfail-full cfail-full rfail cfail pfail \
742-
bench debuginfo-gdb debuginfo-lldb codegen rustdocck
764+
bench perf debuginfo-gdb debuginfo-lldb codegen rustdocck
743765

744766
$(foreach host,$(CFG_HOST), \
745767
$(eval $(foreach target,$(CFG_TARGET), \
@@ -912,6 +934,7 @@ TEST_GROUPS = \
912934
cfail \
913935
pfail \
914936
bench \
937+
perf \
915938
rmake \
916939
rustdocck \
917940
debuginfo-gdb \

branches/stable/src/doc/book/ffi.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -478,8 +478,6 @@ are:
478478
* `aapcs`
479479
* `cdecl`
480480
* `fastcall`
481-
* `vectorcall`
482-
This is currently hidden behind the `abi_vectorcall` gate and is subject to change.
483481
* `Rust`
484482
* `rust-intrinsic`
485483
* `system`

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -353,8 +353,8 @@ fn frob<'a, 'b>(s: &'a str, t: &'b str) -> &str; // Expanded: Output lifetime is
353353
fn get_mut(&mut self) -> &mut T; // elided
354354
fn get_mut<'a>(&'a mut self) -> &'a mut T; // expanded
355355
356-
fn args<T: ToCStr>(&mut self, args: &[T]) -> &mut Command; // elided
357-
fn args<'a, 'b, T: ToCStr>(&'a mut self, args: &'b [T]) -> &'a mut Command; // expanded
356+
fn args<T:ToCStr>(&mut self, args: &[T]) -> &mut Command; // elided
357+
fn args<'a, 'b, T:ToCStr>(&'a mut self, args: &'b [T]) -> &'a mut Command; // expanded
358358
359359
fn new(buf: &mut [u8]) -> BufWriter; // elided
360360
fn new<'a>(buf: &'a mut [u8]) -> BufWriter<'a>; // expanded

branches/stable/src/doc/book/macros.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -285,11 +285,9 @@ This expands to
285285

286286
```text
287287
const char *state = "reticulating splines";
288-
{
289-
int state = get_log_state();
290-
if (state > 0) {
291-
printf("log(%d): %s\n", state, state);
292-
}
288+
int state = get_log_state();
289+
if (state > 0) {
290+
printf("log(%d): %s\n", state, state);
293291
}
294292
```
295293

branches/stable/src/doc/book/primitive-types.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -164,9 +164,6 @@ copying. For example, you might want to reference only one line of a file read
164164
into memory. By nature, a slice is not created directly, but from an existing
165165
variable binding. Slices have a defined length, can be mutable or immutable.
166166

167-
Internally, slices are represented as a pointer to the beginning of the data
168-
and a length.
169-
170167
## Slicing syntax
171168

172169
You can use a combo of `&` and `[]` to create a slice from various things. The

branches/stable/src/doc/nomicon/lifetime-elision.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ fn frob(s: &str, t: &str) -> &str; // ILLEGAL
5555
fn get_mut(&mut self) -> &mut T; // elided
5656
fn get_mut<'a>(&'a mut self) -> &'a mut T; // expanded
5757
58-
fn args<T: ToCStr>(&mut self, args: &[T]) -> &mut Command // elided
59-
fn args<'a, 'b, T: ToCStr>(&'a mut self, args: &'b [T]) -> &'a mut Command // expanded
58+
fn args<T:ToCStr>(&mut self, args: &[T]) -> &mut Command // elided
59+
fn args<'a, 'b, T:ToCStr>(&'a mut self, args: &'b [T]) -> &'a mut Command // expanded
6060
6161
fn new(buf: &mut [u8]) -> BufWriter; // elided
6262
fn new<'a>(buf: &'a mut [u8]) -> BufWriter<'a> // expanded

branches/stable/src/doc/nomicon/vec-final.md

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -226,11 +226,7 @@ impl<T> Iterator for RawValIter<T> {
226226
} else {
227227
unsafe {
228228
let result = ptr::read(self.start);
229-
self.start = if mem::size_of::<T>() == 0 {
230-
(self.start as usize + 1) as *const _
231-
} else {
232-
self.start.offset(1)
233-
};
229+
self.start = self.start.offset(1);
234230
Some(result)
235231
}
236232
}
@@ -250,11 +246,7 @@ impl<T> DoubleEndedIterator for RawValIter<T> {
250246
None
251247
} else {
252248
unsafe {
253-
self.end = if mem::size_of::<T>() == 0 {
254-
(self.end as usize - 1) as *const _
255-
} else {
256-
self.end.offset(-1)
257-
};
249+
self.end = self.end.offset(-1);
258250
Some(ptr::read(self.end))
259251
}
260252
}

branches/stable/src/doc/nomicon/vec-zsts.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -140,8 +140,8 @@ impl<T> Iterator for RawValIter<T> {
140140
self.start = if mem::size_of::<T>() == 0 {
141141
(self.start as usize + 1) as *const _
142142
} else {
143-
self.start.offset(1)
144-
};
143+
self.start.offset(1);
144+
}
145145
Some(result)
146146
}
147147
}
@@ -164,8 +164,8 @@ impl<T> DoubleEndedIterator for RawValIter<T> {
164164
self.end = if mem::size_of::<T>() == 0 {
165165
(self.end as usize - 1) as *const _
166166
} else {
167-
self.end.offset(-1)
168-
};
167+
self.end.offset(-1);
168+
}
169169
Some(ptr::read(self.end))
170170
}
171171
}

branches/stable/src/doc/reference.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2390,9 +2390,6 @@ The currently implemented features of the reference compiler are:
23902390

23912391
* - `type_ascription` - Allows type ascription expressions `expr: Type`.
23922392

2393-
* - `abi_vectorcall` - Allows the usage of the vectorcall calling convention
2394-
(e.g. `extern "vectorcall" func fn_();`)
2395-
23962393
If a feature is promoted to a language feature, then all existing programs will
23972394
start to receive compilation warnings about `#![feature]` directives which enabled
23982395
the new feature (because the directive is no longer necessary). However, if a

0 commit comments

Comments
 (0)