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:
Luke Jones 2019-03-03 20:22:02 +00:00 committed by Git OBS Bridge
parent 4dcd467b91
commit ea59478644
5 changed files with 132 additions and 21 deletions

View File

@ -1,12 +1,12 @@
<?xml version="1.0"?>
<constraints>
<hardware>
<processors>4</processors>
<processors>8</processors>
<memory>
<size unit="G">8</size>
</memory>
<disk>
<size unit="G">20</size>
<size unit="G">25</size>
</disk>
</hardware>
<overwrite>

View File

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

View File

@ -79,7 +79,7 @@
%global rustflags -Clink-arg=-Wl,-z,relro,-z,now
Name: rust
Version: 1.32.0
Version: 1.33.0
Release: 0
Summary: A systems programming language
License: MIT OR Apache-2.0
@ -302,6 +302,19 @@ BuildArch: noarch
%description -n cargo-doc
This package includes HTML documentation for Cargo.
%package -n cargo-miri
Version: %{version}
Release: 0
Summary: Interpretor for Rust MIR
License: MIT OR Apache-2.0
Group: Development/Languages/Rust
Requires: cargo = %{version}
%description -n cargo-miri
An interpreter for Rust's mid-level intermediate representation (MIR).
It can run binaries and test suites of cargo projects and detect certain
classes of undefined behavior.
%prep
%if %{with rust_bootstrap}
%ifarch x86_64
@ -356,10 +369,6 @@ rm -rf src/tools/lldb
rm -rf src/llvm/
%endif
# extract bundled licenses for packaging
sed -e '/*\//q' src/libbacktrace/backtrace.h \
>src/libbacktrace/LICENSE-libbacktrace
# The configure macro will modify some autoconf-related files, which upsets
# cargo when it tries to verify checksums in those files. If we just truncate
# that file list, cargo won't have anything to complain about.
@ -368,14 +377,8 @@ find vendor -name .cargo-checksum.json \
# Fix rpmlint error "This script uses 'env' as an interpreter"
sed -i '1s|#!%{_bindir}/env python|#!%{_bindir}/python3|' src/libcore/unicode/unicode.py
find src/libcompiler_builtins/compiler-rt/lib/ -name '*.py' \
-exec sed -i -e '1s|#!%{_bindir}/env python|#!%{_bindir}/python3|' '{}' '+'
# Fix rpmlint warnings about these shell scripts not having a shebang or incorrect path
sed -i '1s|^|#!/bin/bash\n|' src/libbacktrace/ltmain.sh
sed -i '1s|^|#!/bin/bash\n|' src/libcompiler_builtins/ci/run.sh
sed -i '1s|^|#!/bin/bash\n|' src/liblibc/ci/run-docker.sh
sed -i '1s|^|#!/bin/bash\n|' src/liblibc/ci/emscripten-entry.sh
sed -i '1s|^|#!/bin/bash\n|' src/stdsimd/ci/run-docker.sh
%build
@ -471,9 +474,6 @@ find %{buildroot}%{rustlibdir} -type f -name '.travis.yml -exec rm -v '{}' '+'
# The shared libraries should be executable for debuginfo extraction.
find %{buildroot}%{rustlibdir} -maxdepth 1 -type f -name '*.so' -exec chmod -v +x '{}' '+'
# extract bundled licenses for packaging - From fedora spec
sed -e '/*\//q' src/libbacktrace/backtrace.h > src/libbacktrace/LICENSE-libbacktrace
# The html docs for x86 and x86_64 are the same in most places
%fdupes %{buildroot}%{_docdir}/%{name}/html
# We don't want to run fdupes over much else (like src) or it may cause weirdness.
@ -497,10 +497,8 @@ rm -rf %{buildroot}%{_sysconfdir}
%files
%if 0%{?suse_version} == 1315
%doc COPYRIGHT LICENSE-APACHE LICENSE-MIT
%doc src/libbacktrace/LICENSE-libbacktrace
%else
%license COPYRIGHT LICENSE-APACHE LICENSE-MIT
%license src/libbacktrace/LICENSE-libbacktrace
%endif
%doc CONTRIBUTING.md README.md RELEASES.md
%{_bindir}/rustc
@ -594,4 +592,14 @@ rm -rf %{buildroot}%{_sysconfdir}
%dir %{_docdir}/cargo
%{_docdir}/cargo/html
%files -n cargo-miri
%if 0%{?suse_version} == 1315
%doc src/tools/miri/LICENSE-{APACHE,MIT}
%else
%license src/tools/miri/LICENSE-{APACHE,MIT}
%endif
%doc src/tools/miri/README.md
%{_bindir}/cargo-miri
%{_bindir}/miri
%changelog

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d617a7dc39daaafa8256320991005fc376c8ef2080593918301b24466d0067af
size 99602696

3
rustc-1.33.0-src.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f4b1a72f1a29b23dcc9d7be5f60878f0434560513273906aa93dcd5c0de39b71
size 100635400