1.22.0 #
- Released on: 22 November, 2017
- Branched from master on: 6 October, 2017
Language #
non_snake_case
lint now allows extern no-mangle functions- Now accepts underscores in unicode escapes
T op= &T
now works for numeric types. eg.let mut x = 2; x += &8;
- types that impl
Drop
are now allowed inconst
andstatic
types
Compiler #
- rustc now defaults to having 16 codegen units at debug on supported platforms.
- rustc will no longer inline in codegen units when compiling for debug This should decrease compile times for debug builds.
- strict memory alignment now enabled on ARMv6
- Remove support for the PNaCl target
le32-unknown-nacl
Libraries #
- Allow atomic operations up to 32 bits
on
armv5te_unknown_linux_gnueabi
Box<Error>
now implsFrom<Cow<str>>
std::mem::Discriminant
is now guaranteed to beSend + Sync
fs::copy
now returns the length of the main stream on NTFS.- Properly detect overflow in
Instant += Duration
. - impl
Hasher
for{&mut Hasher, Box<Hasher>}
- impl
fmt::Debug
forSplitWhitespace
. Option<T>
now implsTry
This allows for using?
withOption
types.
Stabilized APIs #
Cargo #
- Cargo will now build multi file examples in subdirectories of the
examples
folder that have amain.rs
file. - Changed
[root]
to[package]
inCargo.lock
Packages with the old format will continue to work and can be updated withcargo update
. - Now supports vendoring git repositories
Misc #
libbacktrace
is now available on Apple platforms.- Stabilised the
compile_fail
attribute for code fences in doc-comments. This now lets you specify that a given code example will fail to compile.