| 
 | 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