|
| 1 | +Version 1.59.0 (2022-02-24) |
| 2 | +========================== |
| 3 | + |
| 4 | +Language |
| 5 | +-------- |
| 6 | + |
| 7 | +- [Stabilize default arguments for const generics][90207] |
| 8 | +- [Stabilize destructuring assignment][90521] |
| 9 | +- [Relax private in public lint on generic bounds and where clauses of trait impls][90586] |
| 10 | +- [Stabilize asm! and global_asm! for x86, x86_64, ARM, Aarch64, and RISC-V][91728] |
| 11 | + |
| 12 | +Compiler |
| 13 | +-------- |
| 14 | + |
| 15 | +- [Stabilize new symbol mangling format, leaving it opt-in (-Csymbol-mangling-version=v0)][90128] |
| 16 | +- [Emit LLVM optimization remarks when enabled with `-Cremark`][90833] |
| 17 | +- [Fix sparc64 ABI for aggregates with floating point members][91003] |
| 18 | +- [Warn when a `#[test]`-like built-in attribute macro is present multiple times.][91172] |
| 19 | +- [Add support for riscv64gc-unknown-freebsd][91284] |
| 20 | +- [Stabilize `-Z emit-future-incompat` as `--json future-incompat`][91535] |
| 21 | + |
| 22 | +Libraries |
| 23 | +--------- |
| 24 | + |
| 25 | +- [Remove unnecessary bounds for some Hash{Map,Set} methods][91593] |
| 26 | + |
| 27 | +Stabilized APIs |
| 28 | +--------------- |
| 29 | + |
| 30 | +- [`std::thread::available_parallelism`][available_parallelism] |
| 31 | +- [`Result::copied`][result-copied] |
| 32 | +- [`Result::cloned`][result-cloned] |
| 33 | +- [`arch::asm!`][asm] |
| 34 | +- [`arch::global_asm!`][global_asm] |
| 35 | +- [`ops::ControlFlow::is_break`][is_break] |
| 36 | +- [`ops::ControlFlow::is_continue`][is_continue] |
| 37 | +- [`TryFrom<char> for u8`][try_from_char_u8] |
| 38 | +- [`char::TryFromCharError`][try_from_char_err] |
| 39 | + implementing `Clone`, `Debug`, `Display`, `PartialEq`, `Copy`, `Eq`, `Error` |
| 40 | +- [`iter::zip`][zip] |
| 41 | +- [`NonZeroU8::is_power_of_two`][is_power_of_two8] |
| 42 | +- [`NonZeroU16::is_power_of_two`][is_power_of_two16] |
| 43 | +- [`NonZeroU32::is_power_of_two`][is_power_of_two32] |
| 44 | +- [`NonZeroU64::is_power_of_two`][is_power_of_two64] |
| 45 | +- [`NonZeroU128::is_power_of_two`][is_power_of_two128] |
| 46 | +- [`DoubleEndedIterator for ToLowercase`][lowercase] |
| 47 | +- [`DoubleEndedIterator for ToUppercase`][uppercase] |
| 48 | +- [`TryFrom<&mut [T]> for [T; N]`][tryfrom_ref_arr] |
| 49 | +- [`UnwindSafe for Once`][unwindsafe_once] |
| 50 | +- [`RefUnwindSafe for Once`][refunwindsafe_once] |
| 51 | +- [armv8 neon intrinsics for aarch64][stdarch/1266] |
| 52 | + |
| 53 | +Const-stable: |
| 54 | + |
| 55 | +- [`mem::MaybeUninit::as_ptr`][muninit_ptr] |
| 56 | +- [`mem::MaybeUninit::assume_init`][muninit_init] |
| 57 | +- [`mem::MaybeUninit::assume_init_ref`][muninit_init_ref] |
| 58 | +- [`ffi::CStr::from_bytes_with_nul_unchecked`][cstr_from_bytes] |
| 59 | + |
| 60 | +Cargo |
| 61 | +----- |
| 62 | + |
| 63 | +- [Stabilize the `strip` profile option][cargo/10088] |
| 64 | +- [Stabilize future-incompat-report][cargo/10165] |
| 65 | +- [Support abbreviating `--release` as `-r`][cargo/10133] |
| 66 | +- [Support `term.quiet` configuration][cargo/10152] |
| 67 | +- [Remove `--host` from cargo {publish,search,login}][cargo/10145] |
| 68 | + |
| 69 | +Compatibility Notes |
| 70 | +------------------- |
| 71 | + |
| 72 | +- [Refactor weak symbols in std::sys::unix][90846] |
| 73 | + This may add new, versioned, symbols when building with a newer glibc, as the |
| 74 | + standard library uses weak linkage rather than dynamically attempting to load |
| 75 | + certain symbols at runtime. |
| 76 | +- [Deprecate crate_type and crate_name nested inside `#![cfg_attr]`][83744] |
| 77 | + This adds a future compatibility lint to supporting the use of cfg_attr |
| 78 | + wrapping either crate_type or crate_name specification within Rust files; |
| 79 | + it is recommended that users migrate to setting the equivalent command line |
| 80 | + flags. |
| 81 | +- [Remove effect of `#[no_link]` attribute on name resolution][92034] |
| 82 | + This may expose new names, leading to conflicts with preexisting names in a |
| 83 | + given namespace and a compilation failure. |
| 84 | +- [Cargo will document libraries before binaries.][cargo/10172] |
| 85 | +- [Respect doc=false in dependencies, not just the root crate][cargo/10201] |
| 86 | +- [Weaken guarantee around advancing underlying iterators in zip][83791] |
| 87 | +- [Make split_inclusive() on an empty slice yield an empty output][89825] |
| 88 | +- [Update std::env::temp_dir to use GetTempPath2 on Windows when available.][89999] |
| 89 | + |
| 90 | +Internal Changes |
| 91 | +---------------- |
| 92 | + |
| 93 | +These changes provide no direct user facing benefits, but represent significant |
| 94 | +improvements to the internals and overall performance of rustc |
| 95 | +and related tools. |
| 96 | + |
| 97 | +- [Fix many cases of normalization-related ICEs][91255] |
| 98 | +- [Replace dominators algorithm with simple Lengauer-Tarjan][85013] |
| 99 | +- [Store liveness in interval sets for region inference][90637] |
| 100 | + |
| 101 | +- [Remove `in_band_lifetimes` from the compiler and standard library, in preparation for removing this |
| 102 | + unstable feature.][91867] |
| 103 | + |
| 104 | +[91867]: https://github.com/rust-lang/rust/issues/91867 |
| 105 | +[83744]: https://github.com/rust-lang/rust/pull/83744/ |
| 106 | +[83791]: https://github.com/rust-lang/rust/pull/83791/ |
| 107 | +[85013]: https://github.com/rust-lang/rust/pull/85013/ |
| 108 | +[89825]: https://github.com/rust-lang/rust/pull/89825/ |
| 109 | +[89999]: https://github.com/rust-lang/rust/pull/89999/ |
| 110 | +[90128]: https://github.com/rust-lang/rust/pull/90128/ |
| 111 | +[90207]: https://github.com/rust-lang/rust/pull/90207/ |
| 112 | +[90521]: https://github.com/rust-lang/rust/pull/90521/ |
| 113 | +[90586]: https://github.com/rust-lang/rust/pull/90586/ |
| 114 | +[90637]: https://github.com/rust-lang/rust/pull/90637/ |
| 115 | +[90833]: https://github.com/rust-lang/rust/pull/90833/ |
| 116 | +[90846]: https://github.com/rust-lang/rust/pull/90846/ |
| 117 | +[91003]: https://github.com/rust-lang/rust/pull/91003/ |
| 118 | +[91172]: https://github.com/rust-lang/rust/pull/91172/ |
| 119 | +[91255]: https://github.com/rust-lang/rust/pull/91255/ |
| 120 | +[91284]: https://github.com/rust-lang/rust/pull/91284/ |
| 121 | +[91535]: https://github.com/rust-lang/rust/pull/91535/ |
| 122 | +[91593]: https://github.com/rust-lang/rust/pull/91593/ |
| 123 | +[91728]: https://github.com/rust-lang/rust/pull/91728/ |
| 124 | +[91878]: https://github.com/rust-lang/rust/pull/91878/ |
| 125 | +[91896]: https://github.com/rust-lang/rust/pull/91896/ |
| 126 | +[91926]: https://github.com/rust-lang/rust/pull/91926/ |
| 127 | +[91984]: https://github.com/rust-lang/rust/pull/91984/ |
| 128 | +[92020]: https://github.com/rust-lang/rust/pull/92020/ |
| 129 | +[92034]: https://github.com/rust-lang/rust/pull/92034/ |
| 130 | +[92483]: https://github.com/rust-lang/rust/pull/92483/ |
| 131 | +[cargo/10088]: https://github.com/rust-lang/cargo/pull/10088/ |
| 132 | +[cargo/10133]: https://github.com/rust-lang/cargo/pull/10133/ |
| 133 | +[cargo/10145]: https://github.com/rust-lang/cargo/pull/10145/ |
| 134 | +[cargo/10152]: https://github.com/rust-lang/cargo/pull/10152/ |
| 135 | +[cargo/10165]: https://github.com/rust-lang/cargo/pull/10165/ |
| 136 | +[cargo/10172]: https://github.com/rust-lang/cargo/pull/10172/ |
| 137 | +[cargo/10201]: https://github.com/rust-lang/cargo/pull/10201/ |
| 138 | +[cargo/10269]: https://github.com/rust-lang/cargo/pull/10269/ |
| 139 | + |
| 140 | +[cstr_from_bytes]: https://doc.rust-lang.org/stable/std/ffi/struct.CStr.html#method.from_bytes_with_nul_unchecked |
| 141 | +[muninit_ptr]: https://doc.rust-lang.org/stable/std/mem/union.MaybeUninit.html#method.as_ptr |
| 142 | +[muninit_init]: https://doc.rust-lang.org/stable/std/mem/union.MaybeUninit.html#method.assume_init |
| 143 | +[muninit_init_ref]: https://doc.rust-lang.org/stable/std/mem/union.MaybeUninit.html#method.assume_init_ref |
| 144 | +[unwindsafe_once]: https://doc.rust-lang.org/stable/std/sync/struct.Once.html#impl-UnwindSafe |
| 145 | +[refunwindsafe_once]: https://doc.rust-lang.org/stable/std/sync/struct.Once.html#impl-RefUnwindSafe |
| 146 | +[tryfrom_ref_arr]: https://doc.rust-lang.org/stable/std/convert/trait.TryFrom.html#impl-TryFrom%3C%26%27_%20mut%20%5BT%5D%3E |
| 147 | +[lowercase]: https://doc.rust-lang.org/stable/std/char/struct.ToLowercase.html#impl-DoubleEndedIterator |
| 148 | +[uppercase]: https://doc.rust-lang.org/stable/std/char/struct.ToUppercase.html#impl-DoubleEndedIterator |
| 149 | +[try_from_char_err]: https://doc.rust-lang.org/stable/std/char/struct.TryFromCharError.html |
| 150 | +[available_parallelism]: https://doc.rust-lang.org/stable/std/thread/fn.available_parallelism.html |
| 151 | +[result-copied]: https://doc.rust-lang.org/stable/std/result/enum.Result.html#method.copied |
| 152 | +[result-cloned]: https://doc.rust-lang.org/stable/std/result/enum.Result.html#method.cloned |
| 153 | +[asm]: https://doc.rust-lang.org/stable/core/arch/macro.asm.html |
| 154 | +[global_asm]: https://doc.rust-lang.org/stable/core/arch/macro.global_asm.html |
| 155 | +[is_break]: https://doc.rust-lang.org/stable/std/ops/enum.ControlFlow.html#method.is_break |
| 156 | +[is_continue]: https://doc.rust-lang.org/stable/std/ops/enum.ControlFlow.html#method.is_continue |
| 157 | +[try_from_char_u8]: https://doc.rust-lang.org/stable/std/primitive.char.html#impl-TryFrom%3Cchar%3E |
| 158 | +[zip]: https://doc.rust-lang.org/stable/std/iter/fn.zip.html |
| 159 | +[is_power_of_two8]: https://doc.rust-lang.org/stable/core/num/struct.NonZeroU8.html#method.is_power_of_two |
| 160 | +[is_power_of_two16]: https://doc.rust-lang.org/stable/core/num/struct.NonZeroU16.html#method.is_power_of_two |
| 161 | +[is_power_of_two32]: https://doc.rust-lang.org/stable/core/num/struct.NonZeroU32.html#method.is_power_of_two |
| 162 | +[is_power_of_two64]: https://doc.rust-lang.org/stable/core/num/struct.NonZeroU64.html#method.is_power_of_two |
| 163 | +[is_power_of_two128]: https://doc.rust-lang.org/stable/core/num/struct.NonZeroU128.html#method.is_power_of_two |
| 164 | +[stdarch/1266]: https://github.com/rust-lang/stdarch/pull/1266 |
| 165 | + |
1 | 166 | Version 1.58.1 (2022-01-19)
|
2 | 167 | ===========================
|
3 | 168 |
|
|
0 commit comments