Dynamically-sized-type coercions allow smart pointer types
like Rc to contain types without a fixed size, arrays and trait
objects, finally enabling use of Rc<[T]> and completing the
implementation of DST.
Parallel codegen is now working again, which can
substantially speed up large builds in debug mode; It also gets
another ~33% speedup when bootstrapping on a 4 core machine (using 8
jobs). It’s not enabled by default, but will be “in the near
future”. It can be activated with the -C codegen-units=N flag to
The Extend trait, which grows a collection from an iterator, is
implemented over iterators of references, for String, Vec,
LinkedList, VecDeque, EnumSet, BinaryHeap, VecMap,
BTreeSet and BTreeMap. RFC.
The iter::once function returns an iterator that yields a single
element, and iter::empty returns an iterator that yields no
The matches and rmatches methods on str return iterators
over substring matches.
It is now easier to handle poisoned locks. The PoisonError
type, returned by failing lock operations, exposes into_inner,
get_ref, and get_mut, which all give access to the inner lock
guard, and allow the poisoned lock to continue to operate. The
is_poisoned method of RwLock and Mutex can poll for a
poisoned lock without attempting to take the lock.