|
| 1 | +Version 1.55.0 (2021-09-09) |
| 2 | +============================ |
| 3 | + |
| 4 | +Language |
| 5 | +-------- |
| 6 | +- [You can now write open "from" range patterns (`X..`), which will start at `X` and |
| 7 | + will end at the maximum value of the integer.][83918] |
| 8 | +- [You can now explicitly import the prelude of different editions |
| 9 | + through `std::prelude` (e.g. `use std::prelude::rust_2021::*;`).][86294] |
| 10 | + |
| 11 | +Compiler |
| 12 | +-------- |
| 13 | +- [Added tier 3\* support for `powerpc-unknown-freebsd`.][87370] |
| 14 | +- [Added tier 3 support for `powerpc64le-unknown-freebsd`.][83572] |
| 15 | + |
| 16 | +\* Refer to Rust's [platform support page][platform-support-doc] for more |
| 17 | + information on Rust's tiered platform support. |
| 18 | + |
| 19 | +Libraries |
| 20 | +--------- |
| 21 | + |
| 22 | +- [Updated std's float parsing to use the Eisel-Lemire algorithm.][86761] |
| 23 | + These improvements should in general provide faster string parsing of floats, |
| 24 | + no longer reject certain valid floating point values, and reduce |
| 25 | + the produced code size for non-stripped artifacts. |
| 26 | +- [`string::Drain` now implements `AsRef<str>` and `AsRef<[u8]>`.][86858] |
| 27 | +- [`collections::{BinaryHeap, BTreeSet, HashSet, LinkedList, VecDeque}` now |
| 28 | + implement `From<[T; N]>`.][84111] |
| 29 | +- [`collections::{BTreeMap, HashMap}` now implement `From<[(K, V); N]>`.][84111] |
| 30 | + This allows you to write the following; |
| 31 | + ```rust |
| 32 | + let highscores = std::collections::HashMap::from([ |
| 33 | + ("Alice", 9000u32), |
| 34 | + ("Bob", 7250), |
| 35 | + ("Charlie", 5500), |
| 36 | + ]); |
| 37 | + ``` |
| 38 | + |
| 39 | +Stabilised APIs |
| 40 | +--------------- |
| 41 | + |
| 42 | +- [`Bound::cloned`] |
| 43 | +- [`Drain::as_str`] |
| 44 | +- [`IntoInnerError::into_error`] |
| 45 | +- [`IntoInnerError::into_parts`] |
| 46 | +- [`MaybeUninit::assume_init_mut`] |
| 47 | +- [`MaybeUninit::assume_init_ref`] |
| 48 | +- [`MaybeUninit::write`] |
| 49 | +- [`array::map`] |
| 50 | +- [`ops::ControlFlow`] |
| 51 | +- [`x86::_bittest`] |
| 52 | +- [`x86::_bittestandcomplement`] |
| 53 | +- [`x86::_bittestandreset`] |
| 54 | +- [`x86::_bittestandset`] |
| 55 | +- [`x86_64::_bittest64`] |
| 56 | +- [`x86_64::_bittestandcomplement64`] |
| 57 | +- [`x86_64::_bittestandreset64`] |
| 58 | +- [`x86_64::_bittestandset64`] |
| 59 | + |
| 60 | +The following previously stable functions are now `const`. |
| 61 | + |
| 62 | +- [`str::from_utf8_unchecked`] |
| 63 | +- [`mem::transmute`] |
| 64 | + |
| 65 | + |
| 66 | +Cargo |
| 67 | +----- |
| 68 | +- [Cargo will now deduplicate compiler diagnostics to the terminal when invoking |
| 69 | + rustc in parallel such as when using `cargo test`.][cargo/9675] |
| 70 | +- [The package definition in `cargo metadata` now includes the `"default_run"` |
| 71 | + field from the manifest.][cargo/9550] |
| 72 | +- [Added `cargo d` as an alias for `cargo doc`.][cargo/9680] |
| 73 | + |
| 74 | +Rustdoc |
| 75 | +------- |
| 76 | +- [Added "Go to item on exact match" search option.][85876] |
| 77 | +- [The "Implementors" section on traits no longer shows redundant |
| 78 | + method definitions.][85970] |
| 79 | +- [Trait implementations are toggled open by default.][86260] This should make the |
| 80 | + implementations more searchable by tools like `CTRL+F` in your browser. |
| 81 | +- [Intra-doc links should now correctly resolve associated items (e.g. methods) |
| 82 | + through type aliases.][86334] |
| 83 | +- [Traits which are marked with `#[doc(hidden)]` will no longer appear in the |
| 84 | + "Trait Implementations" section.][86513] |
| 85 | + |
| 86 | + |
| 87 | +Compatibility Notes |
| 88 | +------------------- |
| 89 | +- [std functions that return an `io::Error` will no longer use the |
| 90 | + `ErrorKind::Other` variant.][85746] This is to better reflect that these |
| 91 | + kinds of errors could be categorised [into newer more specific `ErrorKind` |
| 92 | + variants][79965], and that they do not represent a user error. |
| 93 | +- [Using environment variable names with `process::Command` on Windows now |
| 94 | + behaves as expected.][85270] Previously using envionment variables with |
| 95 | + `Command` would cause them to be ASCII-uppercased. |
| 96 | +- [Rustdoc will now warn on using rustdoc lints that aren't prefixed |
| 97 | + with `rustdoc::`][86849] |
| 98 | + |
| 99 | +[86849]: https://github.com/rust-lang/rust/pull/86849 |
| 100 | +[86513]: https://github.com/rust-lang/rust/pull/86513 |
| 101 | +[86334]: https://github.com/rust-lang/rust/pull/86334 |
| 102 | +[86260]: https://github.com/rust-lang/rust/pull/86260 |
| 103 | +[85970]: https://github.com/rust-lang/rust/pull/85970 |
| 104 | +[85876]: https://github.com/rust-lang/rust/pull/85876 |
| 105 | +[83572]: https://github.com/rust-lang/rust/pull/83572 |
| 106 | +[86294]: https://github.com/rust-lang/rust/pull/86294 |
| 107 | +[86858]: https://github.com/rust-lang/rust/pull/86858 |
| 108 | +[86761]: https://github.com/rust-lang/rust/pull/86761 |
| 109 | +[85769]: https://github.com/rust-lang/rust/pull/85769 |
| 110 | +[85746]: https://github.com/rust-lang/rust/pull/85746 |
| 111 | +[85305]: https://github.com/rust-lang/rust/pull/85305 |
| 112 | +[85270]: https://github.com/rust-lang/rust/pull/85270 |
| 113 | +[84111]: https://github.com/rust-lang/rust/pull/84111 |
| 114 | +[83918]: https://github.com/rust-lang/rust/pull/83918 |
| 115 | +[79965]: https://github.com/rust-lang/rust/pull/79965 |
| 116 | +[87370]: https://github.com/rust-lang/rust/pull/87370 |
| 117 | +[87298]: https://github.com/rust-lang/rust/pull/87298 |
| 118 | +[cargo/9675]: https://github.com/rust-lang/cargo/pull/9675 |
| 119 | +[cargo/9550]: https://github.com/rust-lang/cargo/pull/9550 |
| 120 | +[cargo/9680]: https://github.com/rust-lang/cargo/pull/9680 |
| 121 | +[`array::map`]: https://doc.rust-lang.org/stable/std/primitive.array.html#method.map |
| 122 | +[`Bound::cloned`]: https://doc.rust-lang.org/stable/std/ops/enum.Bound.html#method.cloned |
| 123 | +[`Drain::as_str`]: https://doc.rust-lang.org/stable/std/string/struct.Drain.html#method.as_str |
| 124 | +[`IntoInnerError::into_error`]: https://doc.rust-lang.org/stable/std/io/struct.IntoInnerError.html#method.into_error |
| 125 | +[`IntoInnerError::into_parts`]: https://doc.rust-lang.org/stable/std/io/struct.IntoInnerError.html#method.into_parts |
| 126 | +[`MaybeUninit::assume_init_mut`]: https://doc.rust-lang.org/stable/std/mem/union.MaybeUninit.html#method.assume_init_mut |
| 127 | +[`MaybeUninit::assume_init_ref`]: https://doc.rust-lang.org/stable/std/mem/union.MaybeUninit.html#method.assume_init_ref |
| 128 | +[`MaybeUninit::write`]: https://doc.rust-lang.org/stable/std/mem/union.MaybeUninit.html#method.write |
| 129 | +[`Seek::rewind`]: https://doc.rust-lang.org/stable/std/io/trait.Seek.html#method.rewind |
| 130 | +[`mem::transmute`]: https://doc.rust-lang.org/stable/std/mem/fn.transmute.html |
| 131 | +[`ops::ControlFlow`]: https://doc.rust-lang.org/stable/std/ops/enum.ControlFlow.html |
| 132 | +[`str::from_utf8_unchecked`]: https://doc.rust-lang.org/stable/std/str/fn.from_utf8_unchecked.html |
| 133 | +[`x86::_bittest`]: https://doc.rust-lang.org/stable/core/arch/x86/fn._bittest.html |
| 134 | +[`x86::_bittestandcomplement`]: https://doc.rust-lang.org/stable/core/arch/x86/fn._bittestandcomplement.html |
| 135 | +[`x86::_bittestandreset`]: https://doc.rust-lang.org/stable/core/arch/x86/fn._bittestandreset.html |
| 136 | +[`x86::_bittestandset`]: https://doc.rust-lang.org/stable/core/arch/x86/fn._bittestandset.html |
| 137 | +[`x86_64::_bittest64`]: https://doc.rust-lang.org/stable/core/arch/x86_64/fn._bittest64.html |
| 138 | +[`x86_64::_bittestandcomplement64`]: https://doc.rust-lang.org/stable/core/arch/x86_64/fn._bittestandcomplement64.html |
| 139 | +[`x86_64::_bittestandreset64`]: https://doc.rust-lang.org/stable/core/arch/x86_64/fn._bittestandreset64.html |
| 140 | +[`x86_64::_bittestandset64`]: https://doc.rust-lang.org/stable/core/arch/x86_64/fn._bittestandset64.html |
| 141 | + |
| 142 | + |
1 | 143 | Version 1.54.0 (2021-07-29)
|
2 | 144 | ============================
|
3 | 145 |
|
|
0 commit comments