|
| 1 | +Version 1.24.0 (2018-02-15) |
| 2 | +========================== |
| 3 | + |
| 4 | +Language |
| 5 | +-------- |
| 6 | +- [External `sysv64` ffi is now available.][46528] |
| 7 | + eg. `extern "sysv64" fn foo () {}` |
| 8 | + |
| 9 | +Compiler |
| 10 | +-------- |
| 11 | +- [rustc now uses 16 codegen units by default for release builds.][46910] |
| 12 | + For the fastest builds, utilize `codegen-units=1`. |
| 13 | +- [Added `armv4t-unknown-linux-gnueabi` target.][47018] |
| 14 | +- [Add `aarch64-unknown-openbsd` support][46760] |
| 15 | + |
| 16 | +Libraries |
| 17 | +--------- |
| 18 | +- [`str::find::<char>` now uses memchr.][46735] This should lead to a 10x |
| 19 | + improvement in performance in the majority of cases. |
| 20 | +- [`OsStr`'s `Debug` implementation is now lossless and consistent |
| 21 | + with Windows.][46798] |
| 22 | +- [`time::{SystemTime, Instant}` now implement `Hash`.][46828] |
| 23 | +- [impl `From<bool>` for `AtomicBool`][46293] |
| 24 | +- [impl `From<{CString, &CStr}>` for `{Arc<CStr>, Rc<CStr>}`][45990] |
| 25 | +- [impl `From<{OsString, &OsStr}>` for `{Arc<OsStr>, Rc<OsStr>}`][45990] |
| 26 | +- [impl `From<{PathBuf, &Path}>` for `{Arc<Path>, Rc<Path>}`][45990] |
| 27 | +- [float::from_bits now just uses transmute.][46012] This provides |
| 28 | + some optimisations from LLVM. |
| 29 | +- [Copied `AsciiExt` methods onto `char`][46077] |
| 30 | +- [Remove `T: Sized` requirement on `ptr::is_null()`][46094] |
| 31 | +- [impl `From<RecvError>` for `{TryRecvError, RecvTimeoutError}`][45506] |
| 32 | +- [Optimised `f32::{min, max}` to generate more efficent x86 assembly][47080] |
| 33 | +- [`[u8]::contains` now uses memchr which provides a 3x speed improvement][46713] |
| 34 | + |
| 35 | +Stabilized APIs |
| 36 | +--------------- |
| 37 | +- [`RefCell::replace`] |
| 38 | +- [`RefCell::swap`] |
| 39 | +- [`atomic::spin_loop_hint`] |
| 40 | + |
| 41 | +The following functions can now be used in a constant expression. |
| 42 | +eg. `let buffer: [u8; size_of::<usize>()];`, `static COUNTER: AtomicUsize = AtomicUsize::new(1);` |
| 43 | + |
| 44 | +- [`AtomicBool::new`][46287] |
| 45 | +- [`AtomicUsize::new`][46287] |
| 46 | +- [`AtomicIsize::new`][46287] |
| 47 | +- [`AtomicPtr::new`][46287] |
| 48 | +- [`Cell::new`][46287] |
| 49 | +- [`{integer}::min_value`][46287] |
| 50 | +- [`{integer}::max_value`][46287] |
| 51 | +- [`mem::size_of`][46287] |
| 52 | +- [`mem::align_of`][46287] |
| 53 | +- [`ptr::null`][46287] |
| 54 | +- [`ptr::null_mut`][46287] |
| 55 | +- [`RefCell::new`][46287] |
| 56 | +- [`UnsafeCell::new`][46287] |
| 57 | + |
| 58 | +Cargo |
| 59 | +----- |
| 60 | +- [Added a `workspace.default-members` config that |
| 61 | + overrides implied `--all` in virtual workspaces.][cargo/4743] |
| 62 | +- [Enable incremental by default on development builds.][cargo/4817] Also added |
| 63 | + configuration keys to `Cargo.toml` and `.cargo/config` to disable on a |
| 64 | + per-project or global basis respectively. |
| 65 | + |
| 66 | +Misc |
| 67 | +---- |
| 68 | + |
| 69 | +Compatibility Notes |
| 70 | +------------------- |
| 71 | +- [Floating point types `Debug` impl now always prints a decimal point.][46831] |
| 72 | +- [`Ipv6Addr` now rejects superfluous `::`'s in IPv6 addresses][46671] This is |
| 73 | + in accordance with IETF RFC 4291 §2.2. |
| 74 | +- [Unwinding will no longer go past FFI boundaries, and will instead abort.][46833] |
| 75 | +- [`Formatter::flags` method is now deprecated.][46284] The `sign_plus`, |
| 76 | + `sign_minus`, `alternate`, and `sign_aware_zero_pad` should be used instead. |
| 77 | +- [Leading zeros in tuple struct members is now an error][47084] |
| 78 | +- [`column!()` macro is one-based instead of zero-based][46977] |
| 79 | +- [`fmt::Arguments` can no longer be shared across threads][45198] |
| 80 | +- [Access to `#[repr(packed)]` struct fields is now unsafe][44884] |
| 81 | + |
| 82 | +[44884]: https://github.com/rust-lang/rust/pull/44884 |
| 83 | +[45198]: https://github.com/rust-lang/rust/pull/45198 |
| 84 | +[45506]: https://github.com/rust-lang/rust/pull/45506 |
| 85 | +[45904]: https://github.com/rust-lang/rust/pull/45904 |
| 86 | +[45990]: https://github.com/rust-lang/rust/pull/45990 |
| 87 | +[46012]: https://github.com/rust-lang/rust/pull/46012 |
| 88 | +[46077]: https://github.com/rust-lang/rust/pull/46077 |
| 89 | +[46094]: https://github.com/rust-lang/rust/pull/46094 |
| 90 | +[46284]: https://github.com/rust-lang/rust/pull/46284 |
| 91 | +[46287]: https://github.com/rust-lang/rust/pull/46287 |
| 92 | +[46293]: https://github.com/rust-lang/rust/pull/46293 |
| 93 | +[46528]: https://github.com/rust-lang/rust/pull/46528 |
| 94 | +[46671]: https://github.com/rust-lang/rust/pull/46671 |
| 95 | +[46713]: https://github.com/rust-lang/rust/pull/46713 |
| 96 | +[46735]: https://github.com/rust-lang/rust/pull/46735 |
| 97 | +[46749]: https://github.com/rust-lang/rust/pull/46749 |
| 98 | +[46760]: https://github.com/rust-lang/rust/pull/46760 |
| 99 | +[46798]: https://github.com/rust-lang/rust/pull/46798 |
| 100 | +[46828]: https://github.com/rust-lang/rust/pull/46828 |
| 101 | +[46831]: https://github.com/rust-lang/rust/pull/46831 |
| 102 | +[46833]: https://github.com/rust-lang/rust/pull/46833 |
| 103 | +[46910]: https://github.com/rust-lang/rust/pull/46910 |
| 104 | +[46977]: https://github.com/rust-lang/rust/pull/46977 |
| 105 | +[47018]: https://github.com/rust-lang/rust/pull/47018 |
| 106 | +[47080]: https://github.com/rust-lang/rust/pull/47080 |
| 107 | +[47084]: https://github.com/rust-lang/rust/pull/47084 |
| 108 | +[cargo/4743]: https://github.com/rust-lang/cargo/pull/4743 |
| 109 | +[cargo/4817]: https://github.com/rust-lang/cargo/pull/4817 |
| 110 | +[`RefCell::replace`]: https://doc.rust-lang.org/std/cell/struct.RefCell.html#method.replace |
| 111 | +[`RefCell::swap`]: https://doc.rust-lang.org/std/cell/struct.RefCell.html#method.swap |
| 112 | +[`atomic::spin_loop_hint`]: https://doc.rust-lang.org/std/sync/atomic/fn.spin_loop_hint.html |
| 113 | + |
| 114 | + |
1 | 115 | Version 1.23.0 (2018-01-04)
|
2 | 116 | ==========================
|
3 | 117 |
|
|
0 commit comments