FWIW, I've now used rust-1.49.0 successfully to build both MozillaFirefox-84.0.2 and firefox-esr-78.6.1!
FWIW2, I raised the memory constraints for x86_64 from 8 to 11G, because otherwise a build got killed due to OOM too often.
This SR contains everything which got accepted for 1.48 just recently.
- Update to version 1.49.0
+ Language
- Unions can now implement Drop, and you can now have a field in
a union with ManuallyDrop<T>.
- You can now cast uninhabited enums to integers.
- You can now bind by reference and by move in patterns. This
allows you to selectively borrow individual components of a type.
E.g.
#[derive(Debug)]
struct Person {
name: String,
age: u8,
}
let person = Person {
name: String::from("Alice"),
age: 20,
};
// `name` is moved out of person, but `age` is referenced.
let Person { name, ref age } = person;
println!("{} {}", name, age);
+ Compiler
- Added tier 1* support for aarch64-unknown-linux-gnu.
- Added tier 2 support for aarch64-apple-darwin.
- Added tier 2 support for aarch64-pc-windows-msvc.
- Added tier 3 support for mipsel-unknown-none.
- Raised the minimum supported LLVM version to LLVM 9.
- Output from threads spawned in tests is now captured.
- Change os and vendor values to "none" and "unknown" for some targets
* Refer to Rust's platform support page for more information on Rust's
tiered platform support.
+ Libraries
- RangeInclusive now checks for exhaustion when calling contains and
indexing.
- ToString::to_string now no longer shrinks the internal buffer in
the default implementation.
- ops::{Index, IndexMut} are now implemented for fixed sized arrays
of any length.
+ Stabilized APIs
- slice::select_nth_unstable
- slice::select_nth_unstable_by
- slice::select_nth_unstable_by_key
The following previously stable methods are now const.
- Poll::is_ready
- Poll::is_pending
+ Cargo
- Building a crate with cargo-package should now be independently
reproducible.
- cargo-tree now marks proc-macro crates.
- Added CARGO_PRIMARY_PACKAGE build-time environment variable. This
variable will be set if the crate being built is one the user
selected to build, either with -p or through defaults.
- You can now use glob patterns when specifying packages & targets.
+ Compatibility Notes
- Demoted i686-unknown-freebsd from host tier 2 to target tier 2
support.
- Macros that end with a semi-colon are now treated as statements
even if they expand to nothing.
- Rustc will now check for the validity of some built-in attributes
on enum variants. Previously such invalid or unused attributes
could be ignored.
- Leading whitespace is stripped more uniformly in documentation
comments, which may change behavior. You read this post about
the changes for more details.
- Trait bounds are no longer inferred for associated types.
+ Internal Only
These changes provide no direct user facing benefits, but
represent significant improvements to the internals and overall
performance of rustc and related tools.
- rustc's internal crates are now compiled using the initial-exec
Thread Local Storage model.
- Calculate visibilities once in resolve.
- Added system to the llvm-libunwind bootstrap config option.
- Added --color for configuring terminal color support to bootstrap.
- Rebased patches:
+ ignore-Wstring-conversion.patch (location)
OBS-URL: https://build.opensuse.org/request/show/862664
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=275