Skip to content

Commit 23a0bfa

Browse files
committed
---
yaml --- r: 276982 b: refs/heads/try c: 42ea682 h: refs/heads/master
1 parent 098a38f commit 23a0bfa

File tree

331 files changed

+4585
-2337
lines changed

Some content is hidden

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

331 files changed

+4585
-2337
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
refs/heads/master: 6dbb0e86aec11050480beb76eade6fb805010ba7
33
refs/heads/snap-stage3: 235d77457d80b549dad3ac36d94f235208a1eafb
4-
refs/heads/try: e2921d510dca1def06896bf64afc4d80aa73c608
4+
refs/heads/try: 42ea682fc495b6ec362db0aafba69e56c7aa0a9c
55
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
66
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
77
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try/RELEASES.md

Lines changed: 208 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,211 @@
1+
Version 1.8.0 (2016-04-14)
2+
==========================
3+
4+
Language
5+
--------
6+
7+
* Rust supports overloading of compound assignment statements like
8+
`+=` by implementing the [`AddAssign`], [`SubAssign`],
9+
[`MulAssign`], [`DivAssign`], [`RemAssign`], [`BitAndAssign`],
10+
[`BitOrAssign`], [`BitXorAssign`], [`ShlAssign`], or [`ShrAssign`]
11+
traits. [RFC 953].
12+
* Empty structs can be defined with braces, as in `struct Foo { }`, in
13+
addition to the non-braced form, `struct Foo;`. [RFC 218].
14+
15+
Libraries
16+
---------
17+
18+
* Stabilized APIs:
19+
* [`str::encode_utf16`][] (renamed from `utf16_units`)
20+
* [`str::EncodeUtf16`][] (renamed from `Utf16Units`)
21+
* [`Ref::map`]
22+
* [`RefMut::map`]
23+
* [`ptr::drop_in_place`]
24+
* [`time::Instant`]
25+
* [`time::SystemTime`]
26+
* [`Instant::now`]
27+
* [`Instant::duration_since`][] (renamed from `duration_from_earlier`)
28+
* [`Instant::elapsed`]
29+
* [`SystemTime::now`]
30+
* [`SystemTime::duration_since`][] (renamed from `duration_from_earlier`)
31+
* [`SystemTime::elapsed`]
32+
* Various `Add`/`Sub` impls for `Time` and `SystemTime`
33+
* [`SystemTimeError`]
34+
* [`SystemTimeError::duration`]
35+
* Various impls for `SystemTimeError`
36+
* [`UNIX_EPOCH`]
37+
* [`AddAssign`], [`SubAssign`], [`MulAssign`], [`DivAssign`],
38+
[`RemAssign`], [`BitAndAssign`], [`BitOrAssign`],
39+
[`BitXorAssign`], [`ShlAssign`], [`ShrAssign`].
40+
* [The `write!` and `writeln!` macros correctly emit errors if any of
41+
their arguments can't be formatted][1.8w].
42+
* [Various I/O functions support large files on 32-bit Linux][1.8l].
43+
* [The Unix-specific `raw` modules, which contain a number of
44+
redefined C types are deprecated][1.8r], including `os::raw::unix`,
45+
`os::raw::macos`, and `os::raw::linux`. These modules defined types
46+
such as `ino_t` and `dev_t`. The inconsistency of these definitions
47+
across platforms was making it difficult to implement `std`
48+
correctly. Those that need these definitions should use the `libc`
49+
crate. [RFC 1415].
50+
* The Unix-specific `MetadataExt` traits, including
51+
`os::unix::fs::MetadataExt`, which expose values such as inode
52+
numbers [no longer return platform-specific types][1.8r], but
53+
instead return widened integers. [RFC 1415].
54+
* [`btree_set::{IntoIter, Iter, Range}` are covariant][1.8cv].
55+
* [Atomic loads and stores are not volatile][1.8a].
56+
* [All types in `sync::mpsc` implement `fmt::Debug`][1.8mp].
57+
58+
Performance
59+
-----------
60+
61+
* [Inlining hash functions lead to a 3% compile-time improvement in
62+
some workloads][1.8h].
63+
* When using jemalloc, its symbols are [unprefixed so that it
64+
overrides the libc malloc implementation][1.8h]. This means that for
65+
rustc, LLVM is now using jemalloc, which results in a 6%
66+
compile-time improvement on a specific workload.
67+
* [Avoid quadratic growth in function size due to cleanups][1.8cu].
68+
69+
Misc
70+
----
71+
72+
* [32-bit MSVC builds finally implement unwinding][1.8ms].
73+
i686-pc-windows-msvc is now considered a tier-1 platform.
74+
* [The `--print targets` flag prints a list of supported targets][1.8t].
75+
* [The `--print cfg` flag prints the `cfg`s defined for the current
76+
target][1.8cf].
77+
* [`rustc` can be built with an new Cargo-based build system, written
78+
in Rust][1.8b]. It will eventually replace Rust's Makefile-based
79+
build system. To enable it configure with `configure --rustbuild`.
80+
* [Errors for non-exhaustive `match` patterns now list up to 3 missing
81+
variants while also indicating the total number of missing variants
82+
if more than 3][1.8m].
83+
* [Executable stacks are disabled on Linux and BSD][1.8nx].
84+
* The Rust Project now publishes binary releases of the standard
85+
library for a number of tier-2 targets:
86+
`armv7-unknown-linux-gnueabihf`, `powerpc-unknown-linux-gnu`,
87+
`powerpc64-unknown-linux-gnu`, `powerpc64le-unknown-linux-gnu`
88+
`x86_64-rumprun-netbsd`. These can be installed with
89+
tools such as [multirust][1.8mr].
90+
91+
Cargo
92+
-----
93+
94+
* [`cargo init` creates a new Cargo project in the current
95+
directory][1.8ci]. It is otherwise like `cargo new`.
96+
* [Cargo has configuration keys for `-v` and
97+
`--color`][1.8cc]. `verbose` and `color`, respectively, go in the
98+
`[term]` section of `.cargo/config`.
99+
* [Configuration keys that evaluate to strings or integers can be set
100+
via environment variables][1.8ce]. For example the `build.jobs` key
101+
can be set via `CARGO_BUILD_JOBS`. Environment variables take
102+
precedence over config files.
103+
* [Target-specific dependencies support Rust `cfg` syntax for
104+
describing targets][1.8cfg] so that dependencies for multiple
105+
targets can be specified together. [RFC 1361].
106+
* [The environment variables `CARGO_TARGET_ROOT`, `RUSTC`, and
107+
`RUSTDOC` take precedence over the `build.target-dir`,
108+
`build.rustc`, and `build.rustdoc` configuration values][1.8cv].
109+
* [The child process tree is killed on Windows when Cargo is
110+
killed][1.8ck].
111+
* [The `build.target` configuration value sets the target platform,
112+
like `--target`][1.8ct].
113+
114+
Compatibility Notes
115+
-------------------
116+
117+
* [Unstable compiler flags have been further restricted][1.8u]. Since
118+
1.0 `-Z` flags have been considered unstable, and other flags that
119+
were considered unstable additionally required passing `-Z
120+
unstable-options` to access. Unlike unstable language and library
121+
features though, these options have been accessible on the stable
122+
release channel. Going forward, *new unstable flags will not be
123+
available on the stable release channel*, and old unstable flags
124+
will warn about their usage. In the future, all unstable flags will
125+
be unavailable on the stable release channel.
126+
* [It is no longer possible to `match` on empty enum variants using
127+
the `Variant(..)` syntax][1.8v]. This has been a warning since 1.6.
128+
* The Unix-specific `MetadataExt` traits, including
129+
`os::unix::fs::MetadataExt`, which expose values such as inode
130+
numbers [no longer return platform-specific types][1.8r], but
131+
instead return widened integers. [RFC 1415].
132+
* [Modules sourced from the filesystem cannot appear within arbitrary
133+
blocks, but only within other modules][1.8m].
134+
* [`--cfg` compiler flags are parsed strictly as identifiers][1.8c].
135+
* On Unix, [stack overflow triggers a runtime abort instead of a
136+
SIGSEGV][1.8so].
137+
* [`Command::spawn` and its equivalents return an error if any of
138+
its command-line arguments contain interior `NUL`s][1.8n].
139+
* [Tuple and unit enum variants from other crates are in the type
140+
namespace][1.8tn].
141+
* [On Windows `rustc` emits `.lib` files for the `staticlib` library
142+
type instead of `.a` files][1.8st]. Additionally, for the MSVC
143+
toolchain, `rustc` emits import libraries named `foo.dll.lib`
144+
instead of `foo.lib`.
145+
146+
147+
[1.8a]: https://github.com/rust-lang/rust/pull/30962
148+
[1.8b]: https://github.com/rust-lang/rust/pull/31123
149+
[1.8c]: https://github.com/rust-lang/rust/pull/31530
150+
[1.8cc]: https://github.com/rust-lang/cargo/pull/2397
151+
[1.8ce]: https://github.com/rust-lang/cargo/pull/2398
152+
[1.8cf]: https://github.com/rust-lang/rust/pull/31278
153+
[1.8cfg]: https://github.com/rust-lang/cargo/pull/2328
154+
[1.8ci]: https://github.com/rust-lang/cargo/pull/2081
155+
[1.8ck]: https://github.com/rust-lang/cargo/pull/2370
156+
[1.8ct]: https://github.com/rust-lang/cargo/pull/2335
157+
[1.8cu]: https://github.com/rust-lang/rust/pull/31390
158+
[1.8cv]: https://github.com/rust-lang/cargo/issues/2365
159+
[1.8cv]: https://github.com/rust-lang/rust/pull/30998
160+
[1.8h]: https://github.com/rust-lang/rust/pull/31460
161+
[1.8l]: https://github.com/rust-lang/rust/pull/31668
162+
[1.8m]: https://github.com/rust-lang/rust/pull/31020
163+
[1.8m]: https://github.com/rust-lang/rust/pull/31534
164+
[1.8mp]: https://github.com/rust-lang/rust/pull/30894
165+
[1.8mr]: https://users.rust-lang.org/t/multirust-0-8-with-cross-std-installation/4901
166+
[1.8ms]: https://github.com/rust-lang/rust/pull/30448
167+
[1.8n]: https://github.com/rust-lang/rust/pull/31056
168+
[1.8nx]: https://github.com/rust-lang/rust/pull/30859
169+
[1.8r]: https://github.com/rust-lang/rust/pull/31551
170+
[1.8so]: https://github.com/rust-lang/rust/pull/31333
171+
[1.8st]: https://github.com/rust-lang/rust/pull/29520
172+
[1.8t]: https://github.com/rust-lang/rust/pull/31358
173+
[1.8tn]: https://github.com/rust-lang/rust/pull/30882
174+
[1.8u]: https://github.com/rust-lang/rust/pull/31793
175+
[1.8v]: https://github.com/rust-lang/rust/pull/31757
176+
[1.8w]: https://github.com/rust-lang/rust/pull/31904
177+
[RFC 1361]: https://github.com/rust-lang/rfcs/blob/master/text/1361-cargo-cfg-dependencies.md
178+
[RFC 1415]: https://github.com/rust-lang/rfcs/blob/master/text/1415-trim-std-os.md
179+
[RFC 218]: https://github.com/rust-lang/rfcs/blob/master/text/0218-empty-struct-with-braces.md
180+
[RFC 953]: https://github.com/rust-lang/rfcs/blob/master/text/0953-op-assign.md
181+
[`AddAssign`]: http://doc.rust-lang.org/nightly/std/ops/trait.AddAssign.html
182+
[`BitAndAssign`]: http://doc.rust-lang.org/nightly/std/ops/trait.BitAndAssign.html
183+
[`BitOrAssign`]: http://doc.rust-lang.org/nightly/std/ops/trait.BitOrAssign.html
184+
[`BitXorAssign`]: http://doc.rust-lang.org/nightly/std/ops/trait.BitXorAssign.html
185+
[`DivAssign`]: http://doc.rust-lang.org/nightly/std/ops/trait.DivAssign.html
186+
[`Instant::duration_since`]: http://doc.rust-lang.org/nightly/std/time/struct.Instant.html#method.duration_since
187+
[`Instant::elapsed`]: http://doc.rust-lang.org/nightly/std/time/struct.Instant.html#method.elapsed
188+
[`Instant::now`]: http://doc.rust-lang.org/nightly/std/time/struct.Instant.html#method.now
189+
[`MulAssign`]: http://doc.rust-lang.org/nightly/std/ops/trait.MulAssign.html
190+
[`Ref::map`]: http://doc.rust-lang.org/nightly/std/cell/struct.Ref.html#method.map
191+
[`RefMut::map`]: http://doc.rust-lang.org/nightly/std/cell/struct.RefMut.html#method.map
192+
[`RemAssign`]: http://doc.rust-lang.org/nightly/std/ops/trait.RemAssign.html
193+
[`ShlAssign`]: http://doc.rust-lang.org/nightly/std/ops/trait.ShlAssign.html
194+
[`ShrAssign`]: http://doc.rust-lang.org/nightly/std/ops/trait.ShrAssign.html
195+
[`SubAssign`]: http://doc.rust-lang.org/nightly/std/ops/trait.SubAssign.html
196+
[`SystemTime::duration_since`]: http://doc.rust-lang.org/nightly/std/time/struct.SystemTime.html#method.duration_since
197+
[`SystemTime::elapsed`]: http://doc.rust-lang.org/nightly/std/time/struct.SystemTime.html#method.elapsed
198+
[`SystemTime::now`]: http://doc.rust-lang.org/nightly/std/time/struct.SystemTime.html#method.now
199+
[`SystemTimeError::duration`]: http://doc.rust-lang.org/nightly/std/time/struct.SystemTimeError.html#method.duration
200+
[`SystemTimeError`]: http://doc.rust-lang.org/nightly/std/time/struct.SystemTimeError.html
201+
[`UNIX_EPOCH`]: http://doc.rust-lang.org/nightly/std/time/constant.UNIX_EPOCH.html
202+
[`ptr::drop_in_place`]: http://doc.rust-lang.org/nightly/std/ptr/fn.drop_in_place.html
203+
[`str::EncodeUtf16`]: http://doc.rust-lang.org/nightly/std/str/struct.EncodeUtf16.html
204+
[`str::encode_utf16`]: http://doc.rust-lang.org/nightly/std/primitive.str.html#method.encode_utf16
205+
[`time::Instant`]: http://doc.rust-lang.org/nightly/std/time/struct.Instant.html
206+
[`time::SystemTime`]: http://doc.rust-lang.org/nightly/std/time/struct.SystemTime.html
207+
208+
1209
Version 1.7.0 (2016-03-03)
2210
==========================
3211

branches/try/configure

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -717,18 +717,6 @@ if [ -n "$CFG_ENABLE_DEBUG_JEMALLOC" ]; then putvar CFG_ENABLE_DEBUG_JEMALLOC; f
717717

718718
if [ -n "$CFG_ENABLE_ORBIT" ]; then putvar CFG_ENABLE_ORBIT; fi
719719

720-
# A magic value that allows the compiler to use unstable features
721-
# during the bootstrap even when doing so would normally be an error
722-
# because of feature staging or because the build turns on
723-
# warnings-as-errors and unstable features default to warnings. The
724-
# build has to match this key in an env var. Meant to be a mild
725-
# deterrent from users just turning on unstable features on the stable
726-
# channel.
727-
# Basing CFG_BOOTSTRAP_KEY on CFG_BOOTSTRAP_KEY lets it get picked up
728-
# during a Makefile reconfig.
729-
CFG_BOOTSTRAP_KEY="${CFG_BOOTSTRAP_KEY-`date +%H:%M:%S`}"
730-
putvar CFG_BOOTSTRAP_KEY
731-
732720
step_msg "looking for build programs"
733721

734722
probe_need CFG_CURLORWGET curl wget

branches/try/mk/crates.mk

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ RUSTC_CRATES := rustc rustc_typeck rustc_mir rustc_borrowck rustc_resolve rustc_
5858
rustc_trans rustc_back rustc_llvm rustc_privacy rustc_lint \
5959
rustc_data_structures rustc_platform_intrinsics \
6060
rustc_plugin rustc_metadata rustc_passes rustc_save_analysis \
61-
rustc_const_eval rustc_const_math
61+
rustc_const_eval rustc_const_math rustc_incremental
6262
HOST_CRATES := syntax syntax_ext $(RUSTC_CRATES) rustdoc fmt_macros \
6363
flate arena graphviz rbml log serialize
6464
TOOLS := compiletest rustdoc rustc rustbook error_index_generator
@@ -105,7 +105,8 @@ DEPS_rustc_data_structures := std log serialize
105105
DEPS_rustc_driver := arena flate getopts graphviz libc rustc rustc_back rustc_borrowck \
106106
rustc_typeck rustc_mir rustc_resolve log syntax serialize rustc_llvm \
107107
rustc_trans rustc_privacy rustc_lint rustc_plugin \
108-
rustc_metadata syntax_ext rustc_passes rustc_save_analysis rustc_const_eval
108+
rustc_metadata syntax_ext rustc_passes rustc_save_analysis rustc_const_eval \
109+
rustc_incremental
109110
DEPS_rustc_lint := rustc log syntax rustc_const_eval
110111
DEPS_rustc_llvm := native:rustllvm libc std rustc_bitflags
111112
DEPS_rustc_metadata := rustc syntax rbml rustc_const_math
@@ -117,7 +118,8 @@ DEPS_rustc_plugin := rustc rustc_metadata syntax rustc_mir
117118
DEPS_rustc_privacy := rustc log syntax
118119
DEPS_rustc_trans := arena flate getopts graphviz libc rustc rustc_back rustc_mir \
119120
log syntax serialize rustc_llvm rustc_platform_intrinsics \
120-
rustc_const_math rustc_const_eval
121+
rustc_const_math rustc_const_eval rustc_incremental
122+
DEPS_rustc_incremental := rbml rustc serialize rustc_data_structures
121123
DEPS_rustc_save_analysis := rustc log syntax
122124
DEPS_rustc_typeck := rustc syntax rustc_platform_intrinsics rustc_const_math \
123125
rustc_const_eval

branches/try/mk/main.mk

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,17 @@ CFG_PRERELEASE_VERSION=.1
2424
# versions in the same place
2525
CFG_FILENAME_EXTRA=$(shell printf '%s' $(CFG_RELEASE)$(CFG_EXTRA_FILENAME) | $(CFG_HASH_COMMAND))
2626

27+
# A magic value that allows the compiler to use unstable features during the
28+
# bootstrap even when doing so would normally be an error because of feature
29+
# staging or because the build turns on warnings-as-errors and unstable features
30+
# default to warnings. The build has to match this key in an env var.
31+
#
32+
# This value is keyed off the release to ensure that all compilers for one
33+
# particular release have the same bootstrap key. Note that this is
34+
# intentionally not "secure" by any definition, this is largely just a deterrent
35+
# from users enabling unstable features on the stable compiler.
36+
CFG_BOOTSTRAP_KEY=$(CFG_FILENAME_EXTRA)
37+
2738
ifeq ($(CFG_RELEASE_CHANNEL),stable)
2839
# This is the normal semver version string, e.g. "0.12.0", "0.12.0-nightly"
2940
CFG_RELEASE=$(CFG_RELEASE_NUM)

branches/try/mk/tests.mk

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,7 @@ check-stage$(1)-T-$(2)-H-$(3)-exec: \
305305
check-stage$(1)-T-$(2)-H-$(3)-doc-crates-exec \
306306
check-stage$(1)-T-$(2)-H-$(3)-debuginfo-gdb-exec \
307307
check-stage$(1)-T-$(2)-H-$(3)-debuginfo-lldb-exec \
308+
check-stage$(1)-T-$(2)-H-$(3)-incremental-exec \
308309
check-stage$(1)-T-$(2)-H-$(3)-doc-exec \
309310
check-stage$(1)-T-$(2)-H-$(3)-pretty-exec
310311

@@ -481,6 +482,7 @@ DEBUGINFO_LLDB_RS := $(call rwildcard,$(S)src/test/debuginfo/,*.rs)
481482
CODEGEN_RS := $(call rwildcard,$(S)src/test/codegen/,*.rs)
482483
CODEGEN_CC := $(call rwildcard,$(S)src/test/codegen/,*.cc)
483484
CODEGEN_UNITS_RS := $(call rwildcard,$(S)src/test/codegen-units/,*.rs)
485+
INCREMENTAL_RS := $(call rwildcard,$(S)src/test/incremental/,*.rs)
484486
RUSTDOCCK_RS := $(call rwildcard,$(S)src/test/rustdoc/,*.rs)
485487

486488
RPASS_TESTS := $(RPASS_RS)
@@ -496,6 +498,7 @@ DEBUGINFO_GDB_TESTS := $(DEBUGINFO_GDB_RS)
496498
DEBUGINFO_LLDB_TESTS := $(DEBUGINFO_LLDB_RS)
497499
CODEGEN_TESTS := $(CODEGEN_RS) $(CODEGEN_CC)
498500
CODEGEN_UNITS_TESTS := $(CODEGEN_UNITS_RS)
501+
INCREMENTAL_TESTS := $(INCREMENTAL_RS)
499502
RUSTDOCCK_TESTS := $(RUSTDOCCK_RS)
500503

501504
CTEST_SRC_BASE_rpass = run-pass
@@ -558,6 +561,11 @@ CTEST_BUILD_BASE_codegen-units = codegen-units
558561
CTEST_MODE_codegen-units = codegen-units
559562
CTEST_RUNTOOL_codegen-units = $(CTEST_RUNTOOL)
560563

564+
CTEST_SRC_BASE_incremental = incremental
565+
CTEST_BUILD_BASE_incremental = incremental
566+
CTEST_MODE_incremental = incremental
567+
CTEST_RUNTOOL_incremental = $(CTEST_RUNTOOL)
568+
561569
CTEST_SRC_BASE_rustdocck = rustdoc
562570
CTEST_BUILD_BASE_rustdocck = rustdoc
563571
CTEST_MODE_rustdocck = rustdoc
@@ -681,6 +689,7 @@ CTEST_DEPS_debuginfo-lldb_$(1)-T-$(2)-H-$(3) = $$(DEBUGINFO_LLDB_TESTS) \
681689
$(S)src/etc/lldb_rust_formatters.py
682690
CTEST_DEPS_codegen_$(1)-T-$(2)-H-$(3) = $$(CODEGEN_TESTS)
683691
CTEST_DEPS_codegen-units_$(1)-T-$(2)-H-$(3) = $$(CODEGEN_UNITS_TESTS)
692+
CTEST_DEPS_incremental_$(1)-T-$(2)-H-$(3) = $$(INCREMENTAL_TESTS)
684693
CTEST_DEPS_rustdocck_$(1)-T-$(2)-H-$(3) = $$(RUSTDOCCK_TESTS) \
685694
$$(HBIN$(1)_H_$(3))/rustdoc$$(X_$(3)) \
686695
$(S)src/etc/htmldocck.py
@@ -747,7 +756,7 @@ endif
747756
endef
748757

749758
CTEST_NAMES = rpass rpass-valgrind rpass-full rfail-full cfail-full rfail cfail pfail \
750-
debuginfo-gdb debuginfo-lldb codegen codegen-units rustdocck
759+
debuginfo-gdb debuginfo-lldb codegen codegen-units rustdocck incremental
751760

752761
$(foreach host,$(CFG_HOST), \
753762
$(eval $(foreach target,$(CFG_TARGET), \
@@ -945,6 +954,7 @@ TEST_GROUPS = \
945954
debuginfo-lldb \
946955
codegen \
947956
codegen-units \
957+
incremental \
948958
doc \
949959
$(foreach docname,$(DOC_NAMES),doc-$(docname)) \
950960
pretty \

0 commit comments

Comments
 (0)