Skip to content

Commit f85fd81

Browse files
authored
Rollup merge of #80812 - rust-lang:relnotes-1.50.0, r=Mark-Simulacrum
Update RELEASES.md for 1.50.0 ### [Rendered](https://github.com/rust-lang/rust/blob/relnotes-1.50.0/RELEASES.md) r? `@Mark-Simulacrum` cc `@rust-lang/release`
2 parents 7907345 + 39e24f7 commit f85fd81

File tree

1 file changed

+120
-0
lines changed

1 file changed

+120
-0
lines changed

Diff for: RELEASES.md

+120
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,123 @@
1+
Version 1.50.0 (2021-02-11)
2+
============================
3+
4+
Language
5+
-----------------------
6+
- [You can now use `const` values for `x` in `[x; N]` array expressions.][79270]
7+
This has been technically possible since 1.38.0, as it was unintentionally stabilized.
8+
- [Assignments to `ManuallyDrop<T>` union fields are now considered safe.][78068]
9+
10+
Compiler
11+
-----------------------
12+
- [Added tier 3\* support for the `armv5te-unknown-linux-uclibceabi` target.][78142]
13+
- [Added tier 3 support for the `aarch64-apple-ios-macabi` target.][77484]
14+
- [The `x86_64-unknown-freebsd` is now built with the full toolset.][79484]
15+
16+
\* Refer to Rust's [platform support page][forge-platform-support] for more
17+
information on Rust's tiered platform support.
18+
19+
Libraries
20+
-----------------------
21+
22+
- [`proc_macro::Punct` now implements `PartialEq<char>`.][78636]
23+
- [`ops::{Index, IndexMut}` are now implemented for fixed sized arrays of any length.][74989]
24+
- [On Unix platforms, the `std::fs::File` type now has a "niche" of `-1`.][74699]
25+
This value cannot be a valid file descriptor, and now means `Option<File>` takes
26+
up the same amount of space as `File`.
27+
28+
Stabilized APIs
29+
---------------
30+
31+
- [`bool::then`]
32+
- [`btree_map::Entry::or_insert_with_key`]
33+
- [`f32::clamp`]
34+
- [`f64::clamp`]
35+
- [`hash_map::Entry::or_insert_with_key`]
36+
- [`Ord::clamp`]
37+
- [`RefCell::take`]
38+
- [`slice::fill`]
39+
- [`UnsafeCell::get_mut`]
40+
41+
The following previously stable methods are now `const`.
42+
43+
- [`IpAddr::is_ipv4`]
44+
- [`IpAddr::is_ipv6`]
45+
- [`Layout::size`]
46+
- [`Layout::align`]
47+
- [`Layout::from_size_align`]
48+
- `pow` for all integer types.
49+
- `checked_pow` for all integer types.
50+
- `saturating_pow` for all integer types.
51+
- `wrapping_pow` for all integer types.
52+
- `next_power_of_two` for all unsigned integer types.
53+
- `checked_power_of_two` for all unsigned integer types.
54+
55+
Cargo
56+
-----------------------
57+
58+
- [Added the `[build.rustc-workspace-wrapper]` option.][cargo/8976]
59+
This option sets a wrapper to execute instead of `rustc`, for workspace members only.
60+
- [`cargo:rerun-if-changed` will now, if provided a directory, scan the entire
61+
contents of that directory for changes.][cargo/8973]
62+
- [Added the `--workspace` flag to the `cargo update` command.][cargo/8725]
63+
64+
Misc
65+
----
66+
67+
- [The search results tab and the help button are focusable with keyboard in rustdoc.][79896]
68+
- [Running tests will now print the total time taken to execute.][75752]
69+
70+
Compatibility Notes
71+
-------------------
72+
73+
- [The `compare_and_swap` method on atomics has been deprecated.][79261] It's
74+
recommended to use the `compare_exchange` and `compare_exchange_weak` methods instead.
75+
- [Changes in how `TokenStream`s are checked have fixed some cases where you could write
76+
unhygenic `macro_rules!` macros.][79472]
77+
- [`#![test]` as an inner attribute is now considered unstable like other inner macro
78+
attributes, and reports an error by default through the `soft_unstable` lint.][79003]
79+
- [Overriding a `forbid` lint at the same level that it was set is now a hard error.][78864]
80+
- [Dropped support for all cloudabi targets.][78439]
81+
- [You can no longer intercept `panic!` calls by supplying your own macro.][78343] It's
82+
recommended to use the `#[panic_handler]` attribute to provide your own implementation.
83+
- [Semi-colons after item statements (e.g. `struct Foo {};`) now produce a warning.][78296]
84+
85+
[74989]: https://github.com/rust-lang/rust/pull/74989
86+
[79261]: https://github.com/rust-lang/rust/pull/79261
87+
[79896]: https://github.com/rust-lang/rust/pull/79896
88+
[79484]: https://github.com/rust-lang/rust/pull/79484
89+
[79472]: https://github.com/rust-lang/rust/pull/79472
90+
[79270]: https://github.com/rust-lang/rust/pull/79270
91+
[79003]: https://github.com/rust-lang/rust/pull/79003
92+
[78864]: https://github.com/rust-lang/rust/pull/78864
93+
[78636]: https://github.com/rust-lang/rust/pull/78636
94+
[78439]: https://github.com/rust-lang/rust/pull/78439
95+
[78343]: https://github.com/rust-lang/rust/pull/78343
96+
[78296]: https://github.com/rust-lang/rust/pull/78296
97+
[78068]: https://github.com/rust-lang/rust/pull/78068
98+
[75752]: https://github.com/rust-lang/rust/pull/75752
99+
[74699]: https://github.com/rust-lang/rust/pull/74699
100+
[78142]: https://github.com/rust-lang/rust/pull/78142
101+
[77484]: https://github.com/rust-lang/rust/pull/77484
102+
[cargo/8976]: https://github.com/rust-lang/cargo/pull/8976
103+
[cargo/8973]: https://github.com/rust-lang/cargo/pull/8973
104+
[cargo/8725]: https://github.com/rust-lang/cargo/pull/8725
105+
[`IpAddr::is_ipv4`]: https://doc.rust-lang.org/stable/std/net/enum.IpAddr.html#method.is_ipv4
106+
[`IpAddr::is_ipv6`]: https://doc.rust-lang.org/stable/std/net/enum.IpAddr.html#method.is_ipv6
107+
[`Layout::align`]: https://doc.rust-lang.org/stable/std/alloc/struct.Layout.html#method.align
108+
[`Layout::from_size_align`]: https://doc.rust-lang.org/stable/std/alloc/struct.Layout.html#method.from_size_align
109+
[`Layout::size`]: https://doc.rust-lang.org/stable/std/alloc/struct.Layout.html#method.size
110+
[`Ord::clamp`]: https://doc.rust-lang.org/stable/std/cmp/trait.Ord.html#method.clamp
111+
[`RefCell::take`]: https://doc.rust-lang.org/stable/std/cell/struct.RefCell.html#method.take
112+
[`UnsafeCell::get_mut`]: https://doc.rust-lang.org/stable/std/cell/struct.UnsafeCell.html#method.get_mut
113+
[`bool::then`]: https://doc.rust-lang.org/stable/std/primitive.bool.html#method.then
114+
[`btree_map::Entry::or_insert_with_key`]: https://doc.rust-lang.org/stable/std/collections/btree_map/enum.Entry.html#method.or_insert_with_key
115+
[`f32::clamp`]: https://doc.rust-lang.org/stable/std/primitive.f32.html#method.clamp
116+
[`f64::clamp`]: https://doc.rust-lang.org/stable/std/primitive.f64.html#method.clamp
117+
[`hash_map::Entry::or_insert_with_key`]: https://doc.rust-lang.org/stable/std/collections/hash_map/enum.Entry.html#method.or_insert_with_key
118+
[`slice::fill`]: https://doc.rust-lang.org/stable/std/primitive.slice.html#method.fill
119+
120+
1121
Version 1.49.0 (2020-12-31)
2122
============================
3123

0 commit comments

Comments
 (0)