Revisions of rust

William Brown's avatar William Brown (firstyear) accepted request 891155 from William Brown's avatar William Brown (firstyear) (revision 288)
- Update to version 1.52:
  + Language
    - [Added the `unsafe_op_in_unsafe_fn` lint, which checks whether the unsafe code
      in an `unsafe fn` is wrapped in a `unsafe` block.][79208] This lint
      is allowed by default, and may become a warning or hard error in a
      future edition.
    - [You can now cast mutable references to arrays to a pointer of the same type as
      the element.][81479]
  + Compiler
    - [Upgraded the default LLVM to LLVM 12.][81451]
    - Added tier 3\* support for the following targets.
        - [`s390x-unknown-linux-musl`][82166]
        - [`riscv32gc-unknown-linux-musl` & `riscv64gc-unknown-linux-musl`][82202]
        - [`powerpc-unknown-openbsd`][82733]
  + Libraries
  - [`OsString` now implements `Extend` and `FromIterator`.][82121]
  - [`cmp::Reverse` now has `#[repr(transparent)]` representation.][81879]
  - [`Arc<impl Error>` now implements `error::Error`.][80553]
  - [All integer division and remainder operations are now `const`.][80962]
  + Stabilised APIs
    - [`Arguments::as_str`]
    - [`char::MAX`]
    - [`char::REPLACEMENT_CHARACTER`]
    - [`char::UNICODE_VERSION`]
    - [`char::decode_utf16`]
    - [`char::from_digit`]
    - [`char::from_u32_unchecked`]
    - [`char::from_u32`]
    - [`slice::partition_point`]
    - [`str::rsplit_once`]
buildservice-autocommit accepted request 886804 from William Brown's avatar William Brown (firstyear) (revision 287)
baserev update by copy to link target
William Brown's avatar William Brown (firstyear) accepted request 886366 from Aaron Puchert's avatar Aaron Puchert (aaronpuchert) (revision 286)
- Add support-llvm12.patch to support building with LLVM 12.
buildservice-autocommit accepted request 883124 from William Brown's avatar William Brown (firstyear) (revision 285)
baserev update by copy to link target
William Brown's avatar William Brown (firstyear) accepted request 883116 from William Brown's avatar William Brown (firstyear) (revision 284)
- Update to version 1.51:
  + Language
    - [You can now parameterize items such as functions, traits, and `struct`s by constant
      values in addition to by types and lifetimes.][79135] Also known as "const generics"
      E.g. you can now write the following. Note: Only values of primitive integers, 
      `bool`, or `char` types are currently permitted.
  + Compiler
    - [Added the `-Csplit-debuginfo` codegen option for macOS platforms.][79570]
      This option controls whether debug information is split across multiple files
      or packed into a single file. **Note** This option is unstable on other platforms.
    - [Added tier 3\* support for `aarch64_be-unknown-linux-gnu`,
      `aarch64-unknown-linux-gnu_ilp32`, and `aarch64_be-unknown-linux-gnu_ilp32` targets.][81455]
    - [Added tier 3 support for `i386-unknown-linux-gnu` and `i486-unknown-linux-gnu` targets.][80662]
    - [The `target-cpu=native` option will now detect individual features of CPUs.][80749]
      \* Refer to Rust's [platform support page][platform-support-doc] for more
      information on Rust's tiered platform support.
  + Libraries
    - [`Box::downcast` is now also implemented for any `dyn Any + Send + Sync` object.][80945]
    - [`str` now implements `AsMut<str>`.][80279]
    - [`u64` and `u128` now implement `From<char>`.][79502]
    - [`Error` is now implemented for `&T` where `T` implements `Error`.][75180]
    - [`Poll::{map_ok, map_err}` are now implemented for `Poll<Option<Result<T, E>>>`.][80968]
    - [`unsigned_abs` is now implemented for all signed integer types.][80959]
    - [`io::Empty` now implements `io::Seek`.][78044]
    - [`rc::Weak<T>` and `sync::Weak<T>`'s methods such as `as_ptr` are now implemented for
      `T: ?Sized` types.][80764]
  + Stabilized APIs
    - [`Arc::decrement_strong_count`]
    - [`Arc::increment_strong_count`]
    - [`Once::call_once_force`]
