|
| 1 | +Version 1.19.0 (2017-07-20) |
| 2 | +=========================== |
| 3 | + |
| 4 | +Language |
| 5 | +-------- |
| 6 | + |
| 7 | +- [Numeric fields can now be used for creating tuple structs.][41145] [RFC 1506] |
| 8 | + For example `struct Point(u32, u32); let x = Point { 0: 7, 1: 0 };`. |
| 9 | +- [Macro recursion limit increased to 1024 from 64.][41676] |
| 10 | +- [Added lint for detecting unused macros.][41907] |
| 11 | +- [`loop` can now return a value with `break`.][42016] [RFC 1624] |
| 12 | + For example: `let x = loop { break 7; };` |
| 13 | +- [C compatible `union`s are now available.][42068] [RFC 1444] They can only |
| 14 | + contain `Copy` types and cannot have a `Drop` implementation. |
| 15 | + Example: `union Foo { bar: u8, baz: usize }` |
| 16 | +- [Non capturing closures can now be coerced into `fn`s,][42162] [RFC 1558] |
| 17 | + Example: `let foo: fn(u8) -> u8 = |v: u8| { v };` |
| 18 | + |
| 19 | +Compiler |
| 20 | +-------- |
| 21 | + |
| 22 | +- [Add support for bootstrapping the Rust compiler toolchain on Android.][41370] |
| 23 | +- [Change `arm-linux-androideabi` to correspond to the `armeabi` |
| 24 | + official ABI.][41656] If you wish to continue targeting the `armeabi-v7a` ABI |
| 25 | + you should use `--target armv7-linux-androideabi`. |
| 26 | +- [Fixed ICE when removing a source file between compilation sessions.][41873] |
| 27 | +- [Minor optimisation of string operations.][42037] |
| 28 | +- [Compiler error message is now `aborting due to previous error(s)` instead of |
| 29 | + `aborting due to N previous errors`][42150] This was previously inaccurate and |
| 30 | + would only count certain kinds of errors. |
| 31 | +- [The compiler now supports Visual Studio 2017][42225] |
| 32 | +- [The compiler is now built against LLVM 4.0.1 by default][42948] |
| 33 | +- [Added a lot][42264] of [new error codes][42302] |
| 34 | +- [Added `target-feature=+crt-static` option][37406] [RFC 1721] Which allows |
| 35 | + libraries with C Run-time Libraries(CRT) to be statically linked. |
| 36 | +- [Fixed various ARM codegen bugs][42740] |
| 37 | + |
| 38 | +Libraries |
| 39 | +--------- |
| 40 | + |
| 41 | +- [`String` now implements `FromIterator<Cow<'a, str>>` and |
| 42 | + `Extend<Cow<'a, str>>`][41449] |
| 43 | +- [`Vec` now implements `From<&mut [T]>`][41530] |
| 44 | +- [`Box<[u8]>` now implements `From<Box<str>>`][41258] |
| 45 | +- [`SplitWhitespace` now implements `Clone`][41659] |
| 46 | +- [`[u8]::reverse` is now 5x faster and `[u16]::reverse` is now |
| 47 | + 1.5x faster][41764] |
| 48 | +- [`eprint!` and `eprintln!` macros added to prelude.][41192] Same as the `print!` |
| 49 | + macros, but for printing to stderr. |
| 50 | + |
| 51 | +Stabilized APIs |
| 52 | +--------------- |
| 53 | + |
| 54 | +- [`OsString::shrink_to_fit`] |
| 55 | +- [`cmp::Reverse`] |
| 56 | +- [`Command::envs`] |
| 57 | +- [`thread::ThreadId`] |
| 58 | + |
| 59 | +Cargo |
| 60 | +----- |
| 61 | + |
| 62 | +- [Build scripts can now add environment variables to the environment |
| 63 | + the crate is being compiled in. |
| 64 | + Example: `println!("cargo:rustc-env=FOO=bar");`][cargo/3929] |
| 65 | +- [Subcommands now replace the current process rather than spawning a new |
| 66 | + child process][cargo/3970] |
| 67 | +- [Workspace members can now accept glob file patterns][cargo/3979] |
| 68 | +- [Added `--all` flag to the `cargo bench` subcommand to run benchmarks of all |
| 69 | + the members in a given workspace.][cargo/3988] |
| 70 | +- [Updated `libssh2-sys` to 0.2.6][cargo/4008] |
| 71 | +- [Target directory path is now in the cargo metadata][cargo/4022] |
| 72 | +- [Cargo no longer checks out a local working directory for the |
| 73 | + crates.io index][cargo/4026] This should provide smaller file size for the |
| 74 | + registry, and improve cloning times, especially on Windows machines. |
| 75 | +- [Added an `--exclude` option for excluding certain packages when using the |
| 76 | + `--all` option][cargo/4031] |
| 77 | +- [Cargo will now automatically retry when receiving a 5xx error |
| 78 | + from crates.io][cargo/4032] |
| 79 | +- [The `--features` option now accepts multiple comma or space |
| 80 | + delimited values.][cargo/4084] |
| 81 | +- [Added support for custom target specific runners][cargo/3954] |
| 82 | + |
| 83 | +Misc |
| 84 | +---- |
| 85 | + |
| 86 | +- [Added `rust-windbg.cmd`][39983] for loading rust `.natvis` files in the |
| 87 | + Windows Debugger. |
| 88 | +- [Rust will now release XZ compressed packages][rust-installer/57] |
| 89 | +- [rustup will now prefer to download rust packages with |
| 90 | + XZ compression][rustup/1100] over GZip packages. |
| 91 | +- [Added the ability to escape `#` in rust documentation][41785] By adding |
| 92 | + additional `#`'s ie. `##` is now `#` |
| 93 | + |
| 94 | +Compatibility Notes |
| 95 | +------------------- |
| 96 | + |
| 97 | +- [`MutexGuard<T>` may only be `Sync` if `T` is `Sync`.][41624] |
| 98 | +- [`-Z` flags are now no longer allowed to be used on the stable |
| 99 | + compiler.][41751] This has been a warning for a year previous to this. |
| 100 | +- [As a result of the `-Z` flag change, the `cargo-check` plugin no |
| 101 | + longer works][42844]. Users should migrate to the built-in `check` |
| 102 | + command, which has been available since 1.16. |
| 103 | +- [Ending a float literal with `._` is now a hard error. |
| 104 | + Example: `42._` .][41946] |
| 105 | +- [Any use of a private `extern crate` outside of its module is now a |
| 106 | + hard error.][36886] This was previously a warning. |
| 107 | +- [`use ::self::foo;` is now a hard error.][36888] `self` paths are always |
| 108 | + relative while the `::` prefix makes a path absolute, but was ignored and the |
| 109 | + path was relative regardless. |
| 110 | +- [Floating point constants in match patterns is now a hard error][36890] |
| 111 | + This was previously a warning. |
| 112 | +- [Struct or enum constants that don't derive `PartialEq` & `Eq` used |
| 113 | + match patterns is now a hard error][36891] This was previously a warning. |
| 114 | +- [Lifetimes named `'_` are no longer allowed.][36892] This was previously |
| 115 | + a warning. |
| 116 | +- [From the pound escape, lines consisting of multiple `#`s are |
| 117 | + now visible][41785] |
| 118 | +- [It is an error to reexport private enum variants][42460]. This is |
| 119 | + known to break a number of crates that depend on an older version of |
| 120 | + mustache. |
| 121 | +- [On Windows, if `VCINSTALLDIR` is set incorrectly, `rustc` will try |
| 122 | + to use it to find the linker, and the build will fail where it did |
| 123 | + not previously][42607] |
| 124 | + |
| 125 | +[36886]: https://github.com/rust-lang/rust/issues/36886 |
| 126 | +[36888]: https://github.com/rust-lang/rust/issues/36888 |
| 127 | +[36890]: https://github.com/rust-lang/rust/issues/36890 |
| 128 | +[36891]: https://github.com/rust-lang/rust/issues/36891 |
| 129 | +[36892]: https://github.com/rust-lang/rust/issues/36892 |
| 130 | +[37406]: https://github.com/rust-lang/rust/issues/37406 |
| 131 | +[39983]: https://github.com/rust-lang/rust/pull/39983 |
| 132 | +[41145]: https://github.com/rust-lang/rust/pull/41145 |
| 133 | +[41192]: https://github.com/rust-lang/rust/pull/41192 |
| 134 | +[41258]: https://github.com/rust-lang/rust/pull/41258 |
| 135 | +[41370]: https://github.com/rust-lang/rust/pull/41370 |
| 136 | +[41449]: https://github.com/rust-lang/rust/pull/41449 |
| 137 | +[41530]: https://github.com/rust-lang/rust/pull/41530 |
| 138 | +[41624]: https://github.com/rust-lang/rust/pull/41624 |
| 139 | +[41656]: https://github.com/rust-lang/rust/pull/41656 |
| 140 | +[41659]: https://github.com/rust-lang/rust/pull/41659 |
| 141 | +[41676]: https://github.com/rust-lang/rust/pull/41676 |
| 142 | +[41751]: https://github.com/rust-lang/rust/pull/41751 |
| 143 | +[41764]: https://github.com/rust-lang/rust/pull/41764 |
| 144 | +[41785]: https://github.com/rust-lang/rust/pull/41785 |
| 145 | +[41873]: https://github.com/rust-lang/rust/pull/41873 |
| 146 | +[41907]: https://github.com/rust-lang/rust/pull/41907 |
| 147 | +[41946]: https://github.com/rust-lang/rust/pull/41946 |
| 148 | +[42016]: https://github.com/rust-lang/rust/pull/42016 |
| 149 | +[42037]: https://github.com/rust-lang/rust/pull/42037 |
| 150 | +[42068]: https://github.com/rust-lang/rust/pull/42068 |
| 151 | +[42150]: https://github.com/rust-lang/rust/pull/42150 |
| 152 | +[42162]: https://github.com/rust-lang/rust/pull/42162 |
| 153 | +[42225]: https://github.com/rust-lang/rust/pull/42225 |
| 154 | +[42264]: https://github.com/rust-lang/rust/pull/42264 |
| 155 | +[42302]: https://github.com/rust-lang/rust/pull/42302 |
| 156 | +[42460]: https://github.com/rust-lang/rust/issues/42460 |
| 157 | +[42607]: https://github.com/rust-lang/rust/issues/42607 |
| 158 | +[42740]: https://github.com/rust-lang/rust/pull/42740 |
| 159 | +[42844]: https://github.com/rust-lang/rust/issues/42844 |
| 160 | +[42948]: https://github.com/rust-lang/rust/pull/42948 |
| 161 | +[RFC 1444]: https://github.com/rust-lang/rfcs/pull/1444 |
| 162 | +[RFC 1506]: https://github.com/rust-lang/rfcs/pull/1506 |
| 163 | +[RFC 1558]: https://github.com/rust-lang/rfcs/pull/1558 |
| 164 | +[RFC 1624]: https://github.com/rust-lang/rfcs/pull/1624 |
| 165 | +[RFC 1721]: https://github.com/rust-lang/rfcs/pull/1721 |
| 166 | +[`Command::envs`]: https://doc.rust-lang.org/std/process/struct.Command.html#method.envs |
| 167 | +[`OsString::shrink_to_fit`]: https://doc.rust-lang.org/std/ffi/struct.OsString.html#method.shrink_to_fit |
| 168 | +[`cmp::Reverse`]: https://doc.rust-lang.org/std/cmp/struct.Reverse.html |
| 169 | +[`thread::ThreadId`]: https://doc.rust-lang.org/std/thread/struct.ThreadId.html |
| 170 | +[cargo/3929]: https://github.com/rust-lang/cargo/pull/3929 |
| 171 | +[cargo/3954]: https://github.com/rust-lang/cargo/pull/3954 |
| 172 | +[cargo/3970]: https://github.com/rust-lang/cargo/pull/3970 |
| 173 | +[cargo/3979]: https://github.com/rust-lang/cargo/pull/3979 |
| 174 | +[cargo/3988]: https://github.com/rust-lang/cargo/pull/3988 |
| 175 | +[cargo/4008]: https://github.com/rust-lang/cargo/pull/4008 |
| 176 | +[cargo/4022]: https://github.com/rust-lang/cargo/pull/4022 |
| 177 | +[cargo/4026]: https://github.com/rust-lang/cargo/pull/4026 |
| 178 | +[cargo/4031]: https://github.com/rust-lang/cargo/pull/4031 |
| 179 | +[cargo/4032]: https://github.com/rust-lang/cargo/pull/4032 |
| 180 | +[cargo/4084]: https://github.com/rust-lang/cargo/pull/4084 |
| 181 | +[rust-installer/57]: https://github.com/rust-lang/rust-installer/pull/57 |
| 182 | +[rustup/1100]: https://github.com/rust-lang-nursery/rustup.rs/pull/1100 |
| 183 | + |
| 184 | + |
1 | 185 | Version 1.18.0 (2017-06-08)
|
2 | 186 | ===========================
|
3 | 187 |
|
|
0 commit comments