rustdoc-html-demo-10

% Rust Release Notes

Version 1.76.0 (2024-02-08)

Language

Compiler

Refer to Rust’s platform support page for more information on Rust’s tiered platform support.

Libraries

Stabilized APIs

Cargo

See Cargo release notes.

Rustdoc

Compatibility Notes

Version 1.75.0 (2023-12-28)

Language

Compiler

Refer to Rust’s platform support page for more information on Rust’s tiered platform support.

Libraries

Stabilized APIs

These APIs are now stable in const contexts:

Cargo

Rustdoc

Compatibility Notes

Internal Changes

These changes do not affect any public interfaces of Rust, but they represent significant improvements to the performance or internals of rustc and related tools.

Version 1.74.1 (2023-12-07)

Version 1.74.0 (2023-11-16)

Language

Compiler

Libraries

Stabilized APIs

These APIs are now stable in const contexts:

Cargo

Rustdoc

Compatibility Notes

Internal Changes

These changes do not affect any public interfaces of Rust, but they represent significant improvements to the performance or internals of rustc and related tools.

None this cycle.

Version 1.73.0 (2023-10-05)

Language

Compiler

Refer to Rust’s platform support page for more information on Rust’s tiered platform support.

Libraries

Stabilized APIs

These APIs are now stable in const contexts:

Cargo

Misc

Compatibility Notes

Internal Changes

These changes do not affect any public interfaces of Rust, but they represent significant improvements to the performance or internals of rustc and related tools.

Version 1.72.1 (2023-09-19)

Version 1.72.0 (2023-08-24)

Language

Compiler

Refer to Rust’s platform support page for more information on Rust’s tiered platform support.

Libraries

Rustdoc

Stabilized APIs

These APIs are now stable in const contexts:

Cargo

Compatibility Notes

Version 1.71.1 (2023-08-03)

Version 1.71.0 (2023-07-13)

Language

Compiler

Refer to Rust’s platform support page for more information on Rust’s tiered platform support.

Libraries

Stabilized APIs

These APIs are now stable in const contexts:

Cargo

Rustdoc

Misc

Compatibility Notes

Internal Changes

These changes do not affect any public interfaces of Rust, but they represent significant improvements to the performance or internals of rustc and related tools.

Version 1.70.0 (2023-06-01)

Language

Compiler

Refer to Rust’s platform support page for more information on Rust’s tiered platform support.

Libraries

Stabilized APIs

Cargo

Misc

Compatibility Notes

Internal Changes

These changes do not affect any public interfaces of Rust, but they represent significant improvements to the performance or internals of rustc and related tools.

Version 1.69.0 (2023-04-20)

Language

Compiler

Libraries

Stabilized APIs

These APIs are now stable in const contexts:

Cargo

Rustdoc

Compatibility Notes

Internal Changes

These changes do not affect any public interfaces of Rust, but they represent significant improvements to the performance or internals of rustc and related tools.

Version 1.68.2 (2023-03-28)

Version 1.68.1 (2023-03-23)

Version 1.68.0 (2023-03-09)

Language

Compiler

Libraries

Stabilized APIs

These APIs are now stable in const contexts:

Cargo

Misc

Compatibility Notes

Internal Changes

These changes do not affect any public interfaces of Rust, but they represent significant improvements to the performance or internals of rustc and related tools.

Version 1.67.1 (2023-02-09)

Version 1.67.0 (2023-01-26)

Language

Compiler

Added, updated, and removed targets:

Refer to Rust’s platform support page for more information on Rust’s tiered platform support.

Libraries

Stabilized APIs

These APIs are now stable in const contexts:

Compatibility Notes

Internal Changes

These changes do not affect any public interfaces of Rust, but they represent significant improvements to the performance or internals of rustc and related tools.

Version 1.66.1 (2023-01-10)

Version 1.66.0 (2022-12-15)

Language

Compiler

Libraries

Stabilized APIs

Rustdoc

Cargo

See detailed release notes for more.

Compatibility Notes

Internal Changes

These changes do not affect any public interfaces of Rust, but they represent significant improvements to the performance or internals of rustc and related tools.

Version 1.65.0 (2022-11-03)

Language

Compiler

New targets:

Libraries

Stabilized APIs

These APIs are now stable in const contexts:

Cargo

Compatibility Notes

Internal Changes

These changes do not affect any public interfaces of Rust, but they represent significant improvements to the performance or internals of rustc and related tools.

Version 1.64.0 (2022-09-22)

Language

Compiler

Libraries

Stabilized APIs

These types were previously stable in std::ffi, but are now also available in core and alloc:

These types were previously stable in std::os::raw, but are now also available in core::ffi and std::ffi:

These APIs are now usable in const contexts:

Cargo

Misc

Compatibility Notes

Internal Changes

These changes do not affect any public interfaces of Rust, but they represent significant improvements to the performance or internals of rustc and related tools.

Version 1.63.0 (2022-08-11)

Language

Compiler

