]> git.lizzy.rs Git - rust.git/blobdiff - RELEASES.md
Auto merge of #27856 - nikomatsakis:move-def-id-to-rustc, r=eddyb
[rust.git] / RELEASES.md
index db1c7380a788b4a5d3a408957f7df034360072b2..e964396c76d055d3df7becc34e5f7ba4f7e51dd3 100644 (file)
@@ -16,6 +16,12 @@ Highlights
   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
 ----------------
@@ -31,6 +37,10 @@ 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
 --------
@@ -46,12 +56,11 @@ Libraries
   `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
@@ -70,7 +79,7 @@ Libraries
   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
@@ -93,57 +102,59 @@ Misc
 * 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)
 =========================
@@ -226,14 +237,14 @@ Misc
 * [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
@@ -247,13 +258,13 @@ Misc
 [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)
@@ -497,7 +508,7 @@ Version 1.0.0-alpha.2 (February 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
@@ -698,7 +709,7 @@ Version 1.0.0-alpha (January 2015)
 [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/