| 
 | 1 | +Version 1.44.0 (2020-06-04)  | 
 | 2 | +==========================  | 
 | 3 | + | 
 | 4 | +Language  | 
 | 5 | +--------  | 
 | 6 | +- [You can now use `async/.await` with `#[no_std]` enabled.][69033]  | 
 | 7 | +- [Added the `unused_braces` lint.][70081]  | 
 | 8 | + | 
 | 9 | +**Syntax-only changes**  | 
 | 10 | + | 
 | 11 | +- [Expansion-driven outline module parsing][69838]  | 
 | 12 | +```rust  | 
 | 13 | +#[cfg(FALSE)]  | 
 | 14 | +mod foo {  | 
 | 15 | +    mod bar {  | 
 | 16 | +        mod baz; // `foo/bar/baz.rs` doesn't exist, but no error!  | 
 | 17 | +    }  | 
 | 18 | +}  | 
 | 19 | +```  | 
 | 20 | + | 
 | 21 | +These are still rejected semantically, so you will likely receive an error but  | 
 | 22 | +these changes can be seen and parsed by macros and conditional compilation.  | 
 | 23 | + | 
 | 24 | +Compiler  | 
 | 25 | +--------  | 
 | 26 | +- [Rustc now respects the `-C codegen-units` flag in incremental mode.][70156]  | 
 | 27 | +  Additionally when in incremental mode rustc defaults to 256 codegen units.  | 
 | 28 | +- [Refactored `catch_unwind`, to have zero-cost unless unwinding is enabled and  | 
 | 29 | +  a panic is thrown.][67502]  | 
 | 30 | +- [Added tier 3\* support for the `aarch64-unknown-none` and  | 
 | 31 | +  `aarch64-unknown-none-softfloat` targets.][68334]  | 
 | 32 | +- [Added tier 3 support for `arm64-apple-tvos` and  | 
 | 33 | +  `x86_64-apple-tvos` targets.][68191]  | 
 | 34 | + | 
 | 35 | + | 
 | 36 | +Libraries  | 
 | 37 | +---------  | 
 | 38 | +- [Special cased `vec![]` to map directly to `Vec::new()`.][70632] This allows  | 
 | 39 | +  `vec![]` to be able to be used in `const` contexts.  | 
 | 40 | +- [`convert::Infallible` now implements `Hash`.][70281]  | 
 | 41 | +- [`OsString` now implements `DerefMut` and `IndexMut` returning  | 
 | 42 | +  a `&mut OsStr`.][70048]  | 
 | 43 | +- [Unicode 13 is now supported.][69929]  | 
 | 44 | +- [`String` now implements `From<&mut str>`.][69661]  | 
 | 45 | +- [`IoSlice` now implements `Copy`.][69403]  | 
 | 46 | +- [`Vec<T>` now implements `From<[T; N]>`.][68692] Where `N` is less than 32.  | 
 | 47 | +- [`proc_macro::LexError` now implements `fmt::Display` and `Error`.][68899]  | 
 | 48 | +- [`from_le_bytes`, `to_le_bytes`, `from_be_bytes`, `to_be_bytes`,  | 
 | 49 | +  `from_ne_bytes`, and `to_ne_bytes` methods are now `const` for all  | 
 | 50 | +  integer types.][69373]  | 
 | 51 | + | 
 | 52 | +Stabilized APIs  | 
 | 53 | +---------------  | 
 | 54 | +- [`PathBuf::with_capacity`]  | 
 | 55 | +- [`PathBuf::capacity`]  | 
 | 56 | +- [`PathBuf::clear`]  | 
 | 57 | +- [`PathBuf::reserve`]  | 
 | 58 | +- [`PathBuf::reserve_exact`]  | 
 | 59 | +- [`PathBuf::shrink_to_fit`]  | 
 | 60 | +- [`f32::to_int_unchecked`]  | 
 | 61 | +- [`f64::to_int_unchecked`]  | 
 | 62 | +- [`Layout::align_to`]  | 
 | 63 | +- [`Layout::pad_to_align`]  | 
 | 64 | +- [`Layout::array`]  | 
 | 65 | +- [`Layout::extend`]  | 
 | 66 | + | 
 | 67 | +Cargo  | 
 | 68 | +-----  | 
 | 69 | +- [Added the `cargo tree` command which will print a tree graph of  | 
 | 70 | +  your dependencies.][cargo/8062] E.g.  | 
 | 71 | +  ```  | 
 | 72 | +    mdbook v0.3.2 (/Users/src/rust/mdbook)  | 
 | 73 | +  ├── ammonia v3.0.0  | 
 | 74 | +  │   ├── html5ever v0.24.0  | 
 | 75 | +  │   │   ├── log v0.4.8  | 
 | 76 | +  │   │   │   └── cfg-if v0.1.9  | 
 | 77 | +  │   │   ├── mac v0.1.1  | 
 | 78 | +  │   │   └── markup5ever v0.9.0  | 
 | 79 | +  │   │       ├── log v0.4.8 (*)  | 
 | 80 | +  │   │       ├── phf v0.7.24  | 
 | 81 | +  │   │       │   └── phf_shared v0.7.24  | 
 | 82 | +  │   │       │       ├── siphasher v0.2.3  | 
 | 83 | +  │   │       │       └── unicase v1.4.2  | 
 | 84 | +  │   │       │           [build-dependencies]  | 
 | 85 | +  │   │       │           └── version_check v0.1.5  | 
 | 86 | +  ...  | 
 | 87 | +  ```  | 
 | 88 | + | 
 | 89 | +Misc  | 
 | 90 | +----  | 
 | 91 | +- [Rustdoc now allows you to specify `--crate-version` to have rustdoc include  | 
 | 92 | +  the version in the sidebar.][69494]  | 
 | 93 | + | 
 | 94 | +Compatibility Notes  | 
 | 95 | +-------------------  | 
 | 96 | +- [Rustc now correctly generates static libraries on Windows GNU targets with  | 
 | 97 | +  the `.a` extension, rather than the previous `.lib`.][70937]  | 
 | 98 | +- [Removed the `-C no_integrated_as` flag from rustc.][70345]  | 
 | 99 | +- [The `file_name` property in JSON output of macro errors now points the actual  | 
 | 100 | +  source file rather than the previous format of `<NAME macros>`.][70969]  | 
 | 101 | +  **Note:** this may not point a file that actually exists on the user's system.  | 
 | 102 | +- [The minimum required external LLVM version has been bumped to LLVM 8.][71147]  | 
 | 103 | +- [`mem::{zeroed, uninitialised, MaybeUninit}` will now panic when used with types  | 
 | 104 | +  that do not allow zero initialization such as `NonZeroU8`.][66059] This was  | 
 | 105 | +  previously a warning.  | 
 | 106 | +- [In 1.45.0 (the next release) converting a `f64` to `u32` using the `as`  | 
 | 107 | +  operator has been defined as a saturating operation.][71269] This was previously  | 
 | 108 | +  undefined behaviour, you can use the `{f64, f32}::to_int_unchecked` methods to  | 
 | 109 | +  continue using the current behaviour which may desirable in rare performance  | 
 | 110 | +  sensitive situations.  | 
 | 111 | + | 
 | 112 | +Internal Only  | 
 | 113 | +-------------  | 
 | 114 | +These changes provide no direct user facing benefits, but represent significant  | 
 | 115 | +improvements to the internals and overall performance of rustc and  | 
 | 116 | +related tools.  | 
 | 117 | + | 
 | 118 | +- [dep_graph Avoid allocating a set on when the number reads are small.][69778]  | 
 | 119 | +- [Replace big JS dict with JSON parsing.][71250]  | 
 | 120 | + | 
 | 121 | +[69373]: https://github.com/rust-lang/rust/pull/69373/  | 
 | 122 | +[66059]: https://github.com/rust-lang/rust/pull/66059/  | 
 | 123 | +[68191]: https://github.com/rust-lang/rust/pull/68191/  | 
 | 124 | +[68899]: https://github.com/rust-lang/rust/pull/68899/  | 
 | 125 | +[71147]: https://github.com/rust-lang/rust/pull/71147/  | 
 | 126 | +[71250]: https://github.com/rust-lang/rust/pull/71250/  | 
 | 127 | +[70937]: https://github.com/rust-lang/rust/pull/70937/  | 
 | 128 | +[70969]: https://github.com/rust-lang/rust/pull/70969/  | 
 | 129 | +[70632]: https://github.com/rust-lang/rust/pull/70632/  | 
 | 130 | +[70281]: https://github.com/rust-lang/rust/pull/70281/  | 
 | 131 | +[70345]: https://github.com/rust-lang/rust/pull/70345/  | 
 | 132 | +[70048]: https://github.com/rust-lang/rust/pull/70048/  | 
 | 133 | +[70081]: https://github.com/rust-lang/rust/pull/70081/  | 
 | 134 | +[70156]: https://github.com/rust-lang/rust/pull/70156/  | 
 | 135 | +[71269]: https://github.com/rust-lang/rust/pull/71269/  | 
 | 136 | +[69838]: https://github.com/rust-lang/rust/pull/69838/  | 
 | 137 | +[69929]: https://github.com/rust-lang/rust/pull/69929/  | 
 | 138 | +[69661]: https://github.com/rust-lang/rust/pull/69661/  | 
 | 139 | +[69778]: https://github.com/rust-lang/rust/pull/69778/  | 
 | 140 | +[69494]: https://github.com/rust-lang/rust/pull/69494/  | 
 | 141 | +[69403]: https://github.com/rust-lang/rust/pull/69403/  | 
 | 142 | +[69033]: https://github.com/rust-lang/rust/pull/69033/  | 
 | 143 | +[68692]: https://github.com/rust-lang/rust/pull/68692/  | 
 | 144 | +[68334]: https://github.com/rust-lang/rust/pull/68334/  | 
 | 145 | +[67502]: https://github.com/rust-lang/rust/pull/67502/  | 
 | 146 | +[cargo/8062]: https://github.com/rust-lang/cargo/pull/8062/  | 
 | 147 | +[`PathBuf::with_capacity`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.with_capacity  | 
 | 148 | +[`PathBuf::capacity`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.capacity  | 
 | 149 | +[`PathBuf::clear`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.clear  | 
 | 150 | +[`PathBuf::reserve`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.reserve  | 
 | 151 | +[`PathBuf::reserve_exact`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.reserve_exact  | 
 | 152 | +[`PathBuf::shrink_to_fit`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.shrink_to_fit  | 
 | 153 | +[`f32::to_int_unchecked`]: https://doc.rust-lang.org/std/primitive.f32.html#method.to_int_unchecked  | 
 | 154 | +[`f64::to_int_unchecked`]: https://doc.rust-lang.org/std/primitive.f64.html#method.to_int_unchecked  | 
 | 155 | +[`Layout::align_to`]: https://doc.rust-lang.org/std/alloc/struct.Layout.html#method.align_to  | 
 | 156 | +[`Layout::pad_to_align`]: https://doc.rust-lang.org/std/alloc/struct.Layout.html#method.pad_to_align  | 
 | 157 | +[`Layout::array`]: https://doc.rust-lang.org/std/alloc/struct.Layout.html#method.array  | 
 | 158 | +[`Layout::extend`]: https://doc.rust-lang.org/std/alloc/struct.Layout.html#method.extend  | 
 | 159 | + | 
 | 160 | + | 
1 | 161 | Version 1.43.1 (2020-05-07)  | 
2 | 162 | ===========================  | 
3 | 163 | 
 
  | 
 | 
0 commit comments