* Refer to Rust’s platform support page for more information on Rust’s tiered platform support.

Libraries

Stabilized APIs

These APIs are now usable in const contexts:

Cargo

Compatibility Notes

Internal Changes

These changes provide no direct user facing benefits, but represent significant improvements to the internals and overall performance of rustc and related tools.

Version 1.62.1 (2022-07-19)

Rust 1.62.1 addresses a few recent regressions in the compiler and standard library, and also mitigates a CPU vulnerability on Intel SGX.

Version 1.62.0 (2022-06-30)

Language

Compiler

* Refer to Rust’s platform support page for more information on Rust’s tiered platform support.

Libraries

Stabilized APIs

Clippy

Cargo

Compatibility Notes

Internal Changes

These changes provide no direct user facing benefits, but represent significant improvements to the internals and overall performance of rustc and related tools.

Version 1.61.0 (2022-05-19)

Language

Compiler

Libraries

Stabilized APIs

These APIs are now usable in const contexts:

Cargo

No feature changes, but see compatibility notes.

Compatibility Notes

Internal Changes

These changes provide no direct user facing benefits, but represent significant improvements to the internals and overall performance of rustc and related tools.

Version 1.60.0 (2022-04-07)

Language

Compiler

* Refer to Rust’s platform support page for more information on Rust’s tiered platform support.

Libraries

Stabilized APIs

Cargo

Misc

Compatibility Notes

Internal Changes

These changes provide no direct user facing benefits, but represent significant improvements to the internals and overall performance of rustc and related tools.

Version 1.59.0 (2022-02-24)

Language

Compiler

This release disables incremental compilation, unless the user has explicitly opted in via the newly added RUSTC_FORCE_INCREMENTAL=1 environment variable. This is due to a known and relatively frequently occurring bug in incremental compilation, which causes builds to issue internal compiler errors. This particular bug is already fixed on nightly, but that fix has not yet rolled out to stable and is deemed too risky for a direct stable backport.

As always, we encourage users to test with nightly and report bugs so that we can track failures and fix issues earlier.

See 94124 for more details.

Libraries

Stabilized APIs

Const-stable:

Cargo

Compatibility Notes

Internal Changes

These changes provide no direct user facing benefits, but represent significant improvements to the internals and overall performance of rustc and related tools.

Version 1.58.1 (2022-01-20)

Version 1.58.0 (2022-01-13)

Language

Compiler

* Refer to Rust’s platform support page for more information on Rust’s tiered platform support.

Libraries

Stabilized APIs

These APIs are now usable in const contexts:

Cargo

Rustdoc

Compatibility Notes

Internal Changes

These changes provide no direct user facing benefits, but represent significant improvements to the internals and overall performance of rustc and related tools.

Version 1.57.0 (2021-12-02)

Language

Compiler

* Refer to Rust’s platform support page for more information on Rust’s tiered platform support.

Libraries

Stabilised APIs

These APIs are now usable in const contexts:

Cargo

Compatibility notes

Internal changes

These changes provide no direct user facing benefits, but represent significant improvements to the internals and overall performance of rustc and related tools.

Version 1.56.1 (2021-11-01)

Version 1.56.0 (2021-10-21)

Language

Compiler

* Refer to Rust’s platform support page for more information on Rust’s tiered platform support.

Libraries

Stabilised APIs

These APIs are now usable in const contexts:

Cargo

Compatibility notes

Internal changes

These changes provide no direct user facing benefits, but represent significant improvements to the internals and overall performance of rustc and related tools.

Version 1.55.0 (2021-09-09)

Language

Compiler

* Refer to Rust’s platform support page for more information on Rust’s tiered platform support.

Libraries

Stabilised APIs

The following previously stable functions are now const.

Cargo

Rustdoc

Compatibility Notes

Version 1.54.0 (2021-07-29)

Language

Compiler

* Refer to Rust’s platform support page for more information on Rust’s tiered platform support.

Libraries

Stabilized APIs

Cargo

Compatibility Notes

Version 1.53.0 (2021-06-17)

Language

Compiler

* Refer to Rust’s platform support page for more information on Rust’s tiered platform support.

Libraries

Stabilised APIs

Cargo

Rustdoc

Compatibility Notes

Internal Only

These changes provide no direct user facing benefits, but represent significant improvements to the internals and overall performance of rustc and related tools.

Version 1.52.1 (2021-05-10)

This release disables incremental compilation, unless the user has explicitly opted in via the newly added RUSTC_FORCE_INCREMENTAL=1 environment variable.

This is due to the widespread, and frequently occurring, breakage encountered by Rust users due to newly enabled incremental verification in 1.52.0. Notably, Rust users should upgrade to 1.52.0 or 1.52.1: the bugs that are detected by newly added incremental verification are still present in past stable versions, and are not yet fixed on any channel. These bugs can lead to miscompilation of Rust binaries.

These problems only affect incremental builds, so release builds with Cargo should not be affected unless the user has explicitly opted into incremental. Debug and check builds are affected.

