Rust 1.11.0
Released on August 18, 2016
What's Changed
BinaryHeap::appendBTreeMap::appendBTreeMap::split_offBTreeSet::appendBTreeSet::split_offf32::to_degreesf32::to_radiansf64::to_degreesf64::to_radiansIterator::sumIterator::productCell::get_mutRefCell::get_mut- [The
thread_local!macro supports multiple definitions in a single CowimplementsDefault- [
Wrappingimplements binary, octal, lower-hex and upper-hex - The range types implement
Hash lookup_hostignores unknown address typesassert_eq!accepts a custom error message, likeassert!does- The main thread is now called "main" instead of "<main>"
- Disallow specifying features of transitive deps
- Add color support for Windows consoles
- Fix
harness = falseon[lib]sections - Don't panic when
linkscontains a '.' - Build scripts can emit warnings,
- Ignore file locks on OS X NFS mounts
- Don't warn about
package.metadatakeys. - Add support for cdylib crate types
- Prevent publishing crates when files are dirty
- Don't fetch all crates on clean
- Propagate --color option to rustc
- Fix
cargo doc --openon Windows - Improve autocompletion
- Configure colors of stderr as well as stdout
- rustc is better at finding the MSVC toolchain
- [When emitting debug info, rustc emits frame pointers for closures,
- rust-lldb warns about unsupported versions of LLDB
- Many more errors have been given error codes and extended
- API documentation continues to be improved, with many new examples
- [Caching projections speeds up type check dramatically for some
- The default
HashMaphasher is SipHash 1-3 instead of SipHash 2-4 - Comparison of
Ipv4Addris 10x faster
consts andstatics may not have unsized types- [The new follow-set rules that place restrictions on
macro_rules! cfgattribute process has been refactored to fix various bugs.
- Fix empty implementation section on some module pages
- Fix inlined renamed re-exports in import lists
- Fix search result layout for enum variants and struct fields
- Fix issues with source links to external crates
- Fix redirect pages for renamed re-exports
- [rustc no longer hangs when dependencies recursively re-export
- rustc requires LLVM 3.7+
- [The 'How Safe and Unsafe Interact' chapter of The Rustonomicon was
- rustc support 16-bit pointer sizes.
Full Changelog
Language
--------
* Support nested cfg_attr attributes
* Allow statement-generating braced macro invocations at the end of blocks
* Macros can be expanded inside of trait definitions
* #[macro_use] works properly when it is itself expanded from a macro
Stabilized APIs
---------------
(in libcore - previously stabilized in libstd)
(in libcore - previously stabilized in libstd)
(in libcore - previously stabilized in libstd)
(in libcore - previously stabilized in libstd)
Libraries
---------
* The thread_local! macro supports multiple definitions in a single
invocation, and can apply attributes
* Wrapping implements binary, octal, lower-hex and upper-hex
Display formatting
* The range types implement Hash
* lookup_host ignores unknown address types
* assert_eq! accepts a custom error message, like assert! does
* The main thread is now called "main" instead of "<main>"
Cargo
-----
* Disallow specifying features of transitive deps
* Add color support for Windows consoles
* Fix harness = false on [lib] sections
* Don't panic when links contains a '.'
* Build scripts can emit warnings,
and -vv prints warnings for all crates.
* Ignore file locks on OS X NFS mounts
* Don't warn about package.metadata keys.
This provides room for expansion by arbitrary tools.
* Add support for cdylib crate types
* Prevent publishing crates when files are dirty
* Don't fetch all crates on clean
* Propagate --color option to rustc
* Fix cargo doc --open on Windows
* Configure colors of stderr as well as stdout
Performance
-----------
* Caching projections speeds up type check dramatically for some
workloads
* The default HashMap hasher is SipHash 1-3 instead of SipHash 2-4
This hasher is faster, but is believed to provide sufficient
protection from collision attacks.
* Comparison of Ipv4Addr is 10x faster
Rustdoc
-------
* Fix empty implementation section on some module pages
* Fix inlined renamed re-exports in import lists
* Fix search result layout for enum variants and struct fields
* Fix issues with source links to external crates
* Fix redirect pages for renamed re-exports
Tooling
-------
* rustc is better at finding the MSVC toolchain
* When emitting debug info, rustc emits frame pointers for closures,
shims and glue, as it does for all other functions
* rust-lldb warns about unsupported versions of LLDB
* Many more errors have been given error codes and extended
explanations
* API documentation continues to be improved, with many new examples
Misc
----
* rustc no longer hangs when dependencies recursively re-export
submodules
* The 'How Safe and Unsafe Interact' chapter of The Rustonomicon was
rewritten
* rustc support 16-bit pointer sizes.
No targets use this yet, but it works toward AVR support.
Compatibility Notes
-------------------
* consts and statics may not have unsized types
* The new follow-set rules that place restrictions on macro_rules!
in order to ensure syntax forward-compatibility have been enabled
This was an amendment to RFC 550,
and has been a warning since 1.10.
* cfg attribute process has been refactored to fix various bugs.
This causes breakage in some corner cases.