|
| 1 | +Version 1.35.0 (2019-05-23) |
| 2 | +========================== |
| 3 | + |
| 4 | +Language |
| 5 | +-------- |
| 6 | +- [`FnOnce`, `FnMut`, and the `Fn` traits are now implemented for `Box<FnOnce>`, |
| 7 | + `Box<FnMut>`, and `Box<Fn>` respectively.][59500] |
| 8 | +- [You can now coerce closures into unsafe function pointers.][59580] e.g. |
| 9 | + ```rust |
| 10 | + unsafe fn call_unsafe(func: unsafe fn()) { |
| 11 | + func() |
| 12 | + } |
| 13 | + |
| 14 | + pub fn main() { |
| 15 | + unsafe { call_unsafe(|| {}); } |
| 16 | + } |
| 17 | + ``` |
| 18 | + |
| 19 | + |
| 20 | +Compiler |
| 21 | +-------- |
| 22 | +- [Added the `armv6-unknown-freebsd-gnueabihf` and |
| 23 | + `armv7-unknown-freebsd-gnueabihf` targets.][58080] |
| 24 | +- [Added the `wasm32-unknown-wasi` target.][59464] |
| 25 | + |
| 26 | + |
| 27 | +Libraries |
| 28 | +--------- |
| 29 | +- [`Thread` will now show its ID in `Debug` output.][59460] |
| 30 | +- [`StdinLock`, `StdoutLock`, and `StderrLock` now implement `AsRawFd`.][59512] |
| 31 | +- [`alloc::System` now implements `Default`.][59451] |
| 32 | +- [Expanded `Debug` output (`{:#?}`) for structs now has a trailing comma on the |
| 33 | + last field.][59076] |
| 34 | +- [`char::{ToLowercase, ToUppercase}` now |
| 35 | + implement `ExactSizeIterator`.][58778] |
| 36 | +- [All `NonZero` numeric types now implement `FromStr`.][58717] |
| 37 | +- [Removed the `Read` trait bounds |
| 38 | + on the `BufReader::{get_ref, get_mut, into_inner}` methods.][58423] |
| 39 | +- [You can now call the `dbg!` macro without any parameters to print the file |
| 40 | + and line where it is called.][57847] |
| 41 | +- [In place ASCII case conversions are now up to 4× faster.][59283] |
| 42 | + e.g. `str::make_ascii_lowercase` |
| 43 | +- [`hash_map::{OccupiedEntry, VacantEntry}` now implement `Sync` |
| 44 | + and `Send`.][58369] |
| 45 | + |
| 46 | +Stabilized APIs |
| 47 | +--------------- |
| 48 | +- [`f32::copysign`] |
| 49 | +- [`f64::copysign`] |
| 50 | +- [`RefCell::replace_with`] |
| 51 | +- [`RefCell::map_split`] |
| 52 | +- [`ptr::hash`] |
| 53 | +- [`Range::contains`] |
| 54 | +- [`RangeFrom::contains`] |
| 55 | +- [`RangeTo::contains`] |
| 56 | +- [`RangeInclusive::contains`] |
| 57 | +- [`RangeToInclusive::contains`] |
| 58 | +- [`Option::copied`] |
| 59 | + |
| 60 | +Cargo |
| 61 | +----- |
| 62 | +- [You can now set `cargo:rustc-cdylib-link-arg` at build time to pass custom |
| 63 | + linker arguments when building a `cdylib`.][cargo/6298] Its usage is highly |
| 64 | + platform specific. |
| 65 | + |
| 66 | +Misc |
| 67 | +---- |
| 68 | +- [The Rust toolchain is now available natively for musl based distros.][58575] |
| 69 | + |
| 70 | +[59460]: https://github.com/rust-lang/rust/pull/59460/ |
| 71 | +[59464]: https://github.com/rust-lang/rust/pull/59464/ |
| 72 | +[59500]: https://github.com/rust-lang/rust/pull/59500/ |
| 73 | +[59512]: https://github.com/rust-lang/rust/pull/59512/ |
| 74 | +[59580]: https://github.com/rust-lang/rust/pull/59580/ |
| 75 | +[59283]: https://github.com/rust-lang/rust/pull/59283/ |
| 76 | +[59451]: https://github.com/rust-lang/rust/pull/59451/ |
| 77 | +[59076]: https://github.com/rust-lang/rust/pull/59076/ |
| 78 | +[58778]: https://github.com/rust-lang/rust/pull/58778/ |
| 79 | +[58717]: https://github.com/rust-lang/rust/pull/58717/ |
| 80 | +[58369]: https://github.com/rust-lang/rust/pull/58369/ |
| 81 | +[58423]: https://github.com/rust-lang/rust/pull/58423/ |
| 82 | +[58080]: https://github.com/rust-lang/rust/pull/58080/ |
| 83 | +[57847]: https://github.com/rust-lang/rust/pull/57847/ |
| 84 | +[58575]: https://github.com/rust-lang/rust/pull/58575 |
| 85 | +[cargo/6298]: https://github.com/rust-lang/cargo/pull/6298/ |
| 86 | +[`f32::copysign`]: https://doc.rust-lang.org/stable/std/primitive.f32.html#method.copysign |
| 87 | +[`f64::copysign`]: https://doc.rust-lang.org/stable/std/primitive.f64.html#method.copysign |
| 88 | +[`RefCell::replace_with`]: https://doc.rust-lang.org/stable/std/cell/struct.RefCell.html#method.replace_with |
| 89 | +[`RefCell::map_split`]: https://doc.rust-lang.org/stable/std/cell/struct.RefCell.html#method.map_split |
| 90 | +[`ptr::hash`]: https://doc.rust-lang.org/stable/std/ptr/fn.hash.html |
| 91 | +[`Range::contains`]: https://doc.rust-lang.org/std/ops/struct.Range.html#method.contains |
| 92 | +[`RangeFrom::contains`]: https://doc.rust-lang.org/std/ops/struct.RangeFrom.html#method.contains |
| 93 | +[`RangeTo::contains`]: https://doc.rust-lang.org/std/ops/struct.RangeTo.html#method.contains |
| 94 | +[`RangeInclusive::contains`]: https://doc.rust-lang.org/std/ops/struct.RangeInclusive.html#method.contains |
| 95 | +[`RangeToInclusive::contains`]: https://doc.rust-lang.org/std/ops/struct.RangeToInclusive.html#method.contains |
| 96 | +[`Option::copied`]: https://doc.rust-lang.org/std/option/enum.Option.html#method.copied |
| 97 | + |
1 | 98 | Version 1.34.2 (2019-05-14)
|
2 | 99 | ===========================
|
3 | 100 |
|
4 | 101 | * [Destabilize the `Error::type_id` function due to a security
|
5 |
| - vulnerability][60785] |
| 102 | + vulnerability][60785] ([CVE-2019-12083]) |
6 | 103 |
|
7 | 104 | [60785]: https://github.com/rust-lang/rust/pull/60785
|
| 105 | +[CVE-2019-12083]: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-12083 |
8 | 106 |
|
9 | 107 | Version 1.34.1 (2019-04-25)
|
10 | 108 | ===========================
|
|
0 commit comments