See 84970 for more details.

Version 1.52.0 (2021-05-06)

Language

Compiler

Added tier 3* support for the following targets.

* Refer to Rust’s platform support page for more information on Rust’s tiered platform support.

Libraries

Stabilised APIs

The following previously stable APIs are now const.

Rustdoc

Misc

Internal Only

These changes provide no direct user facing benefits, but represent significant improvements to the internals and overall performance of rustc and related tools.

Compatibility Notes

Version 1.51.0 (2021-03-25)

Language

Compiler

* Refer to Rust’s platform support page for more information on Rust’s tiered platform support.

Libraries

Stabilized APIs

Cargo

Rustdoc

Various improvements to intra-doc links:

Misc

Compatibility Notes

Internal Only

Version 1.50.0 (2021-02-11)

Language

Compiler

* Refer to Rust’s platform support page for more information on Rust’s tiered platform support.

Libraries

Stabilized APIs

The following previously stable methods are now const.

Cargo

Misc

Compatibility Notes

Version 1.49.0 (2020-12-31)

Language

Compiler

* Refer to Rust’s platform support page for more information on Rust’s tiered platform support.

Libraries

Stabilized APIs

The following previously stable methods are now const.

Cargo

Compatibility Notes

Internal Only

These changes provide no direct user facing benefits, but represent significant improvements to the internals and overall performance of rustc and related tools.

Version 1.48.0 (2020-11-19)

Language

Compiler

* Refer to Rust’s platform support page for more information on Rust’s tiered platform support.

Libraries

Stabilized APIs

The following previously stable methods are now const fn’s:

Cargo

Rustdoc

Compatibility Notes

Internal Only

These changes provide no direct user facing benefits, but represent significant improvements to the internals and overall performance of rustc and related tools.

Version 1.47.0 (2020-10-08)

Language

Compiler

* Refer to Rust’s platform support page for more information on Rust’s tiered platform support.

Libraries

Stabilized APIs

The following previously stable APIs have now been made const.

Cargo

Misc

Compatibility Notes

Internal Only

Version 1.46.0 (2020-08-27)

Language

Compiler

Libraries

Stabilized APIs

Cargo

Added a number of new environment variables that are now available when compiling your crate.

Compatibility Notes

Version 1.45.2 (2020-08-03)

Version 1.45.1 (2020-07-30)

Version 1.45.0 (2020-07-16)

Language

Compiler

* Refer to Rust’s platform support page for more information on Rust’s tiered platform support.

Libraries

Stabilized APIs

Cargo

Misc

Compatibility Notes

Internals Only

Version 1.44.1 (2020-06-18)

Version 1.44.0 (2020-06-04)

Language

Syntax-only changes

These are still rejected semantically, so you will likely receive an error but these changes can be seen and parsed by macros and conditional compilation.

Compiler

Libraries

Stabilized APIs

Cargo

Misc

Compatibility Notes

Internal Only

These changes provide no direct user facing benefits, but represent significant improvements to the internals and overall performance of rustc and related tools.

Version 1.43.1 (2020-05-07)

Version 1.43.0 (2020-04-23)

Language

Syntax only changes

These are still rejected semantically, so you will likely receive an error but these changes can be seen and parsed by macros and conditional compilation.

Compiler

Libraries

Stabilized APIs

Cargo

Misc

Compatibility Notes

Internal Only

These changes provide no direct user facing benefits, but represent significant improvements to the internals and overall performance of rustc and related tools.

Version 1.42.0 (2020-03-12)

Language

Compiler

* Refer to Rust’s platform support page for more information on Rust’s tiered platform support.

Libraries

Stabilized APIs

Cargo

Compatibility Notes

Version 1.41.1 (2020-02-27)

Version 1.41.0 (2020-01-30)

Language

Compiler

* Refer to Rust’s platform support page for more information on Rust’s tiered platform support.

Libraries

Stabilized APIs

Cargo

Misc

Compatibility Notes

Version 1.40.0 (2019-12-19)

Language

Compiler

* Refer to Rust’s platform support page for more information on Rust’s tiered platform support.

Libraries

Stabilized APIs

Cargo

Misc

Compatibility Notes

Version 1.39.0 (2019-11-07)

Language

Compiler

* Refer to Rust’s platform support page for more information on Rust’s tiered platform support.

Libraries

Stabilized APIs

Cargo

Misc

Compatibility Notes

Version 1.38.0 (2019-09-26)

Language

Compiler

* Refer to Rust’s platform support page for more information on Rust’s tiered platform support.

Libraries

Stabilized APIs

Cargo

Rustdoc

Misc

Compatibility Notes

Version 1.37.0 (2019-08-15)

Language

Compiler

Libraries

Stabilized APIs

Cargo

Misc

Compatibility Notes

Version 1.36.0 (2019-07-04)

Language

Libraries

Stabilized APIs

Cargo

You can find further change’s in Cargo’s 1.36.0 release notes.

