Skip to content

Commit a65604c

Browse files
committed
Auto merge of #41953 - Aaronepower:patch-1, r=<try>
Updated releases notes for 1.18 This is my first time making the release notes so please give it an extra once over!
2 parents f89d8d1 + 9c3e733 commit a65604c

File tree

1 file changed

+147
-0
lines changed

1 file changed

+147
-0
lines changed

RELEASES.md

+147
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,150 @@
1+
Version 1.18.0 (2017-06-08)
2+
===========================
3+
4+
Language
5+
--------
6+
7+
- [Stabilize pub(restricted)][40556] `pub` can now accept a module path to
8+
make the item visible to just that module tree. Also accepts the keyword
9+
`crate` to make something public to the whole crate but not users of the
10+
library. Example: `pub(crate) mod utils;`.
11+
- [Stabilize `#![windows_subsystem]` attribute][40870] conservative exposure of the
12+
`/SUBSYSTEM` linker flag on Windows platforms.
13+
- [Refactor of trait object type parsing][40043] Now `ty` in macros can accept
14+
types like `Write + Send`, trailing `+` are now supported in trait objects,
15+
and better error reporting for trait objects starting with `?Sized`.
16+
- [0e+10 is now a valid floating point literal][40589]
17+
- [Now warns if you bind a lifetime parameter to 'static][40734]
18+
- [Tuples, Enum variant fields, and structs with no `repr` attribute or with
19+
`#[repr(Rust)]` are reordered to minimize padding and produce a smaller
20+
representation in some cases.][40377]
21+
22+
Compiler
23+
--------
24+
25+
- [rustc can now emit mir with `--emit mir`][39891]
26+
- [Improved LLVM IR for trivial functions][40367]
27+
- [Added explanation for E0090(Wrong number of lifetimes are supplied)][40723]
28+
- [rustc compilation is now 15%-20% faster][41469] Thanks to optimisation
29+
opportunities found through profiling
30+
- [Improved backtrace formatting when panicking][38165]
31+
32+
Libraries
33+
---------
34+
35+
- [Specialized `Vec::from_iter` being passed `vec::IntoIter`][40731] if the
36+
iterator hasn't been advanced the original `Vec` is reassembled with no actual
37+
iteration or reallocation.
38+
- [Simplified HashMap Bucket interface][40561] provides performance
39+
improvements for iterating and cloning.
40+
- [Specialize Vec::from_elem to use calloc][40409]
41+
- [Fixed Race condition in fs::create_dir_all][39799]
42+
- [No longer caching stdio on Windows][40516]
43+
- [Optimized insertion sort in slice][40807] insertion sort in some cases
44+
2.50%~ faster and in one case now 12.50% faster.
45+
- [Optimized `AtomicBool::fetch_nand`][41143]
46+
47+
Stabilized APIs
48+
---------------
49+
50+
- [`Child::try_wait`]
51+
- [`HashMap::retain`]
52+
- [`HashSet::retain`]
53+
- [`PeekMut::pop`]
54+
- [`TcpSteam::peek`]
55+
- [`UdpSocket::peek`]
56+
- [`UdpSocket::peek_from`]
57+
58+
Cargo
59+
-----
60+
61+
- [Added partial Pijul support][cargo/3842] Pijul is a version control system in Rust.
62+
You can now create new cargo projects with Pijul using `cargo new --vcs pijul`
63+
- [Now always emits build script warnings for crates that fail to build][cargo/3847]
64+
- [Added Android build support][cargo/3885]
65+
- [Added `--bins` and `--tests` flags][cargo/3901] now you can build all programs
66+
of a certain type, for example `cargo build --bins` will build all
67+
binaries.
68+
- [Added support for haiku][cargo/3952]
69+
70+
Misc
71+
----
72+
73+
- [rustdoc can now use pulldown-cmark with the `--enable-commonmark` flag][40338]
74+
- [Added rust-winbg script for better debugging on Windows][39983]
75+
- [Rust now uses the official cross compiler for NetBSD][40612]
76+
- [rustdoc now accepts `#` at the start of files][40828]
77+
- [Fixed jemalloc support for musl][41168]
78+
79+
Compatibility Notes
80+
-------------------
81+
82+
- [Changes to how the `0` flag works in format!][40241] Padding zeroes are now
83+
always placed after the sign if it exists and before the digits. With the `#`
84+
flag the zeroes are placed after the prefix and before the digits.
85+
- [Due to the struct field optimisation][40377], using `transmute` on structs
86+
that have no `repr` attribute or `#[repr(Rust)]` will longer work.
87+
- [The refactor of trait object type parsing][40043] fixed a bug where `+` was
88+
receiving the wrong priority parsing things like `&for<'a> Tr<'a> + Send` as
89+
`&(for<'a> Tr<'a> + Send)` instead of `(&for<'a> Tr<'a>) + Send`
90+
- [Overlapping inherent `impl`s are now a hard error][40728]
91+
- [`PartialOrd` and `Ord` must to agree on the ordering.][41270]
92+
- [`rustc main.rs -o out --emit=asm,llvm-ir`][41085] Now will output
93+
`out.asm` and `out.ll` instead of only one of the filetypes.
94+
- [ calling a function that returns `Self` will no longer work][41805] when
95+
the size of `Self` cannot be statically determined.
96+
- [rustc now builds with a "pthreads" flavour of MinGW for Windows GNU][40805]
97+
this has caused a few regressions namely:
98+
99+
- Changed the link order of local static/dynamic libraries (respecting the
100+
order on given rather than having the compiler reorder).
101+
- Changed how MinGW is linked, native code linked to dynamic libraries
102+
may require manually linking to the gcc support library (for the native
103+
code itself)
104+
105+
[38165]: https://github.com/rust-lang/rust/pull/38165
106+
[39799]: https://github.com/rust-lang/rust/pull/39799
107+
[39891]: https://github.com/rust-lang/rust/pull/39891
108+
[39983]: https://github.com/rust-lang/rust/pull/39983
109+
[40043]: https://github.com/rust-lang/rust/pull/40043
110+
[40241]: https://github.com/rust-lang/rust/pull/40241
111+
[40338]: https://github.com/rust-lang/rust/pull/40338
112+
[40367]: https://github.com/rust-lang/rust/pull/40367
113+
[40409]: https://github.com/rust-lang/rust/pull/40409
114+
[40516]: https://github.com/rust-lang/rust/pull/40516
115+
[40556]: https://github.com/rust-lang/rust/pull/40556
116+
[40561]: https://github.com/rust-lang/rust/pull/40561
117+
[40589]: https://github.com/rust-lang/rust/pull/40589
118+
[40612]: https://github.com/rust-lang/rust/pull/40612
119+
[40723]: https://github.com/rust-lang/rust/pull/40723
120+
[40728]: https://github.com/rust-lang/rust/pull/40728
121+
[40731]: https://github.com/rust-lang/rust/pull/40731
122+
[40734]: https://github.com/rust-lang/rust/pull/40734
123+
[40807]: https://github.com/rust-lang/rust/pull/40807
124+
[40828]: https://github.com/rust-lang/rust/pull/40828
125+
[40870]: https://github.com/rust-lang/rust/pull/40870
126+
[41143]: https://github.com/rust-lang/rust/pull/41143
127+
[41168]: https://github.com/rust-lang/rust/pull/41168
128+
[41469]: https://github.com/rust-lang/rust/pull/41469
129+
[41085]: https://github.com/rust-lang/rust/pull/41085
130+
[41805]: https://github.com/rust-lang/rust/issues/41805
131+
[40805]: https://github.com/rust-lang/rust/pull/40805
132+
[41270]: https://github.com/rust-lang/rust/issues/41270
133+
[40377]: https://github.com/rust-lang/rust/pull/40377
134+
[cargo/3842]: https://github.com/rust-lang/cargo/pull/3842
135+
[cargo/3847]: https://github.com/rust-lang/cargo/pull/3847
136+
[cargo/3885]: https://github.com/rust-lang/cargo/pull/3885
137+
[cargo/3901]: https://github.com/rust-lang/cargo/pull/3901
138+
[cargo/3952]: https://github.com/rust-lang/cargo/pull/3952
139+
[`HashMap::retain`]: https://doc.rust-lang.org/std/collections/struct.HashMap.html#method.retain
140+
[`HashSet::retain`]: https://doc.rust-lang.org/std/collections/struct.HashSet.html#method.retain
141+
[`PeekMut::pop`]: https://doc.rust-lang.org/std/collections/binary_heap/struct.PeekMut.html#method.pop
142+
[`TcpSteam::peek`]: https://doc.rust-lang.org/std/net/struct.TcpStream.html#method.peek
143+
[`UdpSocket::peek`]: https://doc.rust-lang.org/std/net/struct.UdpSocket.html#method.peek
144+
[`UdpSocket::peek_from`]: https://doc.rust-lang.org/std/net/struct.UdpSocket.html#method.peek_from
145+
[`Child::try_wait`]: https://doc.rust-lang.org/std/process/struct.Child.html#method.try_wait
146+
147+
1148
Version 1.17.0 (2017-04-27)
2149
===========================
3150

0 commit comments

Comments
 (0)