|
| 1 | +Version 1.45.0 (2020-07-16) |
| 2 | +========================== |
| 3 | + |
| 4 | +Language |
| 5 | +-------- |
| 6 | +- [Out of range float to int conversions using `as` has been defined as a saturating |
| 7 | + conversion.][71269] This was previously undefined behaviour, but you can use the |
| 8 | + `{f64, f32}::to_int_unchecked` methods to continue using the current behaviour, which |
| 9 | + may be desirable in rare performance sensitive situations. |
| 10 | +- [`mem::Discriminant<T>` now uses `T`'s discriminant type instead of always |
| 11 | + using `u64`.][70705] |
| 12 | +- [Function like procedural macros can now be used in expression, pattern, and statement |
| 13 | + positions.][68717] This means you can now use a function-like procedural macro |
| 14 | + anywhere you can use a declarative (`macro_rules!`) macro. |
| 15 | + |
| 16 | +Compiler |
| 17 | +-------- |
| 18 | +- [You can now override individual target features through the `target-feature` |
| 19 | + flag.][72094] E.g. `-C target-feature=+avx2 -C target-feature=+fma` is now |
| 20 | + equivalent to `-C target-feature=+avx2,+fma`. |
| 21 | +- [Added the `force-unwind-tables` flag.][69984] This option allows |
| 22 | + rustc to always generate unwind tables regardless of panic strategy. |
| 23 | +- [Added the `embed-bitcode` flag.][71716] This codegen flag allows rustc |
| 24 | + to include LLVM bitcode into generated `rlib`s (this is on by default). |
| 25 | +- [Added the `tiny` value to the `code-model` codegen flag.][72397] |
| 26 | +- [Added tier 3 support\* for the `mipsel-sony-psp` target.][72062] |
| 27 | +- [Added tier 3 support for the `thumbv7a-uwp-windows-msvc` target.][72133] |
| 28 | + |
| 29 | +\* Refer to Rust's [platform support page][forge-platform-support] for more |
| 30 | +information on Rust's tiered platform support. |
| 31 | + |
| 32 | + |
| 33 | +Libraries |
| 34 | +--------- |
| 35 | +- [`net::{SocketAddr, SocketAddrV4, SocketAddrV6}` now implements `PartialOrd` |
| 36 | + and `Ord`.][72239] |
| 37 | +- [`proc_macro::TokenStream` now implements `Default`.][72234] |
| 38 | +- [You can now use `char` with |
| 39 | + `ops::{Range, RangeFrom, RangeFull, RangeInclusive, RangeTo}` to iterate over |
| 40 | + a range of codepoints.][72413] E.g. |
| 41 | + you can now write the following; |
| 42 | + ```rust |
| 43 | + for ch in 'a'..='z' { |
| 44 | + print!("{}", ch); |
| 45 | + } |
| 46 | + println!(); |
| 47 | + // Prints "abcdefghijklmnopqrstuvwxyz" |
| 48 | + ``` |
| 49 | +- [`OsString` now implements `FromStr`.][71662] |
| 50 | +- [The `saturating_neg` method as been added to all signed integer primitive |
| 51 | + types, and the `saturating_abs` method has been added for all integer |
| 52 | + primitive types.][71886] |
| 53 | +- [`Arc<T>`, `Rc<T>` now implement `From<Cow<'_, T>>`, and `Box` now |
| 54 | + implements `From<Cow>` when `T` is `[T: Copy]`, `str`, `CStr`, `OsStr`, |
| 55 | + or `Path`.][71447] |
| 56 | +- [`Box<[T]>` now implements `From<[T; N]>`.][71095] |
| 57 | +- [`BitOr` and `BitOrAssign` are implemented for all `NonZero` |
| 58 | + integer types.][69813] |
| 59 | +- [The `fetch_min`, and `fetch_max` methods have been added to all atomic |
| 60 | + integer types.][72324] |
| 61 | +- [The `fetch_update` method has been added to all atomic integer types.][71843] |
| 62 | + |
| 63 | +Stabilized APIs |
| 64 | +--------------- |
| 65 | +- [`Arc::as_ptr`] |
| 66 | +- [`BTreeMap::remove_entry`] |
| 67 | +- [`Rc::as_ptr`] |
| 68 | +- [`rc::Weak::as_ptr`] |
| 69 | +- [`rc::Weak::from_raw`] |
| 70 | +- [`rc::Weak::into_raw`] |
| 71 | +- [`str::strip_prefix`] |
| 72 | +- [`str::strip_suffix`] |
| 73 | +- [`sync::Weak::as_ptr`] |
| 74 | +- [`sync::Weak::from_raw`] |
| 75 | +- [`sync::Weak::into_raw`] |
| 76 | +- [`char::UNICODE_VERSION`] |
| 77 | +- [`Span::resolved_at`] |
| 78 | +- [`Span::located_at`] |
| 79 | +- [`Span::mixed_site`] |
| 80 | +- [`unix::process::CommandExt::arg0`] |
| 81 | + |
| 82 | +Cargo |
| 83 | +----- |
| 84 | + |
| 85 | +Misc |
| 86 | +---- |
| 87 | +- [Rustdoc now supports strikethrough text in Markdown.][71928] E.g. |
| 88 | + `~~outdated information~~` becomes "~~outdated information~~". |
| 89 | +- [Added an emoji to Rustdoc's deprecated API message.][72014] |
| 90 | + |
| 91 | +Compatibility Notes |
| 92 | +------------------- |
| 93 | +- [Trying to self initialize a static value (that is creating a value using |
| 94 | + itself) is unsound and now causes a compile error.][71140] |
| 95 | +- [`{f32, f64}::powi` now returns a slightly different value on Windows.][73420] |
| 96 | + This is due to changes in LLVM's intrinsics which `{f32, f64}::powi` uses. |
| 97 | +- [Rustdoc's CLI's extra error exit codes have been removed.][71900] These were |
| 98 | + previously undocumented and not intended for public use. Rustdoc still provides |
| 99 | + a non-zero exit code on errors. |
| 100 | + |
| 101 | +Internals Only |
| 102 | +-------------- |
| 103 | +- [Make clippy a git subtree instead of a git submodule][70655] |
| 104 | +- [Unify the undo log of all snapshot types][69464] |
| 105 | + |
| 106 | +[73420]: https://github.com/rust-lang/rust/issues/73420/ |
| 107 | +[72324]: https://github.com/rust-lang/rust/pull/72324/ |
| 108 | +[71843]: https://github.com/rust-lang/rust/pull/71843/ |
| 109 | +[71886]: https://github.com/rust-lang/rust/pull/71886/ |
| 110 | +[72234]: https://github.com/rust-lang/rust/pull/72234/ |
| 111 | +[72239]: https://github.com/rust-lang/rust/pull/72239/ |
| 112 | +[72397]: https://github.com/rust-lang/rust/pull/72397/ |
| 113 | +[72413]: https://github.com/rust-lang/rust/pull/72413/ |
| 114 | +[72014]: https://github.com/rust-lang/rust/pull/72014/ |
| 115 | +[72062]: https://github.com/rust-lang/rust/pull/72062/ |
| 116 | +[72094]: https://github.com/rust-lang/rust/pull/72094/ |
| 117 | +[72133]: https://github.com/rust-lang/rust/pull/72133/ |
| 118 | +[71900]: https://github.com/rust-lang/rust/pull/71900/ |
| 119 | +[71928]: https://github.com/rust-lang/rust/pull/71928/ |
| 120 | +[71662]: https://github.com/rust-lang/rust/pull/71662/ |
| 121 | +[71716]: https://github.com/rust-lang/rust/pull/71716/ |
| 122 | +[71447]: https://github.com/rust-lang/rust/pull/71447/ |
| 123 | +[71269]: https://github.com/rust-lang/rust/pull/71269/ |
| 124 | +[71095]: https://github.com/rust-lang/rust/pull/71095/ |
| 125 | +[71140]: https://github.com/rust-lang/rust/pull/71140/ |
| 126 | +[70655]: https://github.com/rust-lang/rust/pull/70655/ |
| 127 | +[70705]: https://github.com/rust-lang/rust/pull/70705/ |
| 128 | +[69984]: https://github.com/rust-lang/rust/pull/69984/ |
| 129 | +[69813]: https://github.com/rust-lang/rust/pull/69813/ |
| 130 | +[69464]: https://github.com/rust-lang/rust/pull/69464/ |
| 131 | +[68717]: https://github.com/rust-lang/rust/pull/68717/ |
| 132 | +[`Arc::as_ptr`]: https://doc.rust-lang.org/stable/std/sync/struct.Arc.html#method.as_ptr |
| 133 | +[`BTreeMap::remove_entry`]: https://doc.rust-lang.org/stable/std/collections/struct.BTreeMap.html#method.remove_entry |
| 134 | +[`Rc::as_ptr`]: https://doc.rust-lang.org/stable/std/rc/struct.Rc.html#method.as_ptr |
| 135 | +[`rc::Weak::as_ptr`]: https://doc.rust-lang.org/stable/std/rc/struct.Weak.html#method.as_ptr |
| 136 | +[`rc::Weak::from_raw`]: https://doc.rust-lang.org/stable/std/rc/struct.Weak.html#method.from_raw |
| 137 | +[`rc::Weak::into_raw`]: https://doc.rust-lang.org/stable/std/rc/struct.Weak.html#method.into_raw |
| 138 | +[`sync::Weak::as_ptr`]: https://doc.rust-lang.org/stable/std/sync/struct.Weak.html#method.as_ptr |
| 139 | +[`sync::Weak::from_raw`]: https://doc.rust-lang.org/stable/std/sync/struct.Weak.html#method.from_raw |
| 140 | +[`sync::Weak::into_raw`]: https://doc.rust-lang.org/stable/std/sync/struct.Weak.html#method.into_raw |
| 141 | +[`str::strip_prefix`]: https://doc.rust-lang.org/stable/std/primitive.str.html#method.strip_prefix |
| 142 | +[`str::strip_suffix`]: https://doc.rust-lang.org/stable/std/primitive.str.html#method.strip_suffix |
| 143 | +[`char::UNICODE_VERSION`]: https://doc.rust-lang.org/stable/std/char/constant.UNICODE_VERSION.html |
| 144 | +[`Span::resolved_at`]: https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.resolved_at |
| 145 | +[`Span::located_at`]: https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.located_at |
| 146 | +[`Span::mixed_site`]: https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.mixed_site |
| 147 | +[`unix::process::CommandExt::arg0`]: https://doc.rust-lang.org/std/os/unix/process/trait.CommandExt.html#tymethod.arg0 |
| 148 | + |
| 149 | + |
| 150 | +Version 1.44.1 (2020-06-18) |
| 151 | +=========================== |
| 152 | + |
| 153 | +* [rustfmt accepts rustfmt_skip in cfg_attr again.][73078] |
| 154 | +* [Don't hash executable filenames on apple platforms, fixing backtraces.][cargo/8329] |
| 155 | +* [Fix crashes when finding backtrace on macOS.][71397] |
| 156 | +* [Clippy applies lint levels into different files.][clippy/5356] |
| 157 | + |
| 158 | +[71397]: https://github.com/rust-lang/rust/issues/71397 |
| 159 | +[73078]: https://github.com/rust-lang/rust/issues/73078 |
| 160 | +[cargo/8329]: https://github.com/rust-lang/cargo/pull/8329 |
| 161 | +[clippy/5356]: https://github.com/rust-lang/rust-clippy/issues/5356 |
| 162 | + |
| 163 | + |
1 | 164 | Version 1.44.0 (2020-06-04)
|
2 | 165 | ==========================
|
3 | 166 |
|
|
0 commit comments