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
`rustc`.
+* This is the first release with [experimental support for linking
+ with the MSVC linker and lib C on Windows (instead of using the GNU
+ variants via MinGW)][win]. It is yet recommended only for the most
+ intrepid Rusticians.
+* Benchmark compilations are showing a 30% improvement in
+ bootstrapping over 1.1.
Breaking Changes
----------------
* [The `#[packed]` attribute is no longer silently accepted by the
compiler][packed]. This attribute did nothing and code that
mentioned it likely did not work as intended.
+* Associated type defaults are [now behind the
+ `associated_type_defaults` feature gate][ad]. In 1.1 associated type
+ defaults *did not work*, but could be mentioned syntactically. As
+ such this breakage has minimal impact.
Language
--------
`LinkedList`, `VecDeque`, `EnumSet`, `BinaryHeap`, `VecMap`,
`BTreeSet` and `BTreeMap`. [RFC][extend-rfc].
* The [`iter::once`] function returns an iterator that yields a single
- element.
-* The [`iter::empty`] function returns an iterator that yields no
+ element, and [`iter::empty`] returns an iterator that yields no
elements.
* The [`matches`] and [`rmatches`] methods on `str` return iterators
over substring matches.
-* [`Cell`] and [`RefCell`] both implement [`Eq`].
+* [`Cell`] and [`RefCell`] both implement `Eq`.
* A number of methods for wrapping arithmetic are added to the
integral types, [`wrapping_div`], [`wrapping_rem`],
[`wrapping_neg`], [`wrapping_shl`], [`wrapping_shr`]. These are in
are used by code generators to emit implementations of [`Debug`].
* `str` has new [`to_uppercase`][strup] and [`to_lowercase`][strlow]
methods that convert case, following Unicode case mapping.
-* It is now easier to handle to poisoned locks. The [`PoisonError`]
+* 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
* Fat pointers are now [passed in pairs of immediate arguments][fat],
resulting in faster compile times and smaller code.
-[`Extend`]: http://doc.rust-lang.org/nightly/std/iter/trait.Extend.html
+[`Extend`]: https://doc.rust-lang.org/nightly/std/iter/trait.Extend.html
[extend-rfc]: https://github.com/rust-lang/rfcs/blob/master/text/0839-embrace-extend-extinguish.md
-[`iter::once`]: http://doc.rust-lang.org/nightly/std/iter/fn.once.html
-[`iter::empty`]: http://doc.rust-lang.org/nightly/std/iter/fn.empty.html
-[`matches`]: http://doc.rust-lang.org/nightly/std/primitive.str.html#method.matches
-[`rmatches`]: http://doc.rust-lang.org/nightly/std/primitive.str.html#method.rmatches
-[`Cell`]: http://doc.rust-lang.org/nightly/std/cell/struct.Cell.html
-[`RefCell`]: http://doc.rust-lang.org/nightly/std/cell/struct.RefCell.html
-[`wrapping_add`]: http://doc.rust-lang.org/nightly/std/primitive.i8.html#method.wrapping_add
-[`wrapping_sub`]: http://doc.rust-lang.org/nightly/std/primitive.i8.html#method.wrapping_sub
-[`wrapping_mul`]: http://doc.rust-lang.org/nightly/std/primitive.i8.html#method.wrapping_mul
-[`wrapping_div`]: http://doc.rust-lang.org/nightly/std/primitive.i8.html#method.wrapping_div
-[`wrapping_rem`]: http://doc.rust-lang.org/nightly/std/primitive.i8.html#method.wrapping_rem
-[`wrapping_neg`]: http://doc.rust-lang.org/nightly/std/primitive.i8.html#method.wrapping_neg
-[`wrapping_shl`]: http://doc.rust-lang.org/nightly/std/primitive.i8.html#method.wrapping_shl
-[`wrapping_shr`]: http://doc.rust-lang.org/nightly/std/primitive.i8.html#method.wrapping_shr
-[`Wrapping`]: http://doc.rust-lang.org/nightly/std/num/struct.Wrapping.html
-[`fmt::Formatter`]: http://doc.rust-lang.org/nightly/std/fmt/struct.Formatter.html
-[`fmt::Write`]: http://doc.rust-lang.org/nightly/std/fmt/trait.Write.html
-[`io::Write`]: http://doc.rust-lang.org/nightly/std/io/trait.Write.html
-[`debug_struct`]: http://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html#method.debug_struct
-[`debug_tuple`]: http://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html#method.debug_tuple
-[`debug_list`]: http://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html#method.debug_list
-[`debug_set`]: http://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html#method.debug_set
-[`debug_map`]: http://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html#method.debug_map
-[`Debug`]: http://doc.rust-lang.org/nightly/std/fmt/trait.Debug.html
-[strup]: http://doc.rust-lang.org/nightly/std/primitive.str.html#method.to_uppercase
-[strlow]: http://doc.rust-lang.org/nightly/std/primitive.str.html#method.to_lowercase
-[`to_uppercase`]: http://doc.rust-lang.org/nightly/std/primitive.char.html#method.to_uppercase
-[`to_lowercase`]: http://doc.rust-lang.org/nightly/std/primitive.char.html#method.to_lowercase
-[`PoisonError`]: http://doc.rust-lang.org/nightly/std/sync/struct.PoisonError.html
-[`RwLock`]: http://doc.rust-lang.org/nightly/std/sync/struct.RwLock.html
-[`Mutex`]: http://doc.rust-lang.org/nightly/std/sync/struct.Mutex.html
-[`FromRawFd`]: http://doc.rust-lang.org/nightly/std/os/unix/io/trait.FromRawFd.html
-[`AsRawFd`]: http://doc.rust-lang.org/nightly/std/os/unix/io/trait.AsRawFd.html
-[`Stdio`]: http://doc.rust-lang.org/nightly/std/process/struct.Stdio.html
-[`ChildStdin`]: http://doc.rust-lang.org/nightly/std/process/struct.ChildStdin.html
-[`ChildStdout`]: http://doc.rust-lang.org/nightly/std/process/struct.ChildStdout.html
-[`ChildStderr`]: http://doc.rust-lang.org/nightly/std/process/struct.ChildStderr.html
-[`io::ErrorKind`]: http://doc.rust-lang.org/nightly/std/io/enum.ErrorKind.html
+[`iter::once`]: https://doc.rust-lang.org/nightly/std/iter/fn.once.html
+[`iter::empty`]: https://doc.rust-lang.org/nightly/std/iter/fn.empty.html
+[`matches`]: https://doc.rust-lang.org/nightly/std/primitive.str.html#method.matches
+[`rmatches`]: https://doc.rust-lang.org/nightly/std/primitive.str.html#method.rmatches
+[`Cell`]: https://doc.rust-lang.org/nightly/std/cell/struct.Cell.html
+[`RefCell`]: https://doc.rust-lang.org/nightly/std/cell/struct.RefCell.html
+[`wrapping_add`]: https://doc.rust-lang.org/nightly/std/primitive.i8.html#method.wrapping_add
+[`wrapping_sub`]: https://doc.rust-lang.org/nightly/std/primitive.i8.html#method.wrapping_sub
+[`wrapping_mul`]: https://doc.rust-lang.org/nightly/std/primitive.i8.html#method.wrapping_mul
+[`wrapping_div`]: https://doc.rust-lang.org/nightly/std/primitive.i8.html#method.wrapping_div
+[`wrapping_rem`]: https://doc.rust-lang.org/nightly/std/primitive.i8.html#method.wrapping_rem
+[`wrapping_neg`]: https://doc.rust-lang.org/nightly/std/primitive.i8.html#method.wrapping_neg
+[`wrapping_shl`]: https://doc.rust-lang.org/nightly/std/primitive.i8.html#method.wrapping_shl
+[`wrapping_shr`]: https://doc.rust-lang.org/nightly/std/primitive.i8.html#method.wrapping_shr
+[`Wrapping`]: https://doc.rust-lang.org/nightly/std/num/struct.Wrapping.html
+[`fmt::Formatter`]: https://doc.rust-lang.org/nightly/std/fmt/struct.Formatter.html
+[`fmt::Write`]: https://doc.rust-lang.org/nightly/std/fmt/trait.Write.html
+[`io::Write`]: https://doc.rust-lang.org/nightly/std/io/trait.Write.html
+[`debug_struct`]: https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html#method.debug_struct
+[`debug_tuple`]: https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html#method.debug_tuple
+[`debug_list`]: https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html#method.debug_list
+[`debug_set`]: https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html#method.debug_set
+[`debug_map`]: https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html#method.debug_map
+[`Debug`]: https://doc.rust-lang.org/nightly/std/fmt/trait.Debug.html
+[strup]: https://doc.rust-lang.org/nightly/std/primitive.str.html#method.to_uppercase
+[strlow]: https://doc.rust-lang.org/nightly/std/primitive.str.html#method.to_lowercase
+[`to_uppercase`]: https://doc.rust-lang.org/nightly/std/primitive.char.html#method.to_uppercase
+[`to_lowercase`]: https://doc.rust-lang.org/nightly/std/primitive.char.html#method.to_lowercase
+[`PoisonError`]: https://doc.rust-lang.org/nightly/std/sync/struct.PoisonError.html
+[`RwLock`]: https://doc.rust-lang.org/nightly/std/sync/struct.RwLock.html
+[`Mutex`]: https://doc.rust-lang.org/nightly/std/sync/struct.Mutex.html
+[`FromRawFd`]: https://doc.rust-lang.org/nightly/std/os/unix/io/trait.FromRawFd.html
+[`AsRawFd`]: https://doc.rust-lang.org/nightly/std/os/unix/io/trait.AsRawFd.html
+[`Stdio`]: https://doc.rust-lang.org/nightly/std/process/struct.Stdio.html
+[`ChildStdin`]: https://doc.rust-lang.org/nightly/std/process/struct.ChildStdin.html
+[`ChildStdout`]: https://doc.rust-lang.org/nightly/std/process/struct.ChildStdout.html
+[`ChildStderr`]: https://doc.rust-lang.org/nightly/std/process/struct.ChildStderr.html
+[`io::ErrorKind`]: https://doc.rust-lang.org/nightly/std/io/enum.ErrorKind.html
[debugfmt]: https://www.reddit.com/r/rust/comments/3ceaui/psa_produces_prettyprinted_debug_output/
-[`DerefMut`]: http://doc.rust-lang.org/nightly/std/ops/trait.DerefMut.html
-[`mem::align_of`]: http://doc.rust-lang.org/nightly/std/mem/fn.align_of.html
+[`DerefMut`]: https://doc.rust-lang.org/nightly/std/ops/trait.DerefMut.html
+[`mem::align_of`]: https://doc.rust-lang.org/nightly/std/mem/fn.align_of.html
[align]: https://github.com/rust-lang/rust/pull/25646
-[`mem::min_align_of`]: http://doc.rust-lang.org/nightly/std/mem/fn.min_align_of.html
+[`mem::min_align_of`]: https://doc.rust-lang.org/nightly/std/mem/fn.min_align_of.html
[typos]: https://github.com/rust-lang/rust/pull/26087
[nop]: https://github.com/rust-lang/rust/pull/26336
[fat]: https://github.com/rust-lang/rust/pull/26411
[dst]: https://github.com/rust-lang/rfcs/blob/master/text/0982-dst-coercion.md
[parcodegen]: https://github.com/rust-lang/rust/pull/26018
[packed]: https://github.com/rust-lang/rust/pull/25541
+[ad]: https://github.com/rust-lang/rust/pull/27382
+[win]: https://github.com/rust-lang/rust/pull/25350
Version 1.1.0 (June 2015)
=========================
* [The `drop_with_repr_extern` lint warns about mixing `repr(C)`
with `Drop`][drop].
-[`str::split_whitespace`]: http://doc.rust-lang.org/nightly/std/primitive.str.html#method.split_whitespace
-[`FromRawFd`]: http://doc.rust-lang.org/nightly/std/os/unix/io/trait.FromRawFd.html
-[`AsRawFd`]: http://doc.rust-lang.org/nightly/std/os/unix/io/trait.AsRawFd.html
-[`std::os::unix::symlink`]: http://doc.rust-lang.org/nightly/std/os/unix/fs/fn.symlink.html
-[`IntoIterator`]: http://doc.rust-lang.org/nightly/std/iter/trait.IntoIterator.html
-[`From`]: http://doc.rust-lang.org/nightly/std/convert/trait.From.html
+[`str::split_whitespace`]: https://doc.rust-lang.org/nightly/std/primitive.str.html#method.split_whitespace
+[`FromRawFd`]: https://doc.rust-lang.org/nightly/std/os/unix/io/trait.FromRawFd.html
+[`AsRawFd`]: https://doc.rust-lang.org/nightly/std/os/unix/io/trait.AsRawFd.html
+[`std::os::unix::symlink`]: https://doc.rust-lang.org/nightly/std/os/unix/fs/fn.symlink.html
+[`IntoIterator`]: https://doc.rust-lang.org/nightly/std/iter/trait.IntoIterator.html
+[`From`]: https://doc.rust-lang.org/nightly/std/convert/trait.From.html
[rf]: https://github.com/rust-lang/rust/pull/24491
-[err-index]: http://doc.rust-lang.org/error-index.html
+[err-index]: https://doc.rust-lang.org/error-index.html
[sk]: https://github.com/rust-lang/rust/pull/24615
[pre]: https://github.com/rust-lang/rust/pull/25323
[file]: https://github.com/rust-lang/rust/pull/24598
[pie]: https://github.com/rust-lang/rust/pull/24953
[abs]: https://github.com/rust-lang/rust/pull/25441
[c]: https://github.com/rust-lang/rust/pull/25496
-[`Cloned`]: http://doc.rust-lang.org/nightly/std/iter/struct.Cloned.html
-[`Incoming`]: http://doc.rust-lang.org/nightly/std/net/struct.Incoming.html
+[`Cloned`]: https://doc.rust-lang.org/nightly/std/iter/struct.Cloned.html
+[`Incoming`]: https://doc.rust-lang.org/nightly/std/net/struct.Incoming.html
[inc]: https://github.com/rust-lang/rust/pull/25522
[bh]: https://github.com/rust-lang/rust/pull/25856
-[`BinaryHeap`]: http://doc.rust-lang.org/nightly/std/collections/struct.BinaryHeap.html
+[`BinaryHeap`]: https://doc.rust-lang.org/nightly/std/collections/struct.BinaryHeap.html
[ll]: https://github.com/rust-lang/rust/pull/26022
-[`split_off`]: http://doc.rust-lang.org/nightly/collections/linked_list/struct.LinkedList.html#method.split_off
+[`split_off`]: https://doc.rust-lang.org/nightly/collections/linked_list/struct.LinkedList.html#method.split_off
[drop]: https://github.com/rust-lang/rust/pull/24935
Version 1.0.0 (May 2015)
[drop]: https://github.com/rust-lang/rust/pull/21972
[drop-rfc]: https://github.com/rust-lang/rfcs/blob/master/text/0769-sound-generic-drop.md
[feat]: https://github.com/rust-lang/rust/pull/21248
-[feat-forum]: http://users.rust-lang.org/t/psa-important-info-about-rustcs-new-feature-staging/82/5
+[feat-forum]: https://users.rust-lang.org/t/psa-important-info-about-rustcs-new-feature-staging/82/5
[feat-rfc]: https://github.com/rust-lang/rfcs/blob/master/text/0507-release-channels.md
[fmt]: https://github.com/rust-lang/rust/pull/21457
[into]: https://github.com/rust-lang/rust/pull/20790
[objsafe]: https://github.com/rust-lang/rfcs/blob/master/text/0255-object-safety.md
[assoc]: https://github.com/rust-lang/rfcs/blob/master/text/0195-associated-items.md
[ints]: https://github.com/rust-lang/rfcs/pull/544#issuecomment-68760871
-[trpl]: http://doc.rust-lang.org/book/index.html
+[trpl]: https://doc.rust-lang.org/book/index.html
[rbe]: http://rustbyexample.com/