Clippy

There have been numerous additions and fixes to clippy, see Clippy’s 1.36.0 release notes for more details.

Misc

Compatibility Notes

Version 1.35.0 (2019-05-23)

Language

Compiler

Libraries

Stabilized APIs

Cargo

Misc

Version 1.34.2 (2019-05-14)

Version 1.34.1 (2019-04-25)

Version 1.34.0 (2019-04-11)

Language

Compiler

Libraries

Stabilized APIs

std & core

std

Cargo

Misc

Compatibility Notes

Version 1.33.0 (2019-02-28)

Language

Compiler

Libraries

Stabilized APIs

Cargo

Compatibility Notes

Version 1.32.0 (2019-01-17)

Language

2018 edition

All editions

Compiler

Libraries

The following APIs are now const functions and can be used in a const context.

Stabilized APIs

Cargo

Misc

Compatibility Notes

Version 1.31.1 (2018-12-20)

Version 1.31.0 (2018-12-06)

Language

Compiler

Libraries

Stabilized APIs

Cargo

Version 1.30.1 (2018-11-08)

Version 1.30.0 (2018-10-25)

Language

Compiler

Libraries

Stabilized APIs

Cargo

Misc

Version 1.29.2 (2018-10-11)

Version 1.29.1 (2018-09-25)

Security Notes

Version 1.29.0 (2018-09-13)

Compiler

Libraries

Stabilized APIs

Cargo

Misc

Compatibility Notes

Version 1.28.0 (2018-08-02)

Language

Compiler

Libraries

Stabilized APIs

Cargo

Misc

Compatibility Notes

Version 1.27.2 (2018-07-20)

Compatibility Notes

Version 1.27.1 (2018-07-10)

Security Notes

Compatibility Notes

Version 1.27.0 (2018-06-21)

Language

Compiler

Libraries

Stabilized APIs

Cargo

Misc

Compatibility Notes

Version 1.26.2 (2018-06-05)

Compatibility Notes

Version 1.26.1 (2018-05-29)

Tools

Compatibility Notes

Version 1.26.0 (2018-05-10)

Language

Compiler

Libraries

Stabilized APIs

Cargo

Misc

Compatibility Notes

Version 1.25.0 (2018-03-29)

Language

fn main() { let x = Foo::A; match x { | Foo::A | Foo::B => println!(“AB”), | Foo::C => println!(“C”), } }


Compiler
--------
- [Upgraded to LLVM 6.][47828]
- [Added `-C lto=val` option.][47521]
- [Added `i586-unknown-linux-musl` target][47282]

Libraries
---------
- [Impl Send for `process::Command` on Unix.][47760]
- [Impl PartialEq and Eq for `ParseCharError`.][47790]
- [`UnsafeCell::into_inner` is now safe.][47204]
- [Implement libstd for CloudABI.][47268]
- [`Float::{from_bits, to_bits}` is now available in libcore.][46931]
- [Implement `AsRef<Path>` for Component][46985]
- [Implemented `Write` for `Cursor<&mut Vec<u8>>`][46830]
- [Moved `Duration` to libcore.][46666]

Stabilized APIs
---------------
- [`Location::column`]
- [`ptr::NonNull`]

The following functions can now be used in a constant expression.
eg. `static MINUTE: Duration = Duration::from_secs(60);`
- [`Duration::new`][47300]
- [`Duration::from_secs`][47300]
- [`Duration::from_millis`][47300]

Cargo
-----
- [`cargo new` no longer removes `rust` or `rs` prefixes/suffixes.][cargo/5013]
- [`cargo new` now defaults to creating a binary crate, instead of a
  library crate.][cargo/5029]

Misc
----
- [Rust by example is now shipped with new releases][46196]

