Accepting request 681133 from home:luke_nukem:branches:devel:languages:rust
- Update to version 1.33.0 + Language - You can now use the `cfg(target_vendor)` attribute. E.g. `#[cfg(target_vendor="linux")] fn main() { println!("Hello Linux!"); }` - Integer patterns such as in a match expression can now be exhaustive. E.g. You can have match statement on a `u8` that covers `0..=255` and you would no longer be required to have a `_ => unreachable!()` case. - You can now have multiple patterns in `if let` and `while let` expressions. You can do this with the same syntax as a `match` expression. E.g. ``` enum Creature { Crab(String), Lobster(String), Person(String), } fn main() { let state = Creature::Crab("Ferris"); if let Creature::Crab(name) | Creature::Person(name) = state { println!("This creature's name is: {}", name); } } ``` - You can now have irrefutable `if let` and `while let` patterns. Using this feature will by default produce a warning as this behaviour can be unintuitive. E.g. `if let _ = 5 {}` - You can now use `let` bindings, assignments, expression statements, and irrefutable pattern destructuring in const functions. - You can now call unsafe const functions. E.g. ``` const unsafe fn foo() -> i32 { 5 } const fn bar() -> i32 { unsafe { foo() } } ``` - You can now specify multiple attributes in a `cfg_attr` attribute. E.g. `#[cfg_attr(all(), must_use, optimize)]` - You can now specify a specific alignment with the `#[repr(packed)]` attribute. E.g. `#[repr(packed(2))] struct Foo(i16, i32);` is a struct with an alignment of 2 bytes and a size of 6 bytes. - You can now import an item from a module as an `_`. This allows you to import a trait's impls, and not have the name in the namespace. E.g. ``` use std::io::Read as _; // Allowed as there is only one `Read` in the module. pub trait Read {} ``` - extern` functions will now abort by default when panicking. This was previously undefined behaviour. + Compiler - You can now set a linker flavor for `rustc` with the `-Clinker-flavor` command line argument. - The mininum required LLVM version has been bumped to 6.0. - Added support for the PowerPC64 architecture on FreeBSD. - The `x86_64-fortanix-unknown-sgx` target support has been upgraded to tier 2 support. Visit the [platform support][platform-support] page for information on Rust's platform support. - Added support for the `thumbv7neon-linux-androideabi` and `thumbv7neon-unknown-linux-gnueabihf` targets. - Added support for the `x86_64-unknown-uefi` target. + Libraries - The methods `overflowing_{add, sub, mul, shl, shr}` are now `const` functions for all numeric types. - The methods `rotate_left`, `rotate_right`, and `wrapping_{add, sub, mul, shl, shr}` are now `const` functions for all numeric types. - The methods `is_positive` and `is_negative` are now `const` functions for all signed numeric types. - The `get` method for all `NonZero` types is now `const`. - The methods `count_ones`, `count_zeros`, `leading_zeros`, `trailing_zeros`, `swap_bytes`, `from_be`, `from_le`, `to_be`, `to_le` are now `const` for all numeric types. - Ipv4Addr::new` is now a `const` function + Stabilized APIs - unix::FileExt::read_exact_at - unix::FileExt::write_all_at - Option::transpose - Result::transpose - convert::identity - pin::Pin - marker::Unpin - marker::PhantomPinned - Vec::resize_with - VecDeque::resize_with - Duration::as_millis - Duration::as_micros - Duration::as_nanos + Cargo - Cargo should now rebuild a crate if a file was modified during the initial build.][cargo/6484] + Compatibility Notes - The methods `str::{trim_left, trim_right, trim_left_matches, trim_right_matches}` are now deprecated in the standard library, and their usage will now produce a warning. Please use the `str::{trim_start, trim_end, trim_start_matches, trim_end_matches}` methods instead. OBS-URL: https://build.opensuse.org/request/show/681133 OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=196
This commit is contained in:
committed by
Git OBS Bridge
parent
4dcd467b91
commit
ea59478644
103
rust.changes
103
rust.changes
@@ -1,3 +1,106 @@
|
||||
-------------------------------------------------------------------
|
||||
Sat Mar 2 05:17:36 UTC 2019 - Luke Jones <jones_ld@protonmail.com>
|
||||
|
||||
- Update to version 1.33.0
|
||||
+ Language
|
||||
- You can now use the `cfg(target_vendor)` attribute. E.g.
|
||||
`#[cfg(target_vendor="linux")] fn main() { println!("Hello Linux!"); }`
|
||||
- Integer patterns such as in a match expression can now be exhaustive.
|
||||
E.g. You can have match statement on a `u8` that covers `0..=255` and
|
||||
you would no longer be required to have a `_ => unreachable!()` case.
|
||||
- You can now have multiple patterns in `if let` and `while let`
|
||||
expressions. You can do this with the same syntax as a `match`
|
||||
expression. E.g.
|
||||
```
|
||||
enum Creature {
|
||||
Crab(String),
|
||||
Lobster(String),
|
||||
Person(String),
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let state = Creature::Crab("Ferris");
|
||||
|
||||
if let Creature::Crab(name) | Creature::Person(name) = state {
|
||||
println!("This creature's name is: {}", name);
|
||||
}
|
||||
}
|
||||
```
|
||||
- You can now have irrefutable `if let` and `while let` patterns. Using
|
||||
this feature will by default produce a warning as this behaviour can be
|
||||
unintuitive. E.g. `if let _ = 5 {}`
|
||||
- You can now use `let` bindings, assignments, expression statements,
|
||||
and irrefutable pattern destructuring in const functions.
|
||||
- You can now call unsafe const functions. E.g.
|
||||
```
|
||||
const unsafe fn foo() -> i32 { 5 }
|
||||
const fn bar() -> i32 {
|
||||
unsafe { foo() }
|
||||
}
|
||||
```
|
||||
- You can now specify multiple attributes in a `cfg_attr` attribute.
|
||||
E.g. `#[cfg_attr(all(), must_use, optimize)]`
|
||||
- You can now specify a specific alignment with the `#[repr(packed)]`
|
||||
attribute. E.g. `#[repr(packed(2))] struct Foo(i16, i32);` is a struct
|
||||
with an alignment of 2 bytes and a size of 6 bytes.
|
||||
- You can now import an item from a module as an `_`. This allows you to
|
||||
import a trait's impls, and not have the name in the namespace. E.g.
|
||||
```
|
||||
use std::io::Read as _;
|
||||
|
||||
// Allowed as there is only one `Read` in the module.
|
||||
pub trait Read {}
|
||||
```
|
||||
- extern` functions will now abort by default when panicking.
|
||||
This was previously undefined behaviour.
|
||||
+ Compiler
|
||||
- You can now set a linker flavor for `rustc` with the `-Clinker-flavor`
|
||||
command line argument.
|
||||
- The mininum required LLVM version has been bumped to 6.0.
|
||||
- Added support for the PowerPC64 architecture on FreeBSD.
|
||||
- The `x86_64-fortanix-unknown-sgx` target support has been upgraded to
|
||||
tier 2 support. Visit the [platform support][platform-support] page for
|
||||
information on Rust's platform support.
|
||||
- Added support for the `thumbv7neon-linux-androideabi` and
|
||||
`thumbv7neon-unknown-linux-gnueabihf` targets.
|
||||
- Added support for the `x86_64-unknown-uefi` target.
|
||||
|
||||
+ Libraries
|
||||
- The methods `overflowing_{add, sub, mul, shl, shr}` are now `const`
|
||||
functions for all numeric types.
|
||||
- The methods `rotate_left`, `rotate_right`, and `wrapping_{add, sub, mul, shl, shr}`
|
||||
are now `const` functions for all numeric types.
|
||||
- The methods `is_positive` and `is_negative` are now `const` functions for
|
||||
all signed numeric types.
|
||||
- The `get` method for all `NonZero` types is now `const`.
|
||||
- The methods `count_ones`, `count_zeros`, `leading_zeros`, `trailing_zeros`,
|
||||
`swap_bytes`, `from_be`, `from_le`, `to_be`, `to_le` are now `const` for all
|
||||
numeric types.
|
||||
- Ipv4Addr::new` is now a `const` function
|
||||
+ Stabilized APIs
|
||||
- unix::FileExt::read_exact_at
|
||||
- unix::FileExt::write_all_at
|
||||
- Option::transpose
|
||||
- Result::transpose
|
||||
- convert::identity
|
||||
- pin::Pin
|
||||
- marker::Unpin
|
||||
- marker::PhantomPinned
|
||||
- Vec::resize_with
|
||||
- VecDeque::resize_with
|
||||
- Duration::as_millis
|
||||
- Duration::as_micros
|
||||
- Duration::as_nanos
|
||||
+ Cargo
|
||||
- Cargo should now rebuild a crate if a file was modified during the initial
|
||||
build.][cargo/6484]
|
||||
|
||||
+ Compatibility Notes
|
||||
- The methods `str::{trim_left, trim_right, trim_left_matches, trim_right_matches}`
|
||||
are now deprecated in the standard library, and their usage will now produce a warning.
|
||||
Please use the `str::{trim_start, trim_end, trim_start_matches, trim_end_matches}`
|
||||
methods instead.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Mar 1 06:57:58 UTC 2019 - Luke Jones <jones_ld@protonmail.com>
|
||||
|
||||
|
Reference in New Issue
Block a user