|
| 1 | +Version 1.57.0 (2021-12-02) |
| 2 | +========================== |
| 3 | + |
| 4 | +Language |
| 5 | +-------- |
| 6 | + |
| 7 | +- [Macro attributes may follow `#[derive]` and will see the original (pre-`cfg`) input.][87220] |
| 8 | +- [Accept curly-brace macros in expressions, like `m!{ .. }.method()` and `m!{ .. }?`.][88690] |
| 9 | +- [Allow panicking in constant evaluation.][89508] |
| 10 | + |
| 11 | +Compiler |
| 12 | +-------- |
| 13 | + |
| 14 | +- [Create more accurate debuginfo for vtables.][89597] |
| 15 | +- [Add `armv6k-nintendo-3ds` at Tier 3\*.][88529] |
| 16 | +- [Add `armv7-unknown-linux-uclibceabihf` at Tier 3\*.][88952] |
| 17 | +- [Add `m68k-unknown-linux-gnu` at Tier 3\*.][88321] |
| 18 | +- [Add SOLID targets at Tier 3\*:][86191] `aarch64-kmc-solid_asp3`, `armv7a-kmc-solid_asp3-eabi`, `armv7a-kmc-solid_asp3-eabihf` |
| 19 | + |
| 20 | +\* Refer to Rust's [platform support page][platform-support-doc] for more |
| 21 | + information on Rust's tiered platform support. |
| 22 | + |
| 23 | +Libraries |
| 24 | +--------- |
| 25 | + |
| 26 | +- [Avoid allocations and copying in `Vec::leak`][89337] |
| 27 | +- [Add `#[repr(i8)]` to `Ordering`][89507] |
| 28 | +- [Optimize `File::read_to_end` and `read_to_string`][89582] |
| 29 | +- [Update to Unicode 14.0][89614] |
| 30 | +- [Many more functions are marked `#[must_use]`][89692], producing a warning |
| 31 | + when ignoring their return value. This helps catch mistakes such as expecting |
| 32 | + a function to mutate a value in place rather than return a new value. |
| 33 | + |
| 34 | +Stabilised APIs |
| 35 | +--------------- |
| 36 | + |
| 37 | +- [`[T; N]::as_mut_slice`][`array::as_mut_slice`] |
| 38 | +- [`[T; N]::as_slice`][`array::as_slice`] |
| 39 | +- [`collections::TryReserveError`] |
| 40 | +- [`HashMap::try_reserve`] |
| 41 | +- [`HashSet::try_reserve`] |
| 42 | +- [`String::try_reserve`] |
| 43 | +- [`String::try_reserve_exact`] |
| 44 | +- [`Vec::try_reserve`] |
| 45 | +- [`Vec::try_reserve_exact`] |
| 46 | +- [`VecDeque::try_reserve`] |
| 47 | +- [`VecDeque::try_reserve_exact`] |
| 48 | +- [`Iterator::map_while`] |
| 49 | +- [`iter::MapWhile`] |
| 50 | +- [`proc_macro::is_available`] |
| 51 | +- [`Command::get_program`] |
| 52 | +- [`Command::get_args`] |
| 53 | +- [`Command::get_envs`] |
| 54 | +- [`Command::get_current_dir`] |
| 55 | +- [`CommandArgs`] |
| 56 | +- [`CommandEnvs`] |
| 57 | + |
| 58 | +These APIs are now usable in const contexts: |
| 59 | + |
| 60 | +- [`hint::unreachable_unchecked`] |
| 61 | + |
| 62 | +Cargo |
| 63 | +----- |
| 64 | + |
| 65 | +- [Stabilize custom profiles][cargo/9943] |
| 66 | + |
| 67 | +Compatibility notes |
| 68 | +------------------- |
| 69 | + |
| 70 | +Internal changes |
| 71 | +---------------- |
| 72 | +These changes provide no direct user facing benefits, but represent significant |
| 73 | +improvements to the internals and overall performance of rustc |
| 74 | +and related tools. |
| 75 | + |
| 76 | +- [Added an experimental backend for codegen with `libgccjit`.][87260] |
| 77 | + |
| 78 | +[86191]: https://github.com/rust-lang/rust/pull/86191/ |
| 79 | +[87220]: https://github.com/rust-lang/rust/pull/87220/ |
| 80 | +[87260]: https://github.com/rust-lang/rust/pull/87260/ |
| 81 | +[88243]: https://github.com/rust-lang/rust/pull/88243/ |
| 82 | +[88321]: https://github.com/rust-lang/rust/pull/88321/ |
| 83 | +[88529]: https://github.com/rust-lang/rust/pull/88529/ |
| 84 | +[88690]: https://github.com/rust-lang/rust/pull/88690/ |
| 85 | +[88952]: https://github.com/rust-lang/rust/pull/88952/ |
| 86 | +[89337]: https://github.com/rust-lang/rust/pull/89337/ |
| 87 | +[89507]: https://github.com/rust-lang/rust/pull/89507/ |
| 88 | +[89508]: https://github.com/rust-lang/rust/pull/89508/ |
| 89 | +[89582]: https://github.com/rust-lang/rust/pull/89582/ |
| 90 | +[89597]: https://github.com/rust-lang/rust/pull/89597/ |
| 91 | +[89614]: https://github.com/rust-lang/rust/pull/89614/ |
| 92 | +[89692]: https://github.com/rust-lang/rust/issues/89692/ |
| 93 | +[cargo/9943]: https://github.com/rust-lang/cargo/pull/9943/ |
| 94 | +[`array::as_mut_slice`]: https://doc.rust-lang.org/std/primitive.array.html#method.as_mut_slice |
| 95 | +[`array::as_slice`]: https://doc.rust-lang.org/std/primitive.array.html#method.as_slice |
| 96 | +[`collections::TryReserveError`]: https://doc.rust-lang.org/std/collections/struct.TryReserveError.html |
| 97 | +[`HashMap::try_reserve`]: https://doc.rust-lang.org/std/collections/hash_map/struct.HashMap.html#method.try_reserve |
| 98 | +[`HashSet::try_reserve`]: https://doc.rust-lang.org/std/collections/hash_set/struct.HashSet.html#method.try_reserve |
| 99 | +[`String::try_reserve`]: https://doc.rust-lang.org/alloc/string/struct.String.html#method.try_reserve |
| 100 | +[`String::try_reserve_exact`]: https://doc.rust-lang.org/alloc/string/struct.String.html#method.try_reserve_exact |
| 101 | +[`Vec::try_reserve`]: https://doc.rust-lang.org/std/vec/struct.Vec.html#method.try_reserve |
| 102 | +[`Vec::try_reserve_exact`]: https://doc.rust-lang.org/std/vec/struct.Vec.html#method.try_reserve_exact |
| 103 | +[`VecDeque::try_reserve`]: https://doc.rust-lang.org/std/collections/struct.VecDeque.html#method.try_reserve |
| 104 | +[`VecDeque::try_reserve_exact`]: https://doc.rust-lang.org/std/collections/struct.VecDeque.html#method.try_reserve_exact |
| 105 | +[`Iterator::map_while`]: https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.map_while |
| 106 | +[`iter::MapWhile`]: https://doc.rust-lang.org/std/iter/struct.MapWhile.html |
| 107 | +[`proc_macro::is_available`]: https://doc.rust-lang.org/proc_macro/fn.is_available.html |
| 108 | +[`Command::get_program`]: https://doc.rust-lang.org/std/process/struct.Command.html#method.get_program |
| 109 | +[`Command::get_args`]: https://doc.rust-lang.org/std/process/struct.Command.html#method.get_args |
| 110 | +[`Command::get_envs`]: https://doc.rust-lang.org/std/process/struct.Command.html#method.get_envs |
| 111 | +[`Command::get_current_dir`]: https://doc.rust-lang.org/std/process/struct.Command.html#method.get_current_dir |
| 112 | +[`CommandArgs`]: https://doc.rust-lang.org/std/process/struct.CommandArgs.html |
| 113 | +[`CommandEnvs`]: https://doc.rust-lang.org/std/process/struct.CommandEnvs.html |
| 114 | + |
1 | 115 | Version 1.56.1 (2021-11-01)
|
2 | 116 | ===========================
|
3 | 117 |
|
|
85 | 199 | - [Cargo supports specifying a minimum supported Rust version in Cargo.toml.][`rust-version`]
|
86 | 200 | This has no effect at present on dependency version selection.
|
87 | 201 | We encourage crates to specify their minimum supported Rust version, and we encourage CI systems
|
88 |
| - that support Rust code to include a crate's specified minimum version in the text matrix for that |
| 202 | + that support Rust code to include a crate's specified minimum version in the test matrix for that |
89 | 203 | crate by default.
|
90 | 204 |
|
91 | 205 | Compatibility notes
|
|
0 commit comments