Compatibility Notes
-------------------
- [Deprecated `net::lookup_host`.][47510]
- [`rustdoc` has switched to pulldown as the default markdown renderer.][47398]
- The borrow checker was sometimes incorrectly permitting overlapping borrows
  around indexing operations (see [#47349][47349]). This has been fixed (which also
  enabled some correct code that used to cause errors (e.g. [#33903][33903] and [#46095][46095]).
- [Removed deprecated unstable attribute `#[simd]`.][47251]

[33903]: https://github.com/rust-lang/rust/pull/33903
[47947]: https://github.com/rust-lang/rust/pull/47947
[47948]: https://github.com/rust-lang/rust/pull/47948
[47760]: https://github.com/rust-lang/rust/pull/47760
[47790]: https://github.com/rust-lang/rust/pull/47790
[47828]: https://github.com/rust-lang/rust/pull/47828
[47398]: https://github.com/rust-lang/rust/pull/47398
[47510]: https://github.com/rust-lang/rust/pull/47510
[47521]: https://github.com/rust-lang/rust/pull/47521
[47204]: https://github.com/rust-lang/rust/pull/47204
[47251]: https://github.com/rust-lang/rust/pull/47251
[47268]: https://github.com/rust-lang/rust/pull/47268
[47282]: https://github.com/rust-lang/rust/pull/47282
[47300]: https://github.com/rust-lang/rust/pull/47300
[47349]: https://github.com/rust-lang/rust/pull/47349
[46931]: https://github.com/rust-lang/rust/pull/46931
[46985]: https://github.com/rust-lang/rust/pull/46985
[47006]: https://github.com/rust-lang/rust/pull/47006
[46830]: https://github.com/rust-lang/rust/pull/46830
[46095]: https://github.com/rust-lang/rust/pull/46095
[46666]: https://github.com/rust-lang/rust/pull/46666
[46196]: https://github.com/rust-lang/rust/pull/46196
[cargo/5013]: https://github.com/rust-lang/cargo/pull/5013
[cargo/5029]: https://github.com/rust-lang/cargo/pull/5029
[RFC 1358]: https://github.com/rust-lang/rfcs/pull/1358
[`Location::column`]: https://doc.rust-lang.org/std/panic/struct.Location.html#method.column
[`ptr::NonNull`]: https://doc.rust-lang.org/std/ptr/struct.NonNull.html


Version 1.24.1 (2018-03-01)
==========================

 - [Do not abort when unwinding through FFI][48251]
 - [Emit UTF-16 files for linker arguments on Windows][48318]
 - [Make the error index generator work again][48308]
 - [Cargo will warn on Windows 7 if an update is needed][cargo/5069].

[48251]: https://github.com/rust-lang/rust/issues/48251
[48308]: https://github.com/rust-lang/rust/issues/48308
[48318]: https://github.com/rust-lang/rust/issues/48318
[cargo/5069]: https://github.com/rust-lang/cargo/pull/5069


Version 1.24.0 (2018-02-15)
==========================

Language
--------
- [External `sysv64` ffi is now available.][46528]
  eg. `extern "sysv64" fn foo () {}`

Compiler
--------
- [rustc now uses 16 codegen units by default for release builds.][46910]
  For the fastest builds, utilize `codegen-units=1`.
- [Added `armv4t-unknown-linux-gnueabi` target.][47018]
- [Add `aarch64-unknown-openbsd` support][46760]

Libraries
---------
- [`str::find::<char>` now uses memchr.][46735] This should lead to a 10x
  improvement in performance in the majority of cases.
- [`OsStr`'s `Debug` implementation is now lossless and consistent
  with Windows.][46798]
- [`time::{SystemTime, Instant}` now implement `Hash`.][46828]
- [impl `From<bool>` for `AtomicBool`][46293]
- [impl `From<{CString, &CStr}>` for `{Arc<CStr>, Rc<CStr>}`][45990]
- [impl `From<{OsString, &OsStr}>` for `{Arc<OsStr>, Rc<OsStr>}`][45990]
- [impl `From<{PathBuf, &Path}>` for `{Arc<Path>, Rc<Path>}`][45990]
- [float::from_bits now just uses transmute.][46012] This provides
  some optimisations from LLVM.
- [Copied `AsciiExt` methods onto `char`][46077]
- [Remove `T: Sized` requirement on `ptr::is_null()`][46094]
- [impl `From<RecvError>` for `{TryRecvError, RecvTimeoutError}`][45506]
- [Optimised `f32::{min, max}` to generate more efficient x86 assembly][47080]
- [`[u8]::contains` now uses memchr which provides a 3x speed improvement][46713]

Stabilized APIs
---------------
- [`RefCell::replace`]
- [`RefCell::swap`]
- [`atomic::spin_loop_hint`]

The following functions can now be used in a constant expression.
eg. `let buffer: [u8; size_of::<usize>()];`, `static COUNTER: AtomicUsize = AtomicUsize::new(1);`

- [`AtomicBool::new`][46287]
- [`AtomicUsize::new`][46287]
- [`AtomicIsize::new`][46287]
- [`AtomicPtr::new`][46287]
- [`Cell::new`][46287]
- [`{integer}::min_value`][46287]
- [`{integer}::max_value`][46287]
- [`mem::size_of`][46287]
- [`mem::align_of`][46287]
- [`ptr::null`][46287]
- [`ptr::null_mut`][46287]
- [`RefCell::new`][46287]
- [`UnsafeCell::new`][46287]

Cargo
-----
- [Added a `workspace.default-members` config that
  overrides implied `--all` in virtual workspaces.][cargo/4743]
- [Enable incremental by default on development builds.][cargo/4817] Also added
  configuration keys to `Cargo.toml` and `.cargo/config` to disable on a
  per-project or global basis respectively.

Misc
----

Compatibility Notes
-------------------
- [Floating point types `Debug` impl now always prints a decimal point.][46831]
- [`Ipv6Addr` now rejects superfluous `::`'s in IPv6 addresses][46671] This is
  in accordance with IETF RFC 4291 §2.2.
- [Unwinding will no longer go past FFI boundaries, and will instead abort.][46833]
- [`Formatter::flags` method is now deprecated.][46284] The `sign_plus`,
  `sign_minus`, `alternate`, and `sign_aware_zero_pad` should be used instead.
- [Leading zeros in tuple struct members is now an error][47084]
- [`column!()` macro is one-based instead of zero-based][46977]
- [`fmt::Arguments` can no longer be shared across threads][45198]
- [Access to `#[repr(packed)]` struct fields is now unsafe][44884]
- [Cargo sets a different working directory for the compiler][cargo/4788]

[44884]: https://github.com/rust-lang/rust/pull/44884
[45198]: https://github.com/rust-lang/rust/pull/45198
[45506]: https://github.com/rust-lang/rust/pull/45506
[45990]: https://github.com/rust-lang/rust/pull/45990
[46012]: https://github.com/rust-lang/rust/pull/46012
[46077]: https://github.com/rust-lang/rust/pull/46077
[46094]: https://github.com/rust-lang/rust/pull/46094
[46284]: https://github.com/rust-lang/rust/pull/46284
[46287]: https://github.com/rust-lang/rust/pull/46287
[46293]: https://github.com/rust-lang/rust/pull/46293
[46528]: https://github.com/rust-lang/rust/pull/46528
[46671]: https://github.com/rust-lang/rust/pull/46671
[46713]: https://github.com/rust-lang/rust/pull/46713
[46735]: https://github.com/rust-lang/rust/pull/46735
[46760]: https://github.com/rust-lang/rust/pull/46760
[46798]: https://github.com/rust-lang/rust/pull/46798
[46828]: https://github.com/rust-lang/rust/pull/46828
[46831]: https://github.com/rust-lang/rust/pull/46831
[46833]: https://github.com/rust-lang/rust/pull/46833
[46910]: https://github.com/rust-lang/rust/pull/46910
[46977]: https://github.com/rust-lang/rust/pull/46977
[47018]: https://github.com/rust-lang/rust/pull/47018
[47080]: https://github.com/rust-lang/rust/pull/47080
[47084]: https://github.com/rust-lang/rust/pull/47084
[cargo/4743]: https://github.com/rust-lang/cargo/pull/4743
[cargo/4788]: https://github.com/rust-lang/cargo/pull/4788
[cargo/4817]: https://github.com/rust-lang/cargo/pull/4817
[`RefCell::replace`]: https://doc.rust-lang.org/std/cell/struct.RefCell.html#method.replace
[`RefCell::swap`]: https://doc.rust-lang.org/std/cell/struct.RefCell.html#method.swap
[`atomic::spin_loop_hint`]: https://doc.rust-lang.org/std/sync/atomic/fn.spin_loop_hint.html


Version 1.23.0 (2018-01-04)
==========================

Language
--------
- [Arbitrary `auto` traits are now permitted in trait objects.][45772]
- [rustc now uses subtyping on the left hand side of binary operations.][45435]
  Which should fix some confusing errors in some operations.

Compiler
--------
- [Enabled `TrapUnreachable` in LLVM which should mitigate the impact of
  undefined behavior.][45920]
- [rustc now suggests renaming import if names clash.][45660]
- [Display errors/warnings correctly when there are zero-width or
  wide characters.][45711]
- [rustc now avoids unnecessary copies of arguments that are
  simple bindings][45380] This should improve memory usage on average by 5-10%.
- [Updated musl used to build musl rustc to 1.1.17][45393]

Libraries
---------
- [Allow a trailing comma in `assert_eq/ne` macro][45887]
- [Implement Hash for raw pointers to unsized types][45483]
- [impl `From<*mut T>` for `AtomicPtr<T>`][45610]
- [impl `From<usize/isize>` for `AtomicUsize/AtomicIsize`.][45610]
- [Removed the `T: Sync` requirement for `RwLock<T>: Send`][45267]
- [Removed `T: Sized` requirement for `{<*const T>, <*mut T>}::as_ref`
  and `<*mut T>::as_mut`][44932]
- [Optimized `Thread::{park, unpark}` implementation][45524]
- [Improved `SliceExt::binary_search` performance.][45333]
- [impl `FromIterator<()>` for `()`][45379]
- [Copied `AsciiExt` trait methods to primitive types.][44042] Use of `AsciiExt`
  is now deprecated.

Stabilized APIs
---------------

Cargo
-----
- [Cargo now supports uninstallation of multiple packages][cargo/4561]
  eg. `cargo uninstall foo bar` uninstalls `foo` and `bar`.
- [Added unit test checking to `cargo check`][cargo/4592]
- [Cargo now lets you install a specific version
  using `cargo install --version`][cargo/4637]

Misc
----
- [Releases now ship with the Cargo book documentation.][45692]
- [rustdoc now prints rendering warnings on every run.][45324]

Compatibility Notes
-------------------
- [Changes have been made to type equality to make it more correct,
  in rare cases this could break some code.][45853] [Tracking issue for
  further information][45852]
- [`char::escape_debug` now uses Unicode 10 over 9.][45571]
- [Upgraded Android SDK to 27, and NDK to r15c.][45580] This drops support for
  Android 9, the minimum supported version is Android 14.
- [Bumped the minimum LLVM to 3.9][45326]

[44042]: https://github.com/rust-lang/rust/pull/44042
[44932]: https://github.com/rust-lang/rust/pull/44932
[45267]: https://github.com/rust-lang/rust/pull/45267
[45324]: https://github.com/rust-lang/rust/pull/45324
[45326]: https://github.com/rust-lang/rust/pull/45326
[45333]: https://github.com/rust-lang/rust/pull/45333
[45379]: https://github.com/rust-lang/rust/pull/45379
[45380]: https://github.com/rust-lang/rust/pull/45380
[45393]: https://github.com/rust-lang/rust/pull/45393
[45435]: https://github.com/rust-lang/rust/pull/45435
[45483]: https://github.com/rust-lang/rust/pull/45483
[45524]: https://github.com/rust-lang/rust/pull/45524
[45571]: https://github.com/rust-lang/rust/pull/45571
[45580]: https://github.com/rust-lang/rust/pull/45580
[45610]: https://github.com/rust-lang/rust/pull/45610
[45660]: https://github.com/rust-lang/rust/pull/45660
[45692]: https://github.com/rust-lang/rust/pull/45692
[45711]: https://github.com/rust-lang/rust/pull/45711
[45772]: https://github.com/rust-lang/rust/pull/45772
[45852]: https://github.com/rust-lang/rust/issues/45852
[45853]: https://github.com/rust-lang/rust/pull/45853
[45887]: https://github.com/rust-lang/rust/pull/45887
[45920]: https://github.com/rust-lang/rust/pull/45920
[cargo/4561]: https://github.com/rust-lang/cargo/pull/4561
[cargo/4592]: https://github.com/rust-lang/cargo/pull/4592
[cargo/4637]: https://github.com/rust-lang/cargo/pull/4637


Version 1.22.1 (2017-11-22)
==========================

- [Update Cargo to fix an issue with macOS 10.13 "High Sierra"][46183]

[46183]: https://github.com/rust-lang/rust/pull/46183

Version 1.22.0 (2017-11-22)
==========================

Language
--------
- [`non_snake_case` lint now allows extern no-mangle functions][44966]
- [Now accepts underscores in unicode escapes][43716]
- [`T op= &T` now works for numeric types.][44287] eg. `let mut x = 2; x += &8;`
- [types that impl `Drop` are now allowed in `const` and `static` types][44456]

Compiler
--------
- [rustc now defaults to having 16 codegen units at debug on supported platforms.][45064]
- [rustc will no longer inline in codegen units when compiling for debug][45075]
  This should decrease compile times for debug builds.
- [strict memory alignment now enabled on ARMv6][45094]
- [Remove support for the PNaCl target `le32-unknown-nacl`][45041]

Libraries
---------
- [Allow atomic operations up to 32 bits
  on `armv5te_unknown_linux_gnueabi`][44978]
- [`Box<Error>` now impls `From<Cow<str>>`][44466]
- [`std::mem::Discriminant` is now guaranteed to be `Send + Sync`][45095]
- [`fs::copy` now returns the length of the main stream on NTFS.][44895]
- [Properly detect overflow in `Instant += Duration`.][44220]
- [impl `Hasher` for `{&mut Hasher, Box<Hasher>}`][44015]
- [impl `fmt::Debug` for `SplitWhitespace`.][44303]
- [`Option<T>` now impls `Try`][42526] This allows for using `?` with `Option` types.

Stabilized APIs
---------------

Cargo
-----
- [Cargo will now build multi file examples in subdirectories of the `examples`
  folder that have a `main.rs` file.][cargo/4496]
- [Changed `[root]` to `[package]` in `Cargo.lock`][cargo/4571] Packages with
  the old format will continue to work and can be updated with `cargo update`.
- [Now supports vendoring git repositories][cargo/3992]

Misc
----
- [`libbacktrace` is now available on Apple platforms.][44251]
- [Stabilised the `compile_fail` attribute for code fences in doc-comments.][43949]
  This now lets you specify that a given code example will fail to compile.

Compatibility Notes
-------------------
- [The minimum Android version that rustc can build for has been bumped
  to `4.0` from `2.3`][45656]
- [Allowing `T op= &T` for numeric types has broken some type
  inference cases][45480]


[42526]: https://github.com/rust-lang/rust/pull/42526
[43716]: https://github.com/rust-lang/rust/pull/43716
[43949]: https://github.com/rust-lang/rust/pull/43949
[44015]: https://github.com/rust-lang/rust/pull/44015
[44220]: https://github.com/rust-lang/rust/pull/44220
[44251]: https://github.com/rust-lang/rust/pull/44251
[44287]: https://github.com/rust-lang/rust/pull/44287
[44303]: https://github.com/rust-lang/rust/pull/44303
[44456]: https://github.com/rust-lang/rust/pull/44456
[44466]: https://github.com/rust-lang/rust/pull/44466
[44895]: https://github.com/rust-lang/rust/pull/44895
[44966]: https://github.com/rust-lang/rust/pull/44966
[44978]: https://github.com/rust-lang/rust/pull/44978
[45041]: https://github.com/rust-lang/rust/pull/45041
[45064]: https://github.com/rust-lang/rust/pull/45064
[45075]: https://github.com/rust-lang/rust/pull/45075
[45094]: https://github.com/rust-lang/rust/pull/45094
[45095]: https://github.com/rust-lang/rust/pull/45095
[45480]: https://github.com/rust-lang/rust/issues/45480
[45656]: https://github.com/rust-lang/rust/pull/45656
[cargo/3992]: https://github.com/rust-lang/cargo/pull/3992
[cargo/4496]: https://github.com/rust-lang/cargo/pull/4496
[cargo/4571]: https://github.com/rust-lang/cargo/pull/4571






Version 1.21.0 (2017-10-12)
==========================

Language
--------
- [You can now use static references for literals.][43838]
  Example:
  ```rust
  fn main() {
      let x: &'static u32 = &0;
  }

Compiler

Libraries

Stabilized APIs

std::mem::discriminant

Cargo

Misc

Compatibility Notes

Version 1.20.0 (2017-08-31)

Language

Compiler

Libraries

Stabilized APIs

Cargo

Compatibility Notes

Version 1.19.0 (2017-07-20)

Language

Compiler

Libraries

Stabilized APIs

Cargo

Misc

Compatibility Notes

Version 1.18.0 (2017-06-08)

Language

Compiler

Libraries

Stabilized APIs

Cargo

Misc

Compatibility Notes

Version 1.17.0 (2017-04-27)

Language

Compiler

Stabilized APIs

Libraries

Cargo

Misc

Compatibility Notes

Version 1.16.0 (2017-03-16)

Language

Compiler

Stabilized APIs

Libraries

Cargo

Misc

Compatibility Notes

Version 1.15.1 (2017-02-09)

Version 1.15.0 (2017-02-02)

Language

Compiler

Compiler Performance

Stabilized APIs

Libraries

Cargo

Tooling

Misc

Compatibility Notes

Version 1.14.0 (2016-12-22)

Language

Compiler

Compile-time Optimizations

Libraries

Cargo

Tooling

Misc

Compatibility Notes

Version 1.13.0 (2016-11-10)

Language

Compiler

Diagnostics

Compile-time Optimizations

Stabilized APIs

Libraries

Cargo

Tooling

Misc

Compatibility Notes

Version 1.12.1 (2016-10-20)

Regression Fixes

Version 1.12.0 (2016-09-29)

Highlights

Compiler

Diagnostics

Language

Stabilized APIs

Libraries

Cargo

Performance

Tooling

Misc

Compatibility Notes

Version 1.11.0 (2016-08-18)

Language

Stabilized APIs

Libraries

Cargo

Performance

Rustdoc

Tooling

Misc

Compatibility Notes

Version 1.10.0 (2016-07-07)

Language

Stabilized APIs

Libraries

Cargo

Performance

Usability

Misc

Compatibility Notes

Version 1.9.0 (2016-05-26)

Language

Stabilized APIs

Libraries

Cargo

Performance

Misc

Compatibility Notes

Version 1.8.0 (2016-04-14)

Language

Libraries

Performance

Misc

Cargo

Compatibility Notes

Version 1.7.0 (2016-03-03)

Libraries

Misc

Cargo

Compatibility Notes

Version 1.6.0 (2016-01-21)

Language

Libraries

Cargo

Misc

Compatibility Notes

Version 1.5.0 (2015-12-10)

Highlights

Breaking Changes

Language

Libraries

Miscellaneous

Version 1.4.0 (2015-10-29)

Highlights

Breaking Changes

Language

Libraries

Miscellaneous

Version 1.3.0 (2015-09-17)

Highlights

Breaking Changes

Language

Libraries

Misc

Version 1.2.0 (2015-08-07)

Highlights

Breaking Changes

Language

Libraries

Misc

Version 1.1.0 (2015-06-25)

Highlights

Libraries

Misc

Version 1.0.0 (2015-05-15)

Highlights

Language

Libraries

Misc

Version 1.0.0-alpha.2 (2015-02-20)

Version 1.0.0-alpha (2015-01-09)

Version 0.12.0 (2014-10-09)

Version 0.11.0 (2014-07-02)

Version 0.10 (2014-04-03)

Version 0.9 (2014-01-09)

Version 0.8 (2013-09-26)

Version 0.7 (2013-07-03)

Version 0.6 (2013-04-03)

Version 0.5 (2012-12-21)

Version 0.4 (2012-10-15)

Version 0.3 (2012-07-12)

Version 0.2 (2012-03-29)

Version 0.1 (2012-01-20)

Known issues: