Skip to content

Updated releases notes for 1.19 #42503

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Closed
wants to merge 15 commits into from
141 changes: 141 additions & 0 deletions RELEASES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,144 @@
Version 1.19.0 (2017-07-20)
===========================

Language
--------

- [Numeric fields can now be used for creating tuple structs.][36868]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The correct PR is #41145

For example `struct Point(u32, u32); let x = Foo { 0: 7, 1: 0 };`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't this be let x = Point { 0: 7, 1: 0 };

- [Macro recursion limit increased to 1024 from 64.][41676]
- [Added lint for detecting unused macros.][41907]
- [`loop` can now return a value with `break`.][42016]
For example: `let x = loop { break 7; };`
- [C compatible `union`s are now available.][42068] They can only contain `Copy`
types and cannot have a `Drop` implementation.
Example: `union Foo { bar: u8 }`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A union with two fields of different types might be a clearer example.


Compiler
--------
Copy link
Contributor

@TimNN TimNN Jun 7, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section should probably mention the LLVM upgrade #40123.

Edit: Nevermind this comment, I didn't notice @cuviper's comment when looking at the diff.


- [Added bootstrap support for Android.][41370]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suggest expanding this to "Add support for bootstrapping the Rust compiler toolchain on Android."

- [Change `arm-linux-androideabi` to correspond to the `armeabi`
official ABI.][41656]
Copy link
Contributor

@mbrubeck mbrubeck Jun 7, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might be useful to note that developers must now use --target armv7-linux-androideabi if they want to continue targeting the armeabi-v7a ABI.

- [Fixed ICE when removing a source file between compilation sessions.][41873]
- [Minor optimisation of string operations.][42037]
- [Compiler error message is now `aborting due to previous error(s)` instead of
`aborting due to N previous errors`][42150] This was previously inaccurate and
would only count certain kinds of errors.
- [Now supports Visual Studio 2017][42225]
- [Added a lot][42264] of [new error codes][42302]

Libraries
---------

- [`String` now implements `FromIterator<Cow<'a, str>>` and
`Extend<Cow<'a, str>>`][41449]
- [`Vec` now implements `From<&mut [T]>`][41530]
- [`SplitWhitespace` now implements `Clone`][41659]
- [`[u8]::reverse` is now 5x faster and `[u16]::reverse` is now
1.5x faster][41764]

Compatibility Notes
-------------------

- [`MutexGuard<T>` may only be `Sync` if `T` is `Sync`.][41624]
- [`-Z` flags are now no longer allowed to be used on the stable
compiler.][41751] This has been a warning for a year previous to this.
- [Ending a float literal with `._` is now a hard error.
Example: `42._` .][41946]
- [Ending a str literal with an underscore is now a hard error
Example: `"foo"_`][41990]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This didn't make it into 1.19.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is also a warning, not error.

- [Publicly exposing a private type is now a hard error][34537] This was
previously a warning.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nah, this is wrong. Most of #34537 isn't going to be an error, only some tiny piece of it (public reexports of private enum variants) has become an error.

- [Type parameter defaults in trait impls and functions is now a
hard error][36887] This was previously a warning.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is still a warning, there was too much breakage (as you can see, the issue is still open).

- [`use` imports on a private `extern crate` in a module is now a hard
error.][36886] This was previously a warning.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#36886 is about any use of private extern crates outside of their module, not about imports or reexports.

- [`use ::self::foo;` is now a hard error.][36888] `self` paths are always
relative while the `::` prefix makes a path absolute, but was ignored and the
path was relative regardless.
- [Floating point constants in match patterns is now a hard error][36890]
This was previously a warning.
- [Struct or enum constants that don't derive `PartialEq` & `Eq` used
match patterns is now a hard error][36891] This was previously a warning.
- [Lifetimes named `'_` are no longer allowed.][36892] This was previously
a warning.

Misc
----

- [Added `rust-windbg.cmd`][39983] for loading rust `.natvis` files in the
Windows Debugger.
- [Rust Language Server is now packaged as a non default component with the
`.exe`, `.msi`, and `.pkg` installers][42306]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this has been reverted: #42472


Cargo
-----

- [Build scripts can now add environment variables the environment
the crate is being compiled in.
Example: `println!("cargo:rustc-env=FOO=bar");`][cargo/3929]
- [Subcommands now replace the current process rather than spawning a new
child process][cargo/3970]
- [Workspace members can now accept glob file patterns][cargo/3979]
- [Added `--all` flag to the `cargo bench` subcommand to run benchmarks of all
the members in a given workspace.][cargo/3988]
- [Updated `libssh2-sys` to 0.2.6][cargo/4008]
- [Target directory path is now in the cargo metadata][cargo/4022]
- [Cargo no longer checks the crates.io index locally][cargo/4026] This should
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would word this something like "Cargo no longer checks out a local working directory for the crates.io index"

provide smaller file size for the registry, and improve cloning times,
especially on Windows machines.
- [Added an `--exclude` option for excluding certain packages when using the
`--all` option][cargo/4031]
- [Cargo will now automatically retry when receiving a 5xx error
from crates.io][cargo/4032]
- [The `--features` option now accepts multiple comma or space
delimited values.][cargo/4084]
- [Added a GNU make jobserver implementation to Cargo.][cargo/4110]

[39983]: https://github.com/rust-lang/rust/pull/39983
[36868]: https://github.com/rust-lang/rust/pull/36868
[41370]: https://github.com/rust-lang/rust/pull/41370
[41449]: https://github.com/rust-lang/rust/pull/41449
[41530]: https://github.com/rust-lang/rust/pull/41530
[41624]: https://github.com/rust-lang/rust/pull/41624
[41656]: https://github.com/rust-lang/rust/pull/41656
[41659]: https://github.com/rust-lang/rust/pull/41659
[41676]: https://github.com/rust-lang/rust/pull/41676
[41751]: https://github.com/rust-lang/rust/pull/41751
[41764]: https://github.com/rust-lang/rust/pull/41764
[41873]: https://github.com/rust-lang/rust/pull/41873
[41907]: https://github.com/rust-lang/rust/pull/41907
[41946]: https://github.com/rust-lang/rust/pull/41946
[41990]: https://github.com/rust-lang/rust/pull/41990
[42016]: https://github.com/rust-lang/rust/pull/42016
[42037]: https://github.com/rust-lang/rust/pull/42037
[42068]: https://github.com/rust-lang/rust/pull/42068
[34537]: https://github.com/rust-lang/rust/issues/34537
[36887]: https://github.com/rust-lang/rust/issues/36887
[36886]: https://github.com/rust-lang/rust/issues/36886
[36888]: https://github.com/rust-lang/rust/issues/36888
[36890]: https://github.com/rust-lang/rust/issues/36890
[36891]: https://github.com/rust-lang/rust/issues/36891
[36892]: https://github.com/rust-lang/rust/issues/36892
[42150]: https://github.com/rust-lang/rust/pull/42150
[42225]: https://github.com/rust-lang/rust/pull/42225
[42306]: https://github.com/rust-lang/rust/pull/42306
[42264]: https://github.com/rust-lang/rust/pull/42264
[42302]: https://github.com/rust-lang/rust/pull/42302
[cargo/3929]: https://github.com/rust-lang/cargo/pull/3929
[cargo/3970]: https://github.com/rust-lang/cargo/pull/3970
[cargo/3979]: https://github.com/rust-lang/cargo/pull/3979
[cargo/3988]: https://github.com/rust-lang/cargo/pull/3988
[cargo/4008]: https://github.com/rust-lang/cargo/pull/4008
[cargo/4022]: https://github.com/rust-lang/cargo/pull/4022
[cargo/4026]: https://github.com/rust-lang/cargo/pull/4026
[cargo/4031]: https://github.com/rust-lang/cargo/pull/4031
[cargo/4032]: https://github.com/rust-lang/cargo/pull/4032
[cargo/4084]: https://github.com/rust-lang/cargo/pull/4084
[cargo/4110]: https://github.com/rust-lang/cargo/pull/4110


Version 1.18.0 (2017-06-08)
===========================

Expand Down