Skip to content

Commit c6f7c2a

Browse files
authored
Merge pull request #36633 from brson/beta-next
[beta] Add changelog for 1.12
2 parents 7b49840 + 30884cd commit c6f7c2a

File tree

1 file changed

+261
-0
lines changed

1 file changed

+261
-0
lines changed

RELEASES.md

+261
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,264 @@
1+
Version 1.12.0 (2016-09-29)
2+
===========================
3+
4+
Highlights
5+
----------
6+
7+
* [`rustc` translates code to LLVM IR via its own "middle" IR (MIR)]
8+
(https://github.com/rust-lang/rust/pull/34096).
9+
This translation pass is far simpler than the previous AST->LLVM pass, and
10+
creates opportunities to perform new optimizations directly on the MIR. It
11+
was previously described [on the Rust blog]
12+
(https://blog.rust-lang.org/2016/04/19/MIR.html).
13+
* [`rustc` presents a new, more readable error format, along with
14+
machine-readable JSON error output for use by IDEs]
15+
(https://github.com/rust-lang/rust/pull/35401).
16+
Most common editors supporting Rust have been updated to work with it. It was
17+
previously described [on the Rust blog]
18+
(https://blog.rust-lang.org/2016/08/10/Shape-of-errors-to-come.html).
19+
20+
Compiler
21+
--------
22+
23+
* [`rustc` translates code to LLVM IR via its own "middle" IR (MIR)]
24+
(https://github.com/rust-lang/rust/pull/34096).
25+
This translation pass is far simpler than the previous AST->LLVM pass, and
26+
creates opportunities to perform new optimizations directly on the MIR. It
27+
was previously described [on the Rust blog]
28+
(https://blog.rust-lang.org/2016/04/19/MIR.html).
29+
* [Print the Rust target name, not the LLVM target name, with
30+
`--print-target-list`]
31+
(https://github.com/rust-lang/rust/pull/35489)
32+
* [The computation of `TypeId` is correct in some cases where it was previously
33+
producing inconsistent results]
34+
(https://github.com/rust-lang/rust/pull/35267)
35+
* [The `mips-unknown-linux-gnu` target uses hardware floating point by default]
36+
(https://github.com/rust-lang/rust/pull/34910)
37+
* [The `rustc` arguments, `--print target-cpus`, `--print target-features`,
38+
`--print relocation-models`, and `--print code-models` print the available
39+
options to the `-C target-cpu`, `-C target-feature`, `-C relocation-model` and
40+
`-C code-model` code generation arguments]
41+
(https://github.com/rust-lang/rust/pull/34845)
42+
* [`rustc` supports three new MUSL targets on ARM: `arm-unknown-linux-musleabi`,
43+
`arm-unknown-linux-musleabihf`, and `armv7-unknown-linux-musleabihf`]
44+
(https://github.com/rust-lang/rust/pull/35060).
45+
These targets produce statically-linked binaries. There are no binary release
46+
builds yet though.
47+
48+
Diagnostics
49+
-----------
50+
51+
* [`rustc` presents a new, more readable error format, along with
52+
machine-readable JSON error output for use by IDEs]
53+
(https://github.com/rust-lang/rust/pull/35401).
54+
Most common editors supporting Rust have been updated to work with it. It was
55+
previously described [on the Rust blog]
56+
(https://blog.rust-lang.org/2016/08/10/Shape-of-errors-to-come.html).
57+
* [In error descriptions, references are now described in plain english,
58+
instead of as "&-ptr"]
59+
(https://github.com/rust-lang/rust/pull/35611)
60+
* [In error type descriptions, unknown numeric types are named `{integer}` or
61+
`{float}` instead of `_`]
62+
(https://github.com/rust-lang/rust/pull/35080)
63+
* [`rustc` emits a clearer error when inner attributes follow a doc comment]
64+
(https://github.com/rust-lang/rust/pull/34676)
65+
66+
Language
67+
--------
68+
69+
* [`macro_rules!` invocations can be made within `macro_rules!` invocations]
70+
(https://github.com/rust-lang/rust/pull/34925)
71+
* [`macro_rules!` meta-variables are hygienic]
72+
(https://github.com/rust-lang/rust/pull/35453)
73+
* [`macro_rules!` `tt` matchers can be reparsed correctly, making them much more
74+
useful]
75+
(https://github.com/rust-lang/rust/pull/34908)
76+
* [`macro_rules!` `stmt` matchers correctly consume the entire contents when
77+
insider non-braces invocations]
78+
(https://github.com/rust-lang/rust/pull/34886)
79+
* [Semicolons are properly required as statement delimeters inside
80+
`macro_rules!` invocations]
81+
(https://github.com/rust-lang/rust/pull/34660)
82+
* [`cfg_attr` works on `path` attributes]
83+
(https://github.com/rust-lang/rust/pull/34546)
84+
85+
Stabilized APIs
86+
---------------
87+
88+
* [`Cell::as_ptr`]
89+
(https://doc.rust-lang.org/std/cell/struct.Cell.html#method.as_ptr)
90+
* [`RefCell::as_ptr`]
91+
(https://doc.rust-lang.org/std/cell/struct.RefCell.html#method.as_ptr)
92+
* [`IpAddr::is_unspecified`]
93+
(https://doc.rust-lang.org/std/net/enum.IpAddr.html#method.is_unspecified)
94+
* [`IpAddr::is_loopback`]
95+
(https://doc.rust-lang.org/std/net/enum.IpAddr.html#method.is_loopback)
96+
* [`IpAddr::is_multicast`]
97+
(https://doc.rust-lang.org/std/net/enum.IpAddr.html#method.is_multicast)
98+
* [`Ipv4Addr::is_unspecified`]
99+
(https://doc.rust-lang.org/std/net/struct.Ipv4Addr.html#method.is_unspecified)
100+
* [`Ipv6Addr::octets`]
101+
(https://doc.rust-lang.org/std/net/struct.Ipv6Addr.html#method.octets)
102+
* [`LinkedList::contains`]
103+
(https://doc.rust-lang.org/std/collections/linked_list/struct.LinkedList.html#method.contains)
104+
* [`VecDeque::contains`]
105+
(https://doc.rust-lang.org/std/collections/vec_deque/struct.VecDeque.html#method.contains)
106+
* [`ExitStatusExt::from_raw`]
107+
(https://doc.rust-lang.org/std/os/unix/process/trait.ExitStatusExt.html#tymethod.from_raw).
108+
Both on Unix and Windows.
109+
* [`Receiver::recv_timeout`]
110+
(https://doc.rust-lang.org/std/sync/mpsc/struct.Receiver.html#method.recv_timeout)
111+
* [`RecvTimeoutError`]
112+
(https://doc.rust-lang.org/std/sync/mpsc/enum.RecvTimeoutError.html)
113+
* [`BinaryHeap::peek_mut`]
114+
(https://doc.rust-lang.org/std/collections/binary_heap/struct.BinaryHeap.html#method.peek_mut)
115+
* [`PeekMut`]
116+
(https://doc.rust-lang.org/std/collections/binary_heap/struct.PeekMut.html)
117+
* [`iter::Product`]
118+
(https://doc.rust-lang.org/std/iter/trait.Product.html)
119+
* [`iter::Sum`]
120+
(https://doc.rust-lang.org/std/iter/trait.Sum.html)
121+
* [`OccupiedEntry::remove_entry`]
122+
(https://doc.rust-lang.org/std/collections/btree_map/struct.OccupiedEntry.html#method.remove_entry)
123+
* [`VacantEntry::into_key`]
124+
(https://doc.rust-lang.org/std/collections/btree_map/struct.VacantEntry.html#method.into_key)
125+
126+
Libraries
127+
---------
128+
129+
* [The `format!` macro and friends now allow a single argument to be formatted
130+
in multiple styles]
131+
(https://github.com/rust-lang/rust/pull/33642)
132+
* [The lifetime bounds on `[T]::binary_search_by` and
133+
`[T]::binary_search_by_key` have been adjusted to be more flexible]
134+
(https://github.com/rust-lang/rust/pull/34762)
135+
* [`Option` implements `From` for its contained type]
136+
(https://github.com/rust-lang/rust/pull/34828)
137+
* [`Cell`, `RefCell` and `UnsafeCell` implement `From` for their contained type]
138+
(https://github.com/rust-lang/rust/pull/35392)
139+
* [`RwLock` panics if the reader count overflows]
140+
(https://github.com/rust-lang/rust/pull/35378)
141+
* [`vec_deque::Drain`, `hash_map::Drain` and `hash_set::Drain` are covariant]
142+
(https://github.com/rust-lang/rust/pull/35354)
143+
* [`vec::Drain` and `binary_heap::Drain` are covariant]
144+
(https://github.com/rust-lang/rust/pull/34951)
145+
* [`Cow<str>` implements `FromIterator` for `char`, `&str` and `String`]
146+
(https://github.com/rust-lang/rust/pull/35064)
147+
* [`String` implements `From<Vec<char>>` and `From<&[char]>`]
148+
(https://github.com/rust-lang/rust/pull/35054)
149+
* [Sockets on Linux are correctly closed in subprocesses via `SOCK_CLOEXEC`]
150+
(https://github.com/rust-lang/rust/pull/34946)
151+
* [`hash_map::Entry`, `hash_map::VacantEntry` and `hash_map::OccupiedEntry`
152+
implement `Debug`]
153+
(https://github.com/rust-lang/rust/pull/34946)
154+
* [`btree_map::Entry`, `btree_map::VacantEntry` and `btree_map::OccupiedEntry`
155+
implement `Debug`]
156+
(https://github.com/rust-lang/rust/pull/34885)
157+
* [`String` implements `AddAssign`]
158+
(https://github.com/rust-lang/rust/pull/34890)
159+
* [Variadic `extern fn` pointers implement the `Clone`, `PartialEq`, `Eq`,
160+
`PartialOrd`, `Ord`, `Hash`, `fmt::Pointer`, and `fmt::Debug` traits]
161+
(https://github.com/rust-lang/rust/pull/34879)
162+
* [`FileType` implements `Debug`]
163+
(https://github.com/rust-lang/rust/pull/34757)
164+
* [References to `Mutex` and `RwLock` are unwind-safe]
165+
(https://github.com/rust-lang/rust/pull/34756)
166+
* [`mpsc::sync_channel` `Receiver`s return any available message before
167+
reporting a disconnect]
168+
(https://github.com/rust-lang/rust/pull/34731)
169+
* [Unicode definitions have been updated to 9.0]
170+
(https://github.com/rust-lang/rust/pull/34599)
171+
* [`env` iterators implement `DoubleEndedIterator`]
172+
(https://github.com/rust-lang/rust/pull/33312)
173+
174+
Cargo
175+
-----
176+
177+
* [Support local mirrors of registries]
178+
(https://github.com/rust-lang/cargo/pull/2857)
179+
* [Add support for command aliases]
180+
(https://github.com/rust-lang/cargo/pull/2679)
181+
* [Allow `opt-level="s"` / `opt-level="z"` in profile overrides]
182+
(https://github.com/rust-lang/cargo/pull/3007)
183+
* [Make `cargo doc --open --target` work as expected]
184+
(https://github.com/rust-lang/cargo/pull/2988)
185+
* [Speed up noop registry updates]
186+
(https://github.com/rust-lang/cargo/pull/2974)
187+
* [Update OpenSSL]
188+
(https://github.com/rust-lang/cargo/pull/2971)
189+
* [Fix `--panic=abort` with plugins]
190+
(https://github.com/rust-lang/cargo/pull/2954)
191+
* [Always pass `-C metadata` to the compiler]
192+
(https://github.com/rust-lang/cargo/pull/2946)
193+
* [Fix depending on git repos with workspaces]
194+
(https://github.com/rust-lang/cargo/pull/2938)
195+
* [Add a `--lib` flag to `cargo new`]
196+
(https://github.com/rust-lang/cargo/pull/2921)
197+
* [Add `http.cainfo` for custom certs]
198+
(https://github.com/rust-lang/cargo/pull/2917)
199+
* [Indicate the compilation profile after compiling]
200+
(https://github.com/rust-lang/cargo/pull/2909)
201+
* [Allow enabling features for dependencies with `--features`]
202+
(https://github.com/rust-lang/cargo/pull/2876)
203+
* [Add `--jobs` flag to `cargo package`]
204+
(https://github.com/rust-lang/cargo/pull/2867)
205+
* [Add `--dry-run` to `cargo publish`]
206+
(https://github.com/rust-lang/cargo/pull/2849)
207+
* [Add support for `RUSTDOCFLAGS`]
208+
(https://github.com/rust-lang/cargo/pull/2794)
209+
210+
Performance
211+
-----------
212+
213+
* [`rustc` produces more compact code by more precisely identifying the live
214+
ranges of variables]
215+
(https://github.com/rust-lang/rust/pull/35409)
216+
* [`panic::catch_unwind` is more optimized]
217+
(https://github.com/rust-lang/rust/pull/35444)
218+
* [`panic::catch_unwind` no longer accesses thread-local storage on entry]
219+
(https://github.com/rust-lang/rust/pull/34866)
220+
221+
Tooling
222+
-------
223+
224+
* [Test binaries now support a `--test-threads` argument to specify the number
225+
of threads used to run tests, and which acts the same as the
226+
`RUST_TEST_THREADS` environment variable]
227+
(https://github.com/rust-lang/rust/pull/35414)
228+
* [The test runner now emits a warning when tests run over 60 seconds]
229+
(https://github.com/rust-lang/rust/pull/35405)
230+
* [rustdoc: Fix methods in search results]
231+
(https://github.com/rust-lang/rust/pull/34752)
232+
* [`rust-lldb` warns about unsupported versions of LLDB]
233+
(https://github.com/rust-lang/rust/pull/34646)
234+
* [Rust releases now come with source packages that can be installed by rustup
235+
via `rustup component add rust-src`]
236+
(https://github.com/rust-lang/rust/pull/34366).
237+
The resulting source code can be used by tools and IDES, located in the
238+
sysroot under `lib/rustlib/src`.
239+
240+
Misc
241+
----
242+
243+
* [The compiler can now be built against LLVM 3.9]
244+
(https://github.com/rust-lang/rust/pull/35594)
245+
* Many minor improvements to the documentation.
246+
* [The Rust exception handling "personality" routine is now written in Rust]
247+
(https://github.com/rust-lang/rust/pull/34832)
248+
249+
Compatibility Notes
250+
-------------------
251+
252+
* [When printing Windows `OsStr`s, unpaired surrogate codepoints are escaped
253+
with the lowercase format instead of the uppercase]
254+
(https://github.com/rust-lang/rust/pull/35084)
255+
* [When formatting strings, if "precision" is specified, the "fill",
256+
"align" and "width" specifiers are no longer ignored]
257+
(https://github.com/rust-lang/rust/pull/34544)
258+
* [The `Debug` impl for strings no longer escapes all non-ASCII characters]
259+
(https://github.com/rust-lang/rust/pull/34485)
260+
261+
1262
Version 1.11.0 (2016-08-18)
2263
===========================
3264

0 commit comments

Comments
 (0)