William Brown's avatar William Brown (firstyear) accepted request 881818 from William Brown's avatar William Brown (firstyear) (revision 283)
- Rebased patches:
  + ignore-Wstring-conversion.patch (offset / fuzz)
William Brown's avatar William Brown (firstyear) accepted request 881724 from Manfred Hollstein's avatar Manfred Hollstein (manfred-h) (revision 282)
- rust.spec: Fix typo.
  Add work-around for cargo not respecting _libexecdir on Leap.
buildservice-autocommit accepted request 878394 from Neal Gompa's avatar Neal Gompa (Pharaoh_Atem) (revision 281)
baserev update by copy to link target
Neal Gompa's avatar Neal Gompa (Pharaoh_Atem) accepted request 878393 from Guillaume GARDET's avatar Guillaume GARDET (Guillaume_G) (revision 280)
- Add bootstrap for armv6
Neal Gompa's avatar Neal Gompa (Pharaoh_Atem) committed (revision 279)
Drop changelog entry about download helper
Neal Gompa's avatar Neal Gompa (Pharaoh_Atem) committed (revision 278)
Delete download helper since rpmdev-spectool works for this anyway
Neal Gompa's avatar Neal Gompa (Pharaoh_Atem) accepted request 877726 from Guillaume GARDET's avatar Guillaume GARDET (Guillaume_G) (revision 277)
- Update to version 1.50:
  * This fixes build on armv7 - boo#1181643
  + Language
    - You can now use const values for x in [x; N] array expressions. 
    This has been technically possible since 1.38.0, as it was 
    unintentionally stabilized.
    - Assignments to ManuallyDrop<T> union fields are now considered safe.
  + Compiler
    - Added tier 3* support for the armv5te-unknown-linux-uclibceabi
    target.
    - Added tier 3 support for the aarch64-apple-ios-macabi target.
    - The x86_64-unknown-freebsd is now built with the full toolset.
    - Dropped support for all cloudabi targets.
    * Refer to Rust's platform support page for more information on
    Rust's tiered platform support.
  + Libraries
    - proc_macro::Punct now implements PartialEq<char>.
    - ops::{Index, IndexMut} are now implemented for fixed sized
    arrays of any length.
    - On Unix platforms, the std::fs::File type now has a "niche" of -1.
    This value cannot be a valid file descriptor, and now means Option<File>
    takes up the same amount of space as File.
  + Stabilized APIs
    bool::then
    btree_map::Entry::or_insert_with_key
    f32::clamp
    f64::clamp
    hash_map::Entry::or_insert_with_key
    Ord::clamp
    RefCell::take
    slice::fill
    UnsafeCell::get_mut
    - The following previously stable methods are now const.
    IpAddr::is_ipv4
    IpAddr::is_ipv6
    IpAddr::is_unspecified
    IpAddr::is_loopback
    IpAddr::is_multicast
    Ipv4Addr::octets
    Ipv4Addr::is_loopback
    Ipv4Addr::is_private
    Ipv4Addr::is_link_local
    Ipv4Addr::is_multicast
    Ipv4Addr::is_broadcast
    Ipv4Addr::is_documentation
    Ipv4Addr::to_ipv6_compatible
    Ipv4Addr::to_ipv6_mapped
    Ipv6Addr::segments
    Ipv6Addr::is_unspecified
    Ipv6Addr::is_loopback
    Ipv6Addr::is_multicast
    Ipv6Addr::to_ipv4
    Layout::size
    Layout::align
    Layout::from_size_align
    pow for all integer types.
    checked_pow for all integer types.
    saturating_pow for all integer types.
    wrapping_pow for all integer types.
    next_power_of_two for all unsigned integer types.
    checked_next_power_of_two for all unsigned integer types.
  + Cargo
    - Added the [build.rustc-workspace-wrapper] option. This option
    sets a wrapper to execute instead of rustc, for workspace members only.
    - cargo:rerun-if-changed will now, if provided a directory,
    scan the entire contents of that directory for changes.
    - Added the --workspace flag to the cargo update command.
  + Misc
    - The search results tab and the help button are focusable
    with keyboard in rustdoc.
    - Running tests will now print the total time taken to execute.
  + Compatibility Notes
    - The compare_and_swap method on atomics has been deprecated.
    It's recommended to use the compare_exchange and 
    compare_exchange_weak methods instead.
    - Changes in how TokenStreams are checked have fixed some cases
    where you could write unhygenic macro_rules! macros.
    - #![test] as an inner attribute is now considered unstable
    like other inner macro attributes, and reports an error by
    default through the soft_unstable lint.
    - Overriding a forbid lint at the same level that it was set
    is now a hard error.
    - You can no longer intercept panic! calls by supplying your own
    macro. It's recommended to use the #[panic_handler] attribute
    to provide your own implementation.
    - Semi-colons after item statements (e.g. struct Foo {};)
    now produce a warning.
