|
| 1 | +Version 1.41.0 (2020-01-30) |
| 2 | +=========================== |
| 3 | + |
| 4 | +Language |
| 5 | +-------- |
| 6 | + |
| 7 | +- [You can now pass type parameters to foreign items when implementing |
| 8 | + traits.][65879] E.g. You can now write `impl<T> From<Foo> for Vec<T> {}`. |
| 9 | +- [You can now arbitrarily nest receiver types in the `self` position.][64325] E.g. you can |
| 10 | + now write `fn foo(self: Box<Box<Self>>) {}`. Previously only `Self`, `&Self`, |
| 11 | + `&mut Self`, `Arc<Self>`, `Rc<Self>`, and `Box<Self>` were allowed. |
| 12 | +- [You can now use any valid identifier in a `format_args` macro.][66847] |
| 13 | + Previously identifiers starting with an underscore were not allowed. |
| 14 | +- [Visibility modifiers (e.g. `pub`) are now syntactically allowed on trait items and |
| 15 | + enum variants.][66183] These are still rejected semantically, but |
| 16 | + can be seen and parsed by procedural macros and conditional compilation. |
| 17 | + |
| 18 | +Compiler |
| 19 | +-------- |
| 20 | + |
| 21 | +- [Rustc will now warn if you have unused loop `'label`s.][66325] |
| 22 | +- [Removed support for the `i686-unknown-dragonfly` target.][67255] |
| 23 | +- [Added tier 3 support\* for the `riscv64gc-unknown-linux-gnu` target.][66661] |
| 24 | +- [You can now pass an arguments file passing the `@path` syntax |
| 25 | + to rustc.][66172] Note that the format differs somewhat from what is |
| 26 | + found in other tooling; please see [the documentation][argfile-docs] for |
| 27 | + more information. |
| 28 | +- [You can now provide `--extern` flag without a path, indicating that it is |
| 29 | + available from the search path or specified with an `-L` flag.][64882] |
| 30 | + |
| 31 | +\* Refer to Rust's [platform support page][forge-platform-support] for more |
| 32 | +information on Rust's tiered platform support. |
| 33 | + |
| 34 | +[argfile-docs]: https://doc.rust-lang.org/nightly/rustc/command-line-arguments.html#path-load-command-line-flags-from-a-path |
| 35 | + |
| 36 | +Libraries |
| 37 | +--------- |
| 38 | + |
| 39 | +- [The `core::panic` module is now stable.][66771] It was already stable |
| 40 | + through `std`. |
| 41 | +- [`NonZero*` numerics now implement `From<NonZero*>` if it's a smaller integer |
| 42 | + width.][66277] E.g. `NonZeroU16` now implements `From<NonZeroU8>`. |
| 43 | +- [`MaybeUninit<T>` now implements `fmt::Debug`.][65013] |
| 44 | + |
| 45 | +Stabilized APIs |
| 46 | +--------------- |
| 47 | + |
| 48 | +- [`Result::map_or`] |
| 49 | +- [`Result::map_or_else`] |
| 50 | +- [`std::rc::Weak::weak_count`] |
| 51 | +- [`std::rc::Weak::strong_count`] |
| 52 | +- [`std::sync::Weak::weak_count`] |
| 53 | +- [`std::sync::Weak::strong_count`] |
| 54 | + |
| 55 | +Cargo |
| 56 | +----- |
| 57 | + |
| 58 | +- [Cargo will now document all the private items for binary crates |
| 59 | + by default.][cargo/7593] |
| 60 | +- [`cargo-install` will now reinstall the package if it detects that it is out |
| 61 | + of date.][cargo/7560] |
| 62 | +- [Cargo.lock now uses a more git friendly format that should help to reduce |
| 63 | + merge conflicts.][cargo/7579] |
| 64 | +- [You can now override specific dependencies's build settings][cargo/7591] E.g. |
| 65 | + `[profile.dev.overrides.image] opt-level = 2` sets the `image` crate's |
| 66 | + optimisation level to `2` for debug builds. You can also use |
| 67 | + `[profile.<profile>.build_overrides]` to override build scripts and |
| 68 | + their dependencies. |
| 69 | + |
| 70 | +Misc |
| 71 | +---- |
| 72 | + |
| 73 | +- [You can now specify `edition` in documentation code blocks to compile the block |
| 74 | + for that edition.][66238] E.g. `edition2018` tells rustdoc that the code sample |
| 75 | + should be compiled the 2018 edition of Rust. |
| 76 | +- [You can now provide custom themes to rustdoc with `--theme`, and check the |
| 77 | + current theme with `--check-theme`.][54733] |
| 78 | +- [You can use `#[cfg(doc)]` to compile an item when building documentation.][61351] |
| 79 | + |
| 80 | +Compatibility Notes |
| 81 | +------------------- |
| 82 | + |
| 83 | +- [As previously announced 1.41.0 will be the last tier 1 release for 32-bit |
| 84 | + Apple targets.][apple-32bit-drop] This means that the source code is still |
| 85 | + available to build, but the targets are no longer being tested and release |
| 86 | + binaries for those platforms will no longer be distributed by the Rust project. |
| 87 | + Please refer to the linked blog post for more information. |
| 88 | + |
| 89 | +[54733]: https://github.com/rust-lang/rust/pull/54733/ |
| 90 | +[61351]: https://github.com/rust-lang/rust/pull/61351/ |
| 91 | +[67255]: https://github.com/rust-lang/rust/pull/67255/ |
| 92 | +[66661]: https://github.com/rust-lang/rust/pull/66661/ |
| 93 | +[66771]: https://github.com/rust-lang/rust/pull/66771/ |
| 94 | +[66847]: https://github.com/rust-lang/rust/pull/66847/ |
| 95 | +[66238]: https://github.com/rust-lang/rust/pull/66238/ |
| 96 | +[66277]: https://github.com/rust-lang/rust/pull/66277/ |
| 97 | +[66325]: https://github.com/rust-lang/rust/pull/66325/ |
| 98 | +[66172]: https://github.com/rust-lang/rust/pull/66172/ |
| 99 | +[66183]: https://github.com/rust-lang/rust/pull/66183/ |
| 100 | +[65879]: https://github.com/rust-lang/rust/pull/65879/ |
| 101 | +[65013]: https://github.com/rust-lang/rust/pull/65013/ |
| 102 | +[64882]: https://github.com/rust-lang/rust/pull/64882/ |
| 103 | +[64325]: https://github.com/rust-lang/rust/pull/64325/ |
| 104 | +[cargo/7560]: https://github.com/rust-lang/cargo/pull/7560/ |
| 105 | +[cargo/7579]: https://github.com/rust-lang/cargo/pull/7579/ |
| 106 | +[cargo/7591]: https://github.com/rust-lang/cargo/pull/7591/ |
| 107 | +[cargo/7593]: https://github.com/rust-lang/cargo/pull/7593/ |
| 108 | +[`Result::map_or_else`]: https://doc.rust-lang.org/std/result/enum.Result.html#method.map_or_else |
| 109 | +[`Result::map_or`]: https://doc.rust-lang.org/std/result/enum.Result.html#method.map_or |
| 110 | +[`std::rc::Weak::weak_count`]: https://doc.rust-lang.org/std/rc/struct.Weak.html#method.weak_count |
| 111 | +[`std::rc::Weak::strong_count`]: https://doc.rust-lang.org/std/rc/struct.Weak.html#method.strong_count |
| 112 | +[`std::sync::Weak::weak_count`]: https://doc.rust-lang.org/std/sync/struct.Weak.html#method.weak_count |
| 113 | +[`std::sync::Weak::strong_count`]: https://doc.rust-lang.org/std/sync/struct.Weak.html#method.strong_count |
| 114 | +[apple-32bit-drop]: https://blog.rust-lang.org/2020/01/03/reducing-support-for-32-bit-apple-targets.html |
| 115 | + |
1 | 116 | Version 1.40.0 (2019-12-19)
|
2 | 117 | ===========================
|
3 | 118 |
|
|
0 commit comments