Accepting request 667330 from home:luke_nukem:branches:devel:languages:rust
- Update to version 1.32.0 - Language + 2018 edition - You can now use the `?` operator in macro definitions. The `?` operator allows you to specify zero or one repetitions similar to the `*` and `+` operators. - Module paths with no leading keyword like `super`, `self`, or `crate`, will now always resolve to the item (`enum`, `struct`, etc.) available in the module if present, before resolving to a external crate or an item the prelude. E.g. enum Color { Red, Green, Blue } use Color::*; + All editions - You can now match against `PhantomData<T>` types. - You can now match against literals in macros with the `literal` specifier. This will match against a literal of any type. E.g. `1`, `'A'`, `"Hello World"` - Self can now be used as a constructor and pattern for unit and tuple structs. E.g. struct Point(i32, i32); impl Point { pub fn new(x: i32, y: i32) -> Self { Self(x, y) } pub fn is_origin(&self) -> bool { match self { Self(0, 0) => true, _ => false, } } } - Self can also now be used in type definitions. E.g. enum List<T> where Self: PartialOrd<Self> // can write `Self` instead of `List<T>` { Nil, Cons(T, Box<Self>) // likewise here } - You can now mark traits with `#[must_use]`. This provides a warning if a `impl Trait` or `dyn Trait` is returned and unused in the program. - Compiler + The default allocator has changed from jemalloc to the default allocator on your system. The compiler itself on Linux & macOS will still use jemalloc, but programs compiled with it will use the system allocator. + Added the `aarch64-pc-windows-msvc` target. - Libraries + `PathBuf` now implements `FromStr`. - `Box<[T]>` now implements `FromIterator<T>`. - The `dbg!` macro has been stabilized. This macro enables you to easily debug expressions in your rust program. E.g. let a = 2; let b = dbg!(a * 2) + 1; // ^-- prints: [src/main.rs:4] a * 2 = 4 assert_eq!(b, 5); + The following APIs are now `const` functions and can be used in a `const` context. - `Cell::as_ptr` - `UnsafeCell::get` - `char::is_ascii` - `iter::empty` - `ManuallyDrop::new` - `ManuallyDrop::into_inner` - `RangeInclusive::start` - `RangeInclusive::end` - `NonNull::as_ptr` - `slice::as_ptr` - `str::as_ptr` - `Duration::as_secs` - `Duration::subsec_millis` - `Duration::subsec_micros` - `Duration::subsec_nanos` - `CStr::as_ptr` - `Ipv4Addr::is_unspecified` - `Ipv6Addr::new` - `Ipv6Addr::octets` - Stabilized APIs + `i8::to_be_bytes` + `i8::to_le_bytes` + `i8::to_ne_bytes` + `i8::from_be_bytes` + `i8::from_le_bytes` + `i8::from_ne_bytes` + `i16::to_be_bytes` + `i16::to_le_bytes` + `i16::to_ne_bytes` + `i16::from_be_bytes` + `i16::from_le_bytes` + `i16::from_ne_bytes` + `i32::to_be_bytes` + `i32::to_le_bytes` + `i32::to_ne_bytes` + `i32::from_be_bytes` + `i32::from_le_bytes` + `i32::from_ne_bytes` + `i64::to_be_bytes` + `i64::to_le_bytes` + `i64::to_ne_bytes` + `i64::from_be_bytes` + `i64::from_le_bytes` + `i64::from_ne_bytes` + `i128::to_be_bytes` + `i128::to_le_bytes` + `i128::to_ne_bytes` + `i128::from_be_bytes` + `i128::from_le_bytes` + `i128::from_ne_bytes` + `isize::to_be_bytes` + `isize::to_le_bytes` + `isize::to_ne_bytes` + `isize::from_be_bytes` + `isize::from_le_bytes` + `isize::from_ne_bytes` + `u8::to_be_bytes` + `u8::to_le_bytes` + `u8::to_ne_bytes` + `u8::from_be_bytes` + `u8::from_le_bytes` + `u8::from_ne_bytes` + `u16::to_be_bytes` + `u16::to_le_bytes` + `u16::to_ne_bytes` + `u16::from_be_bytes` + `u16::from_le_bytes` + `u16::from_ne_bytes` + `u32::to_be_bytes` + `u32::to_le_bytes` + `u32::to_ne_bytes` + `u32::from_be_bytes` + `u32::from_le_bytes` + `u32::from_ne_bytes` + `u64::to_be_bytes` + `u64::to_le_bytes` + `u64::to_ne_bytes` + `u64::from_be_bytes` + `u64::from_le_bytes` + `u64::from_ne_bytes` + `u128::to_be_bytes` + `u128::to_le_bytes` + `u128::to_ne_bytes` + `u128::from_be_bytes` + `u128::from_le_bytes` + `u128::from_ne_bytes` + `usize::to_be_bytes` + `usize::to_le_bytes` + `usize::to_ne_bytes` + `usize::from_be_bytes` + `usize::from_le_bytes` + `usize::from_ne_bytes` - Cargo + You can now run `cargo c` as an alias for `cargo check`.][cargo/6218] + Usernames are now allowed in alt registry URLs.][cargo/6242] - Misc + `libproc_macro` has been added to the `rust-src` distribution. - Compatibility Notes + The argument types for AVX's `_mm256_stream_si256`, `_mm256_stream_pd`, `_mm256_stream_ps` have been changed from `*const` to `*mut` as the previous implementation was unsound. OBS-URL: https://build.opensuse.org/request/show/667330 OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=179
This commit is contained in:
committed by
Git OBS Bridge
parent
d7a6a69b7d
commit
c5c57d02d8
164
rust.changes
164
rust.changes
@@ -1,3 +1,167 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 17 21:22:11 UTC 2019 - Luke Jones <jones_ld@protonmail.com>
|
||||
|
||||
- Update to version 1.32.0
|
||||
- Language
|
||||
+ 2018 edition
|
||||
- You can now use the `?` operator in macro definitions. The `?`
|
||||
operator allows you to specify zero or one repetitions similar to the `*` and
|
||||
`+` operators.
|
||||
- Module paths with no leading keyword like `super`, `self`, or `crate`, will
|
||||
now always resolve to the item (`enum`, `struct`, etc.) available in the
|
||||
module if present, before resolving to a external crate or an item the prelude.
|
||||
E.g.
|
||||
enum Color { Red, Green, Blue }
|
||||
use Color::*;
|
||||
+ All editions
|
||||
- You can now match against `PhantomData<T>` types.
|
||||
- You can now match against literals in macros with the `literal`
|
||||
specifier. This will match against a literal of any type.
|
||||
E.g. `1`, `'A'`, `"Hello World"`
|
||||
- Self can now be used as a constructor and pattern for unit and tuple structs. E.g.
|
||||
struct Point(i32, i32);
|
||||
|
||||
impl Point {
|
||||
pub fn new(x: i32, y: i32) -> Self {
|
||||
Self(x, y)
|
||||
}
|
||||
|
||||
pub fn is_origin(&self) -> bool {
|
||||
match self {
|
||||
Self(0, 0) => true,
|
||||
_ => false,
|
||||
}
|
||||
}
|
||||
}
|
||||
- Self can also now be used in type definitions. E.g.
|
||||
enum List<T>
|
||||
where
|
||||
Self: PartialOrd<Self> // can write `Self` instead of `List<T>`
|
||||
{
|
||||
Nil,
|
||||
Cons(T, Box<Self>) // likewise here
|
||||
}
|
||||
- You can now mark traits with `#[must_use]`. This provides a warning if
|
||||
a `impl Trait` or `dyn Trait` is returned and unused in the program.
|
||||
- Compiler
|
||||
+ The default allocator has changed from jemalloc to the default allocator on
|
||||
your system. The compiler itself on Linux & macOS will still use
|
||||
jemalloc, but programs compiled with it will use the system allocator.
|
||||
+ Added the `aarch64-pc-windows-msvc` target.
|
||||
- Libraries
|
||||
+ `PathBuf` now implements `FromStr`.
|
||||
- `Box<[T]>` now implements `FromIterator<T>`.
|
||||
- The `dbg!` macro has been stabilized. This macro enables you to
|
||||
easily debug expressions in your rust program. E.g.
|
||||
let a = 2;
|
||||
let b = dbg!(a * 2) + 1;
|
||||
// ^-- prints: [src/main.rs:4] a * 2 = 4
|
||||
assert_eq!(b, 5);
|
||||
+ The following APIs are now `const` functions and can be used in a
|
||||
`const` context.
|
||||
- `Cell::as_ptr`
|
||||
- `UnsafeCell::get`
|
||||
- `char::is_ascii`
|
||||
- `iter::empty`
|
||||
- `ManuallyDrop::new`
|
||||
- `ManuallyDrop::into_inner`
|
||||
- `RangeInclusive::start`
|
||||
- `RangeInclusive::end`
|
||||
- `NonNull::as_ptr`
|
||||
- `slice::as_ptr`
|
||||
- `str::as_ptr`
|
||||
- `Duration::as_secs`
|
||||
- `Duration::subsec_millis`
|
||||
- `Duration::subsec_micros`
|
||||
- `Duration::subsec_nanos`
|
||||
- `CStr::as_ptr`
|
||||
- `Ipv4Addr::is_unspecified`
|
||||
- `Ipv6Addr::new`
|
||||
- `Ipv6Addr::octets`
|
||||
- Stabilized APIs
|
||||
+ `i8::to_be_bytes`
|
||||
+ `i8::to_le_bytes`
|
||||
+ `i8::to_ne_bytes`
|
||||
+ `i8::from_be_bytes`
|
||||
+ `i8::from_le_bytes`
|
||||
+ `i8::from_ne_bytes`
|
||||
+ `i16::to_be_bytes`
|
||||
+ `i16::to_le_bytes`
|
||||
+ `i16::to_ne_bytes`
|
||||
+ `i16::from_be_bytes`
|
||||
+ `i16::from_le_bytes`
|
||||
+ `i16::from_ne_bytes`
|
||||
+ `i32::to_be_bytes`
|
||||
+ `i32::to_le_bytes`
|
||||
+ `i32::to_ne_bytes`
|
||||
+ `i32::from_be_bytes`
|
||||
+ `i32::from_le_bytes`
|
||||
+ `i32::from_ne_bytes`
|
||||
+ `i64::to_be_bytes`
|
||||
+ `i64::to_le_bytes`
|
||||
+ `i64::to_ne_bytes`
|
||||
+ `i64::from_be_bytes`
|
||||
+ `i64::from_le_bytes`
|
||||
+ `i64::from_ne_bytes`
|
||||
+ `i128::to_be_bytes`
|
||||
+ `i128::to_le_bytes`
|
||||
+ `i128::to_ne_bytes`
|
||||
+ `i128::from_be_bytes`
|
||||
+ `i128::from_le_bytes`
|
||||
+ `i128::from_ne_bytes`
|
||||
+ `isize::to_be_bytes`
|
||||
+ `isize::to_le_bytes`
|
||||
+ `isize::to_ne_bytes`
|
||||
+ `isize::from_be_bytes`
|
||||
+ `isize::from_le_bytes`
|
||||
+ `isize::from_ne_bytes`
|
||||
+ `u8::to_be_bytes`
|
||||
+ `u8::to_le_bytes`
|
||||
+ `u8::to_ne_bytes`
|
||||
+ `u8::from_be_bytes`
|
||||
+ `u8::from_le_bytes`
|
||||
+ `u8::from_ne_bytes`
|
||||
+ `u16::to_be_bytes`
|
||||
+ `u16::to_le_bytes`
|
||||
+ `u16::to_ne_bytes`
|
||||
+ `u16::from_be_bytes`
|
||||
+ `u16::from_le_bytes`
|
||||
+ `u16::from_ne_bytes`
|
||||
+ `u32::to_be_bytes`
|
||||
+ `u32::to_le_bytes`
|
||||
+ `u32::to_ne_bytes`
|
||||
+ `u32::from_be_bytes`
|
||||
+ `u32::from_le_bytes`
|
||||
+ `u32::from_ne_bytes`
|
||||
+ `u64::to_be_bytes`
|
||||
+ `u64::to_le_bytes`
|
||||
+ `u64::to_ne_bytes`
|
||||
+ `u64::from_be_bytes`
|
||||
+ `u64::from_le_bytes`
|
||||
+ `u64::from_ne_bytes`
|
||||
+ `u128::to_be_bytes`
|
||||
+ `u128::to_le_bytes`
|
||||
+ `u128::to_ne_bytes`
|
||||
+ `u128::from_be_bytes`
|
||||
+ `u128::from_le_bytes`
|
||||
+ `u128::from_ne_bytes`
|
||||
+ `usize::to_be_bytes`
|
||||
+ `usize::to_le_bytes`
|
||||
+ `usize::to_ne_bytes`
|
||||
+ `usize::from_be_bytes`
|
||||
+ `usize::from_le_bytes`
|
||||
+ `usize::from_ne_bytes`
|
||||
- Cargo
|
||||
+ You can now run `cargo c` as an alias for `cargo check`.][cargo/6218]
|
||||
+ Usernames are now allowed in alt registry URLs.][cargo/6242]
|
||||
- Misc
|
||||
+ `libproc_macro` has been added to the `rust-src` distribution.
|
||||
- Compatibility Notes
|
||||
+ The argument types for AVX's
|
||||
`_mm256_stream_si256`, `_mm256_stream_pd`, `_mm256_stream_ps` have
|
||||
been changed from `*const` to `*mut` as the previous implementation
|
||||
was unsound.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Jan 5 10:51:54 UTC 2019 - Luke Jones <jones_ld@protonmail.com>
|
||||
|
||||
|
Reference in New Issue
Block a user