- Add download_helper.sh to ease download of bootstrap packages
buildservice-autocommit accepted request 863002 from Neal Gompa's avatar Neal Gompa (Pharaoh_Atem) (revision 276)
baserev update by copy to link target
Neal Gompa's avatar Neal Gompa (Pharaoh_Atem) accepted request 862664 from Manfred Hollstein's avatar Manfred Hollstein (manfred-h) (revision 275)
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)
Neal Gompa's avatar Neal Gompa (Pharaoh_Atem) committed (revision 274)
- Add riscv64 build
- Add rust.keyring as a source
Neal Gompa's avatar Neal Gompa (Pharaoh_Atem) committed (revision 273)
Add reference to rust.keyring into changes
Neal Gompa's avatar Neal Gompa (Pharaoh_Atem) accepted request 862086 from Manfred Hollstein's avatar Manfred Hollstein (manfred-h) (revision 272)
Final SR - promised :)

- <https://github.com/rust-lang/rust/issues/74976>: Add "--stage 1"
  to the "./x.py doc" call to ensure the newly built compiler gets
  used.

-------------------------------------------------------------------
Sat Jan  9 09:25:07 UTC 2021 - Manfred Hollstein <manfred.h@gmx.net>

- Leap 15.3 does not provide a suitable llvm-devel package, hence
  explicitly require llvm9-devel. Details can be seen in the following
  e-mail thread
  <https://lists.opensuse.org/archives/list/factory@lists.opensuse.org/thread/ZQWAMG2VYBSI2BFM7G3H5YG26ALXWAOA/>

-------------------------------------------------------------------
Sun Jan  3 11:27:23 UTC 2021 - Manfred Hollstein <manfred.h@gmx.net>

- LLVM >= 9.0 is needed nowadays.
- Disable usage of "ninja" for all distributions older than Leap 15.2

-------------------------------------------------------------------
Sat Jan  2 16:50:47 UTC 2021 - Manfred Hollstein <manfred.h@gmx.net>

