SHA256
1
0
forked from pool/rust

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:
Luke Jones
2019-01-22 01:49:01 +00:00
committed by Git OBS Bridge
parent d7a6a69b7d
commit c5c57d02d8
20 changed files with 196 additions and 35 deletions

View File

@@ -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>