- Update to version 1.48.0
  + Language
  - The `unsafe` keyword is now syntactically permitted on modules.
    This is still rejected semantically, but can now be parsed by procedural
    macros.
  + Compiler
  - Stabilised the `-C link-self-contained=<yes|no>` compiler flag.
    This tells `rustc` whether to link its own C runtime and libraries or to
    rely on a external linker to find them. (Supported only on `windows-gnu`,
    `linux-musl`, and `wasi` platforms.)
  - You can now use `-C target-feature=+crt-static` on `linux-gnu` targets.
    Note: If you're using cargo you must explicitly pass the `--target` flag.
  - Added tier 2* support for aarch64-unknown-linux-musl.
  * Refer to Rust's platform support page for more information on Rust's
    tiered platform support.
  + Libraries
  - io::Write is now implemented for &ChildStdin &Sink, &Stdout, and &Stderr.
  - All arrays of any length now implement TryFrom<Vec<T>>.
  - The matches! macro now supports having a trailing comma.
  - Vec<A> now implements PartialEq<[B]> where A: PartialEq<B>.
  - The RefCell::{replace, replace_with, clone} methods now all use #[track_caller].
  + Stabilized APIs
  - slice::as_ptr_range
  - slice::as_mut_ptr_range
  - VecDeque::make_contiguous
  - future::pending
  - future::ready
  The following previously stable methods are now `const fn's`:
  - Option::is_some
  - Option::is_none
  - Option::as_ref
  - Result::is_ok
  - Result::is_err
  - Result::as_ref
  - Ordering::reverse
  - Ordering::then
  + Cargo
  + Rustdoc
  - You can now link to items in rustdoc using the intra-doc link syntax.
    E.g. /// Uses [`std::future`] will automatically generate a link to
    std::future's documentation. See "Linking to items by name" for more
    information.
  - You can now specify #[doc(alias = "<alias>")] on items to add search
    aliases when searching through rustdoc's UI.
  + Compatibility Notes
  - Promotion of references to 'static lifetime inside const fn now
    follows the same rules as inside a fn body. In particular, &foo()
    will not be promoted to 'static lifetime any more inside const fns.
  - Associated type bindings on trait objects are now verified to meet
    the bounds declared on the trait when checking that they implement
    the trait.
  - When trait bounds on associated types or opaque types are ambiguous,
    the compiler no longer makes an arbitrary choice on which bound to use.
  - Fixed recursive nonterminals not being expanded in macros during
    pretty-print/reparse check. This may cause errors if your macro
    wasn't correctly handling recursive nonterminal tokens.
  - &mut references to non zero-sized types are no longer promoted.
  - rustc will now warn if you use attributes like #[link_name] or
    #[cold] in places where they have no effect.
  - Updated _mm256_extract_epi8 and _mm256_extract_epi16 signatures
    in arch::{x86, x86_64} to return i32 to match the vendor signatures.
  - mem::uninitialized will now panic if any inner types inside a struct
    or enum disallow zero-initialization.
  - #[target_feature] will now error if used in a place where it has no effect.
  - Foreign exceptions are now caught by catch_unwind and will cause an
    abort. Note: This behaviour is not guaranteed and is still considered
    undefined behaviour, see the catch_unwind documentation for further
    information.
  + 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.
  - Building rustc from source now uses ninja by default over make.
    You can continue building with make by setting ninja=false in
    your config.toml.
  - cg_llvm: fewer_names in uncached_llvm_type
  - Made ensure_sufficient_stack() non-generic
- Rebased patches:
  + ignore-Wstring-conversion.patch (location)
Neal Gompa's avatar Neal Gompa (Pharaoh_Atem) accepted request 851409 from Bernhard Wiedemann's avatar Bernhard Wiedemann (bmwiedemann) (revision 271)
Check upstream signatures for binaries
buildservice-autocommit accepted request 849988 from Neal Gompa's avatar Neal Gompa (Pharaoh_Atem) (revision 270)
baserev update by copy to link target
Neal Gompa's avatar Neal Gompa (Pharaoh_Atem) accepted request 849719 from Manfred Hollstein's avatar Manfred Hollstein (manfred-h) (revision 269)
This request actually fixes two issues:

- rust-rpmlintrc: Reflect updated LLVM name in the filter.
#1: LLVM got updated to version 11, but the rpmlint filter does not reflect it. Fixes:

rust.x86_64: E: shlib-policy-name-error (Badness: 10000) libLLVM-11-rust-1_47_0-stable
 Your package contains a single shared library but is not named after its SONAME.

- Make all shared libraries in %{common_libdir} executable; otherwise
  the %{fdupes} macro will not find any duplicates in %{rustlibdir}.
#2: Files which only differ in their protection bits (i.e. execution bit in this case) will not be replaced by a hard link using the %{fdupes} call. This patch fixes:

rust.x86_64: E: files-duplicated-waste (Badness: 100) 4349464
 Your package contains duplicated files that are not hard- or symlinks. You
 should use the %fdupes macro to link the files to one.

Files in question are from /usr/lib/ and /usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/
Displaying revisions 61 - 80 of 348
openSUSE Build Service is sponsored by