commit 830e55ff1db1c7094c3ee0f967d81635a9b92dfc Author: Adrian Schröter Date: Fri Oct 6 12:11:09 2023 +0200 Sync from SUSE:ALP:Source:Standard:1.0 rust revision aee3c7e64e521f89ad8557c2616b0559 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..fecc750 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/README b/README new file mode 100644 index 0000000..c48a90c --- /dev/null +++ b/README @@ -0,0 +1 @@ +This is a package that depends on the current latest rust for the distribution diff --git a/rust-rpmlintrc b/rust-rpmlintrc new file mode 100644 index 0000000..47c2f6b --- /dev/null +++ b/rust-rpmlintrc @@ -0,0 +1,4 @@ + + +# We need to make these package arch dependent even if they have no binaries. +addFilter("no-binary") diff --git a/rust.changes b/rust.changes new file mode 100644 index 0000000..0cd5ae1 --- /dev/null +++ b/rust.changes @@ -0,0 +1,3667 @@ +------------------------------------------------------------------- +Sun Aug 27 23:05:13 UTC 2023 - William Brown + +- Update to version 1.72.0 - for details see the rust1.72 package + +------------------------------------------------------------------- +Mon Jul 17 02:22:05 UTC 2023 - William Brown + +- Update to version 1.71.0 - for details see the rust1.71 package + +------------------------------------------------------------------- +Sat Jun 3 02:41:35 UTC 2023 - William Brown + +- Update to version 1.70.0 - for details see the rust1.70 package + +------------------------------------------------------------------- +Fri Apr 21 03:28:38 UTC 2023 - William Brown + +- Update to version 1.69.0 - for details see the rust1.69 package + +------------------------------------------------------------------- +Fri Mar 10 02:24:52 UTC 2023 - William Brown + +- Update to version 1.68.0 - for details see the rust1.68 package + +------------------------------------------------------------------- +Tue Feb 14 01:29:41 UTC 2023 - William Brown + +- Update to version 1.67.1 - for details see the rust1.67 package + +------------------------------------------------------------------- +Tue Jan 31 00:04:26 UTC 2023 - William Brown + +- Update to version 1.67.0 - for details see the rust1.67 package + +------------------------------------------------------------------- +Fri Dec 16 03:52:06 UTC 2022 - William Brown + +- Update to version 1.66.0 - for details see the rust1.66 package + +------------------------------------------------------------------- +Fri Nov 4 00:07:43 UTC 2022 - William Brown + +- Update to version 1.65.0 - for details see the rust1.65 package + +------------------------------------------------------------------- +Wed Sep 28 12:23:25 UTC 2022 - Guillaume GARDET + +- Enable armv6 again - boo#1196328 + +------------------------------------------------------------------- +Sun Sep 25 01:15:23 UTC 2022 - William Brown + +- Update to version 1.64.0 - for details see the rust1.64 package + +------------------------------------------------------------------- +Tue Aug 23 02:45:19 UTC 2022 - William Brown + +- Update to version 1.63.0 - for details see the rust1.63 package + +------------------------------------------------------------------- +Mon Jul 4 04:58:15 UTC 2022 - William Brown + +- Update to version 1.62.0 - for details see the rust1.62 package + +------------------------------------------------------------------- +Fri May 20 02:39:19 UTC 2022 - William Brown + +- Update to version 1.61.0 - for details see the rust1.61 package + +------------------------------------------------------------------- +Fri Apr 8 01:58:13 UTC 2022 - William Brown + +- Update to version 1.60.0 - for details see the rust1.60 package + +------------------------------------------------------------------- +Fri Feb 25 01:23:09 UTC 2022 - William Brown + +- Update to version 1.59.0 - for details see the rust1.59 package + +------------------------------------------------------------------- +Wed Feb 16 02:08:23 UTC 2022 - William Brown + +- Update package description to help users choose what tooling + to install. + +------------------------------------------------------------------- +Mon Jan 17 10:56:59 UTC 2022 - Dominique Leuenberger + +- Provide rust+cargo by cargo: all cargo package provide this + symbol too. Having the meta package provide it allows OBS to have + a generic prefernece on the meta package for all packages 'just' + requiring rust+cargo. + +------------------------------------------------------------------- +Fri Jan 14 05:48:07 UTC 2022 - William Brown + +- Update to version 1.58.0 + +------------------------------------------------------------------- +Fri Dec 3 03:40:19 UTC 2021 - William Brown + +- Update to version 1.57.0 + +------------------------------------------------------------------- +Mon Nov 8 00:35:24 UTC 2021 - William Brown + +- Update to version 1.56.1 + +------------------------------------------------------------------- +Mon Oct 25 22:36:36 UTC 2021 - William Brown + +- Remove rls/gdb as they are superceded by rustup + +------------------------------------------------------------------- +Fri Sep 10 03:07:24 UTC 2021 - William Brown + +- Update to version 1.55 + +------------------------------------------------------------------- +Mon Aug 16 02:27:30 UTC 2021 - William Brown + +- Change expression of dependency requirements to resolve zypper dup + issues + +------------------------------------------------------------------- +Fri Jul 30 03:40:08 UTC 2021 - William Brown + +- Update to version 1.54 + +------------------------------------------------------------------- +Tue Jul 6 10:40:26 UTC 2021 - Dominique Leuenberger + +- Only install rls/README when building devtools, as otherwise this + file would end up in no package. + +------------------------------------------------------------------- +Tue Jul 6 01:47:31 UTC 2021 - William Brown + +- Revert package to be arch dependent based on reviewer feedback + +------------------------------------------------------------------- +Mon Jun 28 01:25:12 UTC 2021 - William Brown + +- Migrate to parallel versioned rust installs. +- Remove artefacts for building rust + * ignore-Wstring-conversion.patch + +------------------------------------------------------------------- +Fri Jun 18 00:52:43 UTC 2021 - William Brown + +- Update to version 1.53: + + Language + - [You can now use unicode for identifiers.][83799] This allows multilingual + identifiers but still doesn't allow glyphs that are not considered characters + such as `◆` or `🦀`. More specifically you can now use any identifier that + matches the UAX #31 "Unicode Identifier and Pattern Syntax" standard. This + is the same standard as languages like Python, however Rust uses NFC + normalization which may be different from other languages. + - [You can now specify "or patterns" inside pattern matches.][79278] + Previously you could only use `|` (OR) on complete patterns. E.g. + ```rust + let x = Some(2u8); + // Before + matches!(x, Some(1) | Some(2)); + // Now + matches!(x, Some(1 | 2)); + ``` + - [Added the `:pat_param` `macro_rules!` matcher.][83386] This matcher + has the same semantics as the `:pat` matcher. This is to allow `:pat` + to change semantics to being a pattern fragment in a future edition. + + Compiler + - [Updated the minimum external LLVM version to LLVM 10.][83387] + - [Added Tier 3\* support for the `wasm64-unknown-unknown` target.][80525] + - [Improved debuginfo for closures and async functions on Windows MSVC.][83941] + + \* Refer to Rust's [platform support page][platform-support-doc] for more + information on Rust's tiered platform support. + + Libraries + - [Abort messages will now forward to `android_set_abort_message` on + Android platforms when available.][81469] + - [`slice::IterMut<'_, T>` now implements `AsRef<[T]>`][82771] + - [Arrays of any length now implement `IntoIterator`.][84147] + Currently calling `.into_iter()` as a method on an array will + return `impl Iterator`, but this may change in a + future edition to change `Item` to `T`. Calling `IntoIterator::into_iter` + directly on arrays will provide `impl Iterator` as expected. + - [`leading_zeros`, and `trailing_zeros` are now available on all + `NonZero` integer types.][84082] + - [`{f32, f64}::from_str` now parse and print special values + (`NaN`, `-0`) according to IEEE RFC 754.][78618] + - [You can now index into slices using `(Bound, Bound)`.][77704] + - [Add the `BITS` associated constant to all numeric types.][82565] + + Cargo + - [Cargo now supports git repositories where the default `HEAD` branch is not + "master".][cargo/9392] This also includes a switch to the version 3 `Cargo.lock` format + which can handle default branches correctly. + - [macOS targets now default to `unpacked` split-debuginfo.][cargo/9298] + - [The `authors` field is no longer included in `Cargo.toml` for new + projects.][cargo/9282] + + Rustdoc + - [Added the `rustdoc::bare_urls` lint that warns when you have URLs + without hyperlinks.][81764] + + Compatibility Notes + - [Implement token-based handling of attributes during expansion][82608] + - [`Ipv4::from_str` will now reject octal format IP addresses in addition + to rejecting hexadecimal IP addresses.][83652] The octal format can lead + to confusion and potential security vulnerabilities and [is no + longer recommended][ietf6943]. + +------------------------------------------------------------------- +Mon May 10 22:41:00 UTC 2021 - William Brown + +- Update to version 1.52.1: + - This release works around broken builds on 1.52.0, which are caused by newly + added verification. The bugs this verification detects are present in all + Rust versions, and can trigger miscompilations in incremental builds, so + downgrading to a prior stable version is not a fix. + - What should a Rust programmer do in response? + - upgrade to 1.52.1 + - deleting your incremental compilation cache (e.g. by running cargo clean) + - forcing incremental compilation to be disabled, by setting + CARGO_INCREMENTAL=0 in your environment or build.incremental to false in + the config.toml. + - For more: https://blog.rust-lang.org/2021/05/10/Rust-1.52.1.html + +------------------------------------------------------------------- +Fri May 7 00:29:37 UTC 2021 - William Brown + +- 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` 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`] + - [`str::split_once`] + The following previously stable APIs are now `const`. + - [`char::len_utf8`] + - [`char::len_utf16`] + - [`char::to_ascii_uppercase`] + - [`char::to_ascii_lowercase`] + - [`char::eq_ignore_ascii_case`] + - [`u8::to_ascii_uppercase`] + - [`u8::to_ascii_lowercase`] + - [`u8::eq_ignore_ascii_case`] + + Rustdoc + - [Rustdoc lints are now treated as a tool lint, meaning that + lints are now prefixed with `rustdoc::` (e.g. `#[warn(rustdoc::non_autolinks)]`).][80527] + Using the old style is still allowed, and will become a warning in + a future release. + - [Rustdoc now supports argument files.][82261] + - [Rustdoc now generates smart punctuation for documentation.][79423] + - [You can now use "task lists" in Rustdoc Markdown.][81766] E.g. + ```markdown + - [x] Complete + - [ ] Todo + ``` + + Misc + - [You can now pass multiple filters to tests.][81356] E.g. + `cargo test -- foo bar` will run all tests that match `foo` and `bar`. + - [Rustup now distributes PDB symbols for the `std` library on Windows, + allowing you to see `std` symbols when debugging.][82218] + + 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. + - [Check the result cache before the DepGraph when ensuring queries][81855] + - [Try fast_reject::simplify_type in coherence before doing full check][81744] + - [Only store a LocalDefId in some HIR nodes][81611] + - [Store HIR attributes in a side table][79519] + + Compatibility Notes + ------------------- + - [Cargo build scripts are now forbidden from setting `RUSTC_BOOTSTRAP`.][cargo/9181] + - [Removed support for the `x86_64-rumprun-netbsd` target.][82594] + - [Deprecated the `x86_64-sun-solaris` target in favor of `x86_64-pc-solaris`.][82216] + - [Rustdoc now only accepts `,`, ` `, and `\t` as delimiters for specifying + languages in code blocks.][78429] + - [Rustc now catches more cases of `pub_use_of_private_extern_crate`][80763] + - [Changes in how proc macros handle whitespace may lead to panics when used + with older `proc-macro-hack` versions. A `cargo update` should be sufficient to fix + this in all cases.][84136] +- Remove support-llvm12.patch - feature of 1.52 + +------------------------------------------------------------------- +Sat Apr 17 20:10:00 UTC 2021 - Aaron Puchert + +- Add support-llvm12.patch to support building with LLVM 12. + +------------------------------------------------------------------- +Tue Apr 6 01:52:35 UTC 2021 - William Brown + +- 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`.][80279] + - [`u64` and `u128` now implement `From`.][79502] + - [`Error` is now implemented for `&T` where `T` implements `Error`.][75180] + - [`Poll::{map_ok, map_err}` are now implemented for `Poll>>`.][80968] + - [`unsigned_abs` is now implemented for all signed integer types.][80959] + - [`io::Empty` now implements `io::Seek`.][78044] + - [`rc::Weak` and `sync::Weak`'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`] + - [`Peekable::next_if_eq`] + - [`Peekable::next_if`] + - [`Seek::stream_position`] + - [`array::IntoIter`] + - [`panic::panic_any`] + - [`ptr::addr_of!`] + - [`ptr::addr_of_mut!`] + - [`slice::fill_with`] + - [`slice::split_inclusive_mut`] + - [`slice::split_inclusive`] + - [`slice::strip_prefix`] + - [`slice::strip_suffix`] + - [`str::split_inclusive`] + - [`sync::OnceState`] + - [`task::Wake`] + + Cargo + - [Added the `split-debuginfo` profile option to control the -Csplit-debuginfo + codegen option.][cargo/9112] + - [Added the `resolver` field to `Cargo.toml` to enable the new feature resolver + and CLI option behavior.][cargo/8997] Version 2 of the feature resolver will try + to avoid unifying features of dependencies where that unification could be unwanted. + Such as using the same dependency with a `std` feature in a build scripts and + proc-macros, while using the `no-std` feature in the final binary. See the + [Cargo book documentation][feature-resolver@2.0] for more information on the feature. + + Rustdoc + - [Rustdoc will now include documentation for methods available from _nested_ `Deref` traits.][80653] + - [You can now provide a `--default-theme` flag which sets the default theme to use for + documentation.][79642] + Various improvements to intra-doc links: + - [You can link to non-path primitives such as `slice`.][80181] + - [You can link to associated items.][74489] + - [You can now include generic parameters when linking to items, like `Vec`.][76934] + + Misc + - [You can now pass `--include-ignored` to tests (e.g. with + `cargo test -- --include-ignored`) to include testing tests marked `#[ignore]`.][80053] + + Compatibility Notes + - [WASI platforms no longer use the `wasm-bindgen` ABI, and instead use the wasm32 ABI.][79998] + - [`rustc` no longer promotes division, modulo and indexing operations to `const` that + could fail.][80579] + - [The minimum version of glibc for the following platforms has been bumped to version 2.31 + for the distributed artifacts.][81521] + - `armv5te-unknown-linux-gnueabi` + - `sparc64-unknown-linux-gnu` + - `thumbv7neon-unknown-linux-gnueabihf` + - `armv7-unknown-linux-gnueabi` + - `x86_64-unknown-linux-gnux32` + +------------------------------------------------------------------- +Mon Mar 29 02:35:45 UTC 2021 - opensuse-packaging@opensuse.org + +- Rebased patches: + + ignore-Wstring-conversion.patch (offset / fuzz) + +------------------------------------------------------------------- +Sun Mar 28 07:56:31 UTC 2021 - Manfred Hollstein + +- rust.spec: Fix typo. + Add work-around for cargo not respecting _libexecdir on Leap. + +------------------------------------------------------------------- +Thu Mar 11 16:21:34 UTC 2021 - Guillaume GARDET + +- Add bootstrap for armv6 + +------------------------------------------------------------------- +Wed Feb 24 15:56:33 UTC 2021 - Guillaume GARDET + +- 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 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. + - 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 + 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. + +------------------------------------------------------------------- +Sun Jan 10 13:15:07 UTC 2021 - Neal Gompa + +- Add riscv64 build + +------------------------------------------------------------------- +Sat Jan 9 16:50:11 UTC 2021 - Manfred Hollstein + +- : Add "--stage 1" + to the "./x.py doc" call to ensure the newly built compiler gets + used. + +------------------------------------------------------------------- +Sat Jan 9 09:26:51 UTC 2021 - Manfred Hollstein + +- 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 + + +------------------------------------------------------------------- +Sun Jan 3 11:33:37 UTC 2021 - Manfred Hollstein + +- Update to version 1.49.0 + + Language + - Unions can now implement Drop, and you can now have a field in + a union with ManuallyDrop. + - 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) + +------------------------------------------------------------------- +Sun Jan 3 11:27:23 UTC 2021 - Manfred Hollstein + +- 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 + +- 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=` 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>. + - The matches! macro now supports having a trailing comma. + - Vec now implements PartialEq<[B]> where A: PartialEq. + - 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 = "")] 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) + +------------------------------------------------------------------- +Sat Nov 28 01:25:03 UTC 2020 - Bernhard Wiedemann + +- Check upstream signatures for binaries +- Add rust.keyring + +------------------------------------------------------------------- +Fri Nov 20 13:40:04 UTC 2020 - Manfred Hollstein + +- Make all shared libraries in %{common_libdir} executable; otherwise + fdupes will not find any duplicates in %{rustlibdir}. + +------------------------------------------------------------------- +Thu Nov 5 09:27:56 UTC 2020 - Manfred Hollstein + +- rust-rpmlintrc: Reflect updated LLVM name in the filter. + +------------------------------------------------------------------- +Sun Oct 11 22:43:36 UTC 2020 - William Brown + +- Update to version 1.47.0 + + Language + - [Closures will now warn when not used.][74869] + + Compiler + - [Stabilized the `-C control-flow-guard` codegen option][73893], which enables + [Control Flow Guard][1.47.0-cfg] for Windows platforms, and is ignored on other + platforms. + - [Upgraded to LLVM 11.][73526] + - [Added tier 3\* support for the `thumbv4t-none-eabi` target.][74419] + - [Upgrade the FreeBSD toolchain to version 11.4][75204] + - [`RUST_BACKTRACE`'s output is now more compact.][75048] + \* Refer to Rust's [platform support page][forge-platform-support] for more + information on Rust's tiered platform support. + + Libraries + - [`CStr` now implements `Index>`.][74021] + - [Traits in `std`/`core` are now implemented for arrays of any length, not just + those of length less than 33.][74060] + - [`ops::RangeFull` and `ops::Range` now implement Default.][73197] + - [`panic::Location` now implements `Copy`, `Clone`, `Eq`, `Hash`, `Ord`, + `PartialEq`, and `PartialOrd`.][73583] + + Stabilized APIs + - [`Ident::new_raw`] + - [`Range::is_empty`] + - [`RangeInclusive::is_empty`] + - [`Result::as_deref`] + - [`Result::as_deref_mut`] + - [`Vec::leak`] + - [`pointer::offset_from`] + - [`f32::TAU`] + - [`f64::TAU`] + The following previously stable APIs have now been made const. + - [The `new` method for all `NonZero` integers.][73858] + - [The `checked_add`,`checked_sub`,`checked_mul`,`checked_neg`, `checked_shl`, + `checked_shr`, `saturating_add`, `saturating_sub`, and `saturating_mul` + methods for all integers.][73858] + - [The `checked_abs`, `saturating_abs`, `saturating_neg`, and `signum` for all + signed integers.][73858] + - [The `is_ascii_alphabetic`, `is_ascii_uppercase`, `is_ascii_lowercase`, + `is_ascii_alphanumeric`, `is_ascii_digit`, `is_ascii_hexdigit`, + `is_ascii_punctuation`, `is_ascii_graphic`, `is_ascii_whitespace`, and + `is_ascii_control` methods for `char` and `u8`.][73858] + + Cargo + - [`build-dependencies` are now built with opt-level 0 by default.][cargo/8500] + You can override this by setting the following in your `Cargo.toml`. + ```toml + [profile.release.build-override] + opt-level = 3 + ``` + - [`cargo-help` will now display man pages for commands rather just the + `--help` text.][cargo/8456] + - [`cargo-metadata` now emits a `test` field indicating if a target has + tests enabled.][cargo/8478] + - [`workspace.default-members` now respects `workspace.exclude`.][cargo/8485] + - [`cargo-publish` will now use an alternative registry by default if it's the + only registry specified in `package.publish`.][cargo/8571] + + Misc + - [Added a help button beside Rustdoc's searchbar that explains rustdoc's + type based search.][75366] + - [Added the Ayu theme to rustdoc.][71237] +- Rebased patches: + + ignore-Wstring-conversion.patch (offset / fuzz) + +------------------------------------------------------------------- +Sat Oct 10 00:26:02 UTC 2020 - William Brown + +- Update to version 1.46.0 + + Language + - [`if`, `match`, and `loop` expressions can now be used in const functions.][72437] + - [Additionally you are now also able to coerce and cast to slices (`&[T]`) in + const functions.][73862] + - [The `#[track_caller]` attribute can now be added to functions to use the + function's caller's location information for panic messages.][72445] + - [Recursively indexing into tuples no longer needs parentheses.][71322] E.g. + `x.0.0` over `(x.0).0`. + - [`mem::transmute` can now be used in statics and constants.][72920] **Note** + You currently can't use `mem::transmute` in constant functions. + + Compiler + - [You can now use the `cdylib` target on Apple iOS and tvOS platforms.][73516] + - [Enabled static "Position Independent Executables" by default + for `x86_64-unknown-linux-musl`.][70740] + + Libraries + - [`mem::forget` is now a `const fn`.][73887] + - [`String` now implements `From`.][73466] + - [The `leading_ones`, and `trailing_ones` methods have been stabilised for all + integer types.][73032] + - [`vec::IntoIter` now implements `AsRef<[T]>`.][72583] + - [All non-zero integer types (`NonZeroU8`) now implement `TryFrom` for their + zero-able equivalent (e.g. `TryFrom`).][72717] + - [`&[T]` and `&mut [T]` now implement `PartialEq>`.][71660] + - [`(String, u16)` now implements `ToSocketAddrs`.][73007] + - [`vec::Drain<'_, T>` now implements `AsRef<[T]>`.][72584] + + Stabilized APIs + - [`Option::zip`] + - [`vec::Drain::as_slice`] + + Cargo + Added a number of new environment variables that are now available when + compiling your crate. + - [`CARGO_BIN_NAME` and `CARGO_CRATE_NAME`][cargo/8270] Providing the name of + the specific binary being compiled and the name of the crate. + - [`CARGO_PKG_LICENSE`][cargo/8325] The license from the manifest of the package. + - [`CARGO_PKG_LICENSE_FILE`][cargo/8387] The path to the license file. + +------------------------------------------------------------------- +Thu Oct 08 22:33:12 UTC 2020 - opensuse-packaging@opensuse.org + +- Rebased patches: + + ignore-Wstring-conversion.patch (offset / fuzz) + +------------------------------------------------------------------- +Thu Sep 3 03:09:46 UTC 2020 - William Brown + +- Update to version 1.45.2 + +------------------------------------------------------------------- +Fri Aug 14 12:00:58 UTC 2020 - Martin Sirringhaus + +- Set codeunits=1 for all archs to avoid OOM-kills and produce + the fastest possible compiler-binaries (at the cost of + build-times for this package) + +------------------------------------------------------------------- +Thu Aug 13 13:38:23 UTC 2020 - Andreas Schwab + +- Pacify source validator + +------------------------------------------------------------------- +Thu Aug 13 10:04:38 UTC 2020 - Andreas Schwab + +- Add support for riscv64 + +------------------------------------------------------------------- +Fri Aug 7 05:54:43 UTC 2020 - Manfred Hollstein + +- Minimum version needed for LLVM is >= 8.0 + +------------------------------------------------------------------- +Thu Aug 6 08:26:41 UTC 2020 - Michał Rostecki + +- Update to version 1.44.1 + * rustfmt accepts rustfmt_skip in cfg_attr again. + * Don't hash executable filenames on apple platforms, fixing backtraces. + * Fix crashes when finding backtrace on macOS. + * Clippy applies lint levels into different files. +- Update to version 1.44.0 + + Language + - You can now use `async/.await` with `#[no_std]` enabled. + - Added the `unused_braces` lint. + - Expansion-driven outline module parsing + + Compiler + - Rustc now respects the `-C codegen-units` flag in incremental mode. + Additionally when in incremental mode rustc defaults to 256 codegen units. + - Refactored `catch_unwind` to have zero-cost, unless unwinding is enabled and + a panic is thrown. + - Added tier 3\* support for the `aarch64-unknown-none` and + `aarch64-unknown-none-softfloat` targets. + - Added tier 3 support for `arm64-apple-tvos` and + `x86_64-apple-tvos` targets. + + Libraries + - Special cased `vec![]` to map directly to `Vec::new()`. This allows + `vec![]` to be able to be used in `const` contexts. + - `convert::Infallible` now implements `Hash`. + - `OsString` now implements `DerefMut` and `IndexMut` returning + a `&mut OsStr`. + - Unicode 13 is now supported. + - `String` now implements `From<&mut str>`. + - `IoSlice` now implements `Copy`. + - `Vec` now implements `From<[T; N]>`. Where `N` is at most 32. + - `proc_macro::LexError` now implements `fmt::Display` and `Error`. + - `from_le_bytes`, `to_le_bytes`, `from_be_bytes`, `to_be_bytes`, + `from_ne_bytes`, and `to_ne_bytes` methods are now `const` for all + integer types. + + Stabilizd APIs + - [`PathBuf::with_capacity`] + - [`PathBuf::capacity`] + - [`PathBuf::clear`] + - [`PathBuf::reserve`] + - [`PathBuf::reserve_exact`] + - [`PathBuf::shrink_to_fit`] + - [`f32::to_int_unchecked`] + - [`f64::to_int_unchecked`] + - [`Layout::align_to`] + - [`Layout::pad_to_align`] + - [`Layout::array`] + - [`Layout::extend`] + + Cargo + - Added the `cargo tree` command which will print a tree graph of + your dependencies + + Misc + - Rustdoc now allows you to specify `--crate-version` to have rustdoc include + the version in the sidebar. + + Compatibility Notes + - Rustc now correctly generates static libraries on Windows GNU targets with + the `.a` extension, rather than the previous `.lib`. + - Removed the `-C no_integrated_as` flag from rustc. + - The `file_name` property in JSON output of macro errors now points the actual + source file rather than the previous format of ``. + **Note:** this may not point to a file that actually exists on the user's system. + - The minimum required external LLVM version has been bumped to LLVM 8. + - `mem::{zeroed, uninitialised}` will now panic when used with types that do + not allow zero initialization such as `NonZeroU8`. This was + previously a warning. + - In 1.45.0 (the next release) converting a `f64` to `u32` using the `as` + operator has been defined as a saturating operation. This was previously + undefined behaviour, but you can use the `{f64, f32}::to_int_unchecked` methods to + continue using the current behaviour, which may be desirable in rare performance + sensitive situations. +- Rebased patches: + + ignore-Wstring-conversion.patch (offset / fuzz) + + rust-pr70163-prepare-for-llvm-10-upgrade.patch dropped (merged upstream) + +------------------------------------------------------------------- +Wed May 20 12:23:40 UTC 2020 - Martin Sirringhaus + +- Update to version 1.43.1 + - Updated openssl-src to 1.1.1g for CVE-2020-1967. + - Fixed the stabilization of AVX-512 features. + - Fixed `cargo package --list` not working with unpublished + dependencies. + +------------------------------------------------------------------- +Mon May 4 16:21:54 UTC 2020 - Ismail Dönmez + +- Add rust-pr70163-prepare-for-llvm-10-upgrade.patch to fix compilation + with llvm10 + +------------------------------------------------------------------- +Mon May 4 10:45:18 UTC 2020 - Andreas Schwab + +- Update rustfmt_version + +------------------------------------------------------------------- +Wed Apr 29 11:46:59 UTC 2020 - Martin Sirringhaus + +- Update to version 1.43.0 + + Language + - Fixed using binary operations with `&{number}` (e.g. `&1.0`) + not having the type inferred correctly. + - Attributes such as `#[cfg()]` can now be used on `if` + expressions. + - Syntax only changes: + * Allow `type Foo: Ord` syntactically. + * Fuse associated and extern items up to defaultness. + * Syntactically allow `self` in all `fn` contexts. + * Merge `fn` syntax + cleanup item parsing. + * `item` macro fragments can be interpolated into `trait`s, + `impl`s, and `extern` blocks. + For example, you may now write: + ```rust + macro_rules! mac_trait { + ($i:item) => { + trait T { $i } + } + } + mac_trait! { + fn foo() {} + } + ``` + * These are still rejected *semantically*, so you will likely + receive an error but these changes can be seen and parsed by + macros and conditional compilation. + + Compiler + - You can now pass multiple lint flags to rustc to override the + previous flags. + For example; `rustc -D unused -A unused-variables` denies + everything in the `unused` lint group except `unused-variables` + which is explicitly allowed. However, passing + `rustc -A unused-variables -D unused` denies everything in + the `unused` lint group **including** `unused-variables` since + the allow flag is specified before the deny flag (and therefore + overridden). + - rustc will now prefer your system MinGW libraries over its + bundled libraries if they are available on `windows-gnu`. + - rustc now buffers errors/warnings printed in JSON. + + Libraries + - `Arc<[T; N]>`, `Box<[T; N]>`, and `Rc<[T; N]>`, now implement + `TryFrom>`,`TryFrom>`, and `TryFrom>` + respectively. + **Note** These conversions are only available when `N` is + `0..=32`. + - You can now use associated constants on floats and integers + directly, rather than having to import the module. + e.g. You can now write `u32::MAX` or `f32::NAN` with no imports. + - `u8::is_ascii` is now `const`. + - `String` now implements `AsMut`. + - Added the `primitive` module to `std` and `core`. + This module reexports Rust's primitive types. This is mainly + useful in macros where you want avoid these types being shadowed. + - Relaxed some of the trait bounds on `HashMap` and `HashSet`. + - `string::FromUtf8Error` now implements `Clone + Eq`. + + Stabilized APIs + - `Once::is_completed` + - `f32::LOG10_2` + - `f32::LOG2_10` + - `f64::LOG10_2` + - `f64::LOG2_10` + - `iter::once_with` + + Cargo + - You can now set config `[profile]`s in your `.cargo/config`, + or through your environment. + - Cargo will now set `CARGO_BIN_EXE_` pointing to a + binary's executable path when running integration tests or + benchmarks. + `` is the name of your binary as-is e.g. If you wanted + the executable path for a binary named `my-program`you would + use `env!("CARGO_BIN_EXE_my-program")`. + + Misc + - Certain checks in the `const_err` lint were deemed unrelated + to const evaluation, and have been moved to the + `unconditional_panic` and `arithmetic_overflow` lints. + + Compatibility Notes + - Having trailing syntax in the `assert!` macro is now a hard + error. This has been a warning since 1.36.0. + - Fixed `Self` not having the correctly inferred type. This + incorrectly led to some instances being accepted, and now + correctly emits a hard error. + +------------------------------------------------------------------- +Tue Apr 7 08:54:37 UTC 2020 - Andreas Schwab + +- Avoid duplication of environment settings + +------------------------------------------------------------------- +Tue Mar 31 12:28:18 UTC 2020 - Antonio Larrosa + +- Update to version 1.42.0: + + Language + - You can now use the slice pattern syntax with subslices. + - You can now use #[repr(transparent)] on univariant enums. Meaning + that you can create an enum that has the exact layout and ABI of + the type it contains. + - There are some syntax-only changes: + * default is syntactically allowed before items in trait + definitions. + * Items in impls (i.e. consts, types, and fns) may syntactically + leave out their bodies in favor of ;. + * Bounds on associated types in impls are now syntactically + allowed (e.g. type Foo: Ord;). + * ... (the C-variadic type) may occur syntactically directly + as the type of any function parameter. + These are still rejected semantically, so you will likely receive + an error but these changes can be seen and parsed by procedural + macros and conditional compilation. + + Compiler + - Added tier 2 support for armv7a-none-eabi. + - Added tier 2 support for riscv64gc-unknown-linux-gnu. + - Option::{expect,unwrap} and Result::{expect, expect_err, unwrap, + unwrap_err} now produce panic messages pointing to the location + where they were called, rather than core's internals. + Refer to Rust's platform support page for more information on + Rust's tiered platform support. + + Libraries + - iter::Empty now implements Send and Sync for any T. + - Pin::{map_unchecked, map_unchecked_mut} no longer require the + return type to implement Sized. + - io::Cursor now derives PartialEq and Eq. + - Layout::new is now const. + - Added Standard Library support for riscv64gc-unknown-linux-gnu. + + Stabilized APIs + - CondVar::wait_while + - CondVar::wait_timeout_while + - DebugMap::key + - DebugMap::value + - ManuallyDrop::take + - matches! + - ptr::slice_from_raw_parts_mut + - ptr::slice_from_raw_parts + + Cargo + - You no longer need to include extern crate proc_macro; to be + able to use proc_macro; in the 2018 edition. + + Compatibility Notes + - Error::description has been deprecated, and its use will now + produce a warning. It's recommended to use Display/to_string + instead. + +------------------------------------------------------------------- +Tue Mar 31 11:17:09 UTC 2020 - alarrosa@suse.com + +- Rebased patches: + + ignore-Wstring-conversion.patch (offset / fuzz) + +------------------------------------------------------------------- +Mon Mar 23 19:01:55 UTC 2020 - Federico Mena Quintero + +- Update to version 1.41.1: + + - Always check types of static items + - Always check lifetime bounds of `Copy` impls + - Fix miscompilation in callers of `Layout::repeat` + +- Update to version 1.41.0: + + + Language + - You can now pass type parameters to foreign items when implementing + traits. E.g. You can now write `impl From for Vec {}`. + - You can now arbitrarily nest receiver types in the `self` position. E.g. you can + now write `fn foo(self: Box>) {}`. Previously only `Self`, `&Self`, + `&mut Self`, `Arc`, `Rc`, and `Box` were allowed. + - You can now use any valid identifier in a `format_args` macro. + Previously identifiers starting with an underscore were not allowed. + - Visibility modifiers (e.g. `pub`) are now syntactically allowed on trait items and + enum variants. These are still rejected semantically, but + can be seen and parsed by procedural macros and conditional compilation. + + + Compiler + - Rustc will now warn if you have unused loop `'label`s. + - Removed support for the `i686-unknown-dragonfly` target. + - Added tier 3 support\* for the `riscv64gc-unknown-linux-gnu` target. + - You can now pass an arguments file passing the `@path` syntax + to rustc. Note that the format differs somewhat from what is + found in other tooling; please see the documentation for + more information. + - You can now provide `--extern` flag without a path, indicating that it is + available from the search path or specified with an `-L` flag. + + Refer to Rust's [platform support page][forge-platform-support] for more + information on Rust's tiered platform support. + + + Libraries + - The `core::panic` module is now stable. It was already stable + through `std`. + - `NonZero*` numerics now implement `From` if it's a smaller integer + width. E.g. `NonZeroU16` now implements `From`. + - `MaybeUninit` now implements `fmt::Debug`. + + + Stabilized APIs + - `Result::map_or` + - `Result::map_or_else` + - `std::rc::Weak::weak_count` + - `std::rc::Weak::strong_count` + - `std::sync::Weak::weak_count` + - `std::sync::Weak::strong_count` + + + Cargo + - Cargo will now document all the private items for binary crates + by default. + - `cargo-install` will now reinstall the package if it detects that it is out + of date. + - Cargo.lock now uses a more git friendly format that should help to reduce + merge conflicts. + - You can now override specific dependencies's build settings. E.g. + `[profile.dev.package.image] opt-level = 2` sets the `image` crate's + optimisation level to `2` for debug builds. You can also use + `[profile..build-override]` to override build scripts and + their dependencies. + + + Misc + - You can now specify `edition` in documentation code blocks to compile the block + for that edition. E.g. `edition2018` tells rustdoc that the code sample + should be compiled the 2018 edition of Rust. + - You can now provide custom themes to rustdoc with `--theme`, and check the + current theme with `--check-theme`. + - You can use `#[cfg(doc)]` to compile an item when building documentation. + + + Compatibility Notes + - As previously announced 1.41.0 will be the last tier 1 release for 32-bit + Apple targets. This means that the source code is still + available to build, but the targets are no longer being tested and release + binaries for those platforms will no longer be distributed by the Rust project. + Please refer to the linked blog post for more information. + +------------------------------------------------------------------- +Fri Jan 17 11:04:12 UTC 2020 - Dominique Leuenberger + +- Adjust constraints: Request 20GB HDD for all archs. Simplify the + file by removing the overrides for various disk sizes. All archs + are curretnly at roughly 17GB storage in use. + +------------------------------------------------------------------- +Wed Jan 8 16:44:17 UTC 2020 - Federico Mena Quintero + +- Bump version of libssh2 for SLE15; we now need a version with + libssh2_userauth_publickey_frommemory(), which appeared in libssh2 + 1.6.0. +- Use the bundled libssh2 prior to SLE15. SLE12 has 1.4.3, which is + too old for the ssh crate now. + +------------------------------------------------------------------- +Mon Dec 30 03:48:37 UTC 2019 - Luke Jones + +- Update to version 1.40.0 + + Language + - You can now use tuple `struct`s and tuple `enum` variant's constructors in + `const` contexts. e.g. + pub struct Point(i32, i32); + const ORIGIN: Point = { + let constructor = Point; + constructor(0, 0) + }; + - You can now mark `struct`s, `enum`s, and `enum` variants with the `#[non_exhaustive]` attribute to + indicate that there may be variants or fields added in the future. + For example this requires adding a wild-card branch (`_ => {}`) to any match + statements on a non-exhaustive `enum`. + - You can now use function-like procedural macros in `extern` blocks and in + type positions. e.g. `type Generated = macro!();` + - Function-like and attribute procedural macros can now emit + `macro_rules!` items, so you can now have your macros generate macros. + - The `meta` pattern matcher in `macro_rules!` now correctly matches the modern + attribute syntax. For example `(#[$m:meta])` now matches `#[attr]`, + `#[attr{tokens}]`, `#[attr[tokens]]`, and `#[attr(tokens)]`. + + Compiler + - Added tier 3 support\* for the + `thumbv7neon-unknown-linux-musleabihf` target. + - Added tier 3 support for the + `aarch64-unknown-none-softfloat` target. + - Added tier 3 support for the `mips64-unknown-linux-muslabi64`, and + `mips64el-unknown-linux-muslabi64` targets. + + Libraries + - The `is_power_of_two` method on unsigned numeric types is now a `const` function. + + Stabilized APIs + - BTreeMap::get_key_value + - HashMap::get_key_value + - Option::as_deref_mut + - Option::as_deref + - Option::flatten + - UdpSocket::peer_addr + - f32::to_be_bytes + - f32::to_le_bytes + - f32::to_ne_bytes + - f64::to_be_bytes + - f64::to_le_bytes + - f64::to_ne_bytes + - f32::from_be_bytes + - f32::from_le_bytes + - f32::from_ne_bytes + - f64::from_be_bytes + - f64::from_le_bytes + - f64::from_ne_bytes + - mem::take + - slice::repeat + - todo! + + Cargo + - Cargo will now always display warnings, rather than only on + fresh builds. + - Feature flags (except `--all-features`) passed to a virtual workspace will + now produce an error. Previously these flags were ignored. + - You can now publish `dev-dependencies` without including + a `version`. + + Misc + - You can now specify the `#[cfg(doctest)]` attribute to include an item only + when running documentation tests with `rustdoc`. + + + Compatibility Notes + - As previously announced, any previous NLL warnings in the 2015 edition are + now hard errors. + - The `include!` macro will now warn if it failed to include the + entire file. The `include!` macro unintentionally only includes the + first _expression_ in a file, and this can be unintuitive. This will become + either a hard error in a future release, or the behavior may be fixed to include all expressions as expected. + - Using `#[inline]` on function prototypes and consts now emits a warning under + `unused_attribute` lint. Using `#[inline]` anywhere else inside traits + or `extern` blocks now correctly emits a hard error. + +------------------------------------------------------------------- +Mon Dec 30 03:42:44 UTC 2019 - opensuse-packaging@opensuse.org + +- Rebased patches: + + hopefully-fix-rustdoc-build.patch dropped (merged upstream) + +------------------------------------------------------------------- +Fri Nov 29 14:43:11 UTC 2019 - Neal Gompa + +- Rename README to README.suse-maint and add it as a source + to stop factory-auto from declining submissions automatically + +------------------------------------------------------------------- +Mon Nov 25 13:25:52 UTC 2019 - Alberto Planas Dominguez + +- Re-format the spec file +- Add a README to explain the update process +- Add _service file for download the assets and re-base the patches + +------------------------------------------------------------------- +Fri Nov 8 23:43:13 UTC 2019 - Alberto Planas Dominguez + +- Add hopefully-fix-rustdoc-build.patch to fix rustdoc compilation + +------------------------------------------------------------------- +Thu Nov 7 15:33:25 UTC 2019 - Alberto Planas Dominguez + +- Update to version 1.39.0 + + Language + - You can now create async functions and blocks with async fn, + async move {}, and async {} respectively, and you can now call + .await on async expressions. + - You can now use certain attributes on function, closure, and + function pointer parameters. + - You can now take shared references to bind-by-move patterns in + the if guards of match arms. + + Compiler + - Added tier 3 support for the i686-unknown-uefi target. + - Added tier 3 support for the sparc64-unknown-openbsd target. + - rustc will now trim code snippets in diagnostics to fit in your + terminal. + - You can now pass --show-output argument to test binaries to + print the output of successful tests. + + For more details: + https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1390-2019-11-07 +- Drop patches already merged in upstream: + + rust-61206-assume-tarball-llvm-is-fresh.patch + + add-option-to-allow-warnings.patch + +------------------------------------------------------------------- +Wed Oct 23 09:56:33 UTC 2019 - Ralf Haferkamp + +- Switch to bundled version of libgit2 for now. libgit2-sys seems + to expect using the bundled variant, which just seems to point + to a snapshot of the master branch and doesn't match any released + libgit2 (bsc#1154817). + See: https://github.com/rust-lang/rust/issues/63476 and + https://github.com/rust-lang/git2-rs/issues/458 for details. + +------------------------------------------------------------------- +Mon Sep 30 21:29:54 UTC 2019 - Luke Jones + +- Add patch add-option-to-allow-warnings.patch to add a config option + which allows warnings and so enables v1.38 to bootstrap itself. + +------------------------------------------------------------------- +Mon Sep 30 02:46:51 UTC 2019 - Luke Jones + +- Update to version 1.38.0 + + Language + - The `#[global_allocator]` attribute can now be used in submodules. + - The `#[deprecated]` attribute can now be used on macros. + + Compiler + - Added pipelined compilation support to `rustc`. This will + improve compilation times in some cases. + + Libraries + - `ascii::EscapeDefault` now implements `Clone` and `Display`. + - Derive macros for prelude traits (e.g. `Clone`, `Debug`, `Hash`) are now + available at the same path as the trait. (e.g. The `Clone` derive macro + is available at `std::clone::Clone`). This also makes all built-in macros + available in `std`/`core` root. e.g. `std::include_bytes!`. + - `str::Chars` now implements `Debug`. + - `slice::{concat, connect, join}` now accepts `&[T]` in addition to `&T`. + - `*const T` and `*mut T` now implement `marker::Unpin`. + - `Arc<[T]>` and `Rc<[T]>` now implement `FromIterator`. + - Added euclidean remainder and division operations (`div_euclid`, + `rem_euclid`) to all numeric primitives. Additionally `checked`, + `overflowing`, and `wrapping` versions are available for all + integer primitives. + - `thread::AccessError` now implements `Clone`, `Copy`, `Eq`, `Error`, and + `PartialEq`. + - `iter::{StepBy, Peekable, Take}` now implement `DoubleEndedIterator`. + + Stabilized APIs + - `<*const T>::cast` + - `<*mut T>::cast` + - `Duration::as_secs_f32` + - `Duration::as_secs_f64` + - `Duration::div_f32` + - `Duration::div_f64` + - `Duration::from_secs_f32` + - `Duration::from_secs_f64` + - `Duration::mul_f32` + - `Duration::mul_f64` + - `any::type_name` + + Cargo + - Added pipelined compilation support to `cargo`. + - You can now pass the `--features` option multiple times to enable + multiple features. + + Misc + - `rustc` will now warn about some incorrect uses of + `mem::{uninitialized, zeroed}` that are known to cause undefined behaviour. + +------------------------------------------------------------------- +Tue Sep 10 18:11:30 UTC 2019 - federico@suse.com + +- Use gcc7 on all of SLE12, since the embedded LLVM wants at least gcc 5.1. + +- Add rust-61206-assume-tarball-llvm-is-fresh.patch - Upstream fix to make + LLVM not be rebuilt during the installation phase. + +------------------------------------------------------------------- +Wed Aug 28 01:00:37 UTC 2019 - Luke Jones + +- Update to version 1.37.0 + + Language + - #[must_use] will now warn if the type is contained in a tuple, + Box, or an array and unused. + - You can now use the `cfg` and `cfg_attr` attributes on + generic parameters. + - You can now use enum variants through type alias. e.g. You can + write the following: + ``` + type MyOption = Option; + + fn increment_or_zero(x: MyOption) -> u8 { + match x { + MyOption::Some(y) => y + 1, + MyOption::None => 0, + } + } + ``` + - You can now use `_` as an identifier for consts. e.g. You can write + `const _: u32 = 5;`. + - You can now use `#[repr(align(X)]` on enums. + - The `?` Kleene macro operator is now available in the + 2015 edition. + + Compiler + - You can now enable Profile-Guided Optimization with the `-C profile-generate` + and `-C profile-use` flags. For more information on how to use profile + guided optimization, please refer to the rustc book. + - The `rust-lldb` wrapper script should now work again. + + Libraries + - `mem::MaybeUninit` is now ABI-compatible with `T`. + + Stabilized APIs + - BufReader::buffer + - BufWriter::buffer + - Cell::from_mut + - Cell<[T]>::as_slice_of_cells + - Cell::as_slice_of_cells + - DoubleEndedIterator::nth_back + - Option::xor + - Wrapping::reverse_bits + - i128::reverse_bits + - i16::reverse_bits + - i32::reverse_bits + - i64::reverse_bits + - i8::reverse_bits + - isize::reverse_bits + - slice::copy_within + - u128::reverse_bits + - u16::reverse_bits + - u32::reverse_bits + - u64::reverse_bits + - u8::reverse_bits + - usize::reverse_bits + + Cargo + - Cargo.lock files are now included by default when publishing executable crates + with executables. + - You can now specify `default-run="foo"` in `[package]` to specify the + default executable to use for `cargo run`. + - cargo-vendor is now provided as a sub-command of cargo + + Compatibility Notes + - Using `...` for inclusive range patterns will now warn by default. + Please transition your code to using the `..=` syntax for inclusive + ranges instead. + - Using a trait object without the `dyn` will now warn by default. + Please transition your code to use `dyn Trait` for trait objects instead. + +------------------------------------------------------------------- +Tue Jul 9 09:57:46 UTC 2019 - Luke Jones + +- Remove fix-llvm8-build.patch, fixed upstream + +------------------------------------------------------------------- +Mon Jul 8 20:29:46 UTC 2019 - Luke Jones + +- Update to version 1.36.0 + + Language + - Non-Lexical Lifetimes are now enabled on the 2015 edition + - The order of traits in trait objects no longer affects the semantics of that + object. e.g. `dyn Send + fmt::Debug` is now equivalent to + `dyn fmt::Debug + Send`, where this was previously not the case. + + Libraries + - `HashMap`'s implementation has been replaced with `hashbrown::HashMap` implementation + - `TryFromSliceError` now implements `From` + - `mem::needs_drop` is now available as a const fn + - `alloc::Layout::from_size_align_unchecked` is now available as a const fn + - `String` now implements `BorrowMut` + - `io::Cursor` now implements `Default` + - Both `NonNull::{dangling, cast}` are now const fns + - The `alloc` crate is now stable. `alloc` allows you to use a subset + of `std` (e.g. `Vec`, `Box`, `Arc`) in `#![no_std]` environments if the + environment has access to heap memory allocation. + - String` now implements `From<&String>` + - You can now pass multiple arguments to the `dbg!` macro. `dbg!` will + return a tuple of each argument when there is multiple arguments. + - `Result::{is_err, is_ok}` are now `#[must_use]` and will produce a warning if + not used. + + Stabilized APIs + - VecDeque::rotate_left + - VecDeque::rotate_right + - Iterator::copied + - io::IoSlice + - io::IoSliceMut + - Read::read_vectored + - Write::write_vectored + - str::as_mut_ptr + - mem::MaybeUninit + - pointer::align_offset + - future::Future + - task::Context + - task::RawWaker + - task::RawWakerVTable + - task::Waker + - task::Poll + + Cargo + - Cargo will now produce an error if you attempt to use the name of a required dependency as a feature + - You can now pass the `--offline` flag to run cargo without accessing the network + + Clippy + - New lints: `find_map`, `filter_map_next` + - New lint: `path_buf_push_overwrite` + - Move `path_buf_push_overwrite` to the nursery + - Split `redundant_closure` into `redundant_closure` and `redundant_closure_for_method_calls` + - Allow allowing of `toplevel_ref_arg` lint + - Fix false negative in `or_fun_call` pertaining to nested constructors + - Fixed false positive in `or_fn_call` pertaining to enum variant constructors + - Fix false positive in `useless_let_if_seq` pertaining to interior mutability + - Fix false positive in `redundant_closure` pertaining to non-function types + - Fix false positive in `let_and_return` pertaining to attributes on `let`s + - Fix false positive in `module_name_repetitions` lint pertaining to attributes + - Fix false positive on `assertions_on_constants` pertaining to `debug_assert!` + - Improve suggestion in `map_clone` to suggest `.copied()` where applicable + - Improve suggestion for `search_is_some` + - Improve suggestion applicability for `naive_bytecount` + - Improve suggestion applicability for `while_let_loop` + - Improve diagnostics for `too_many_arguments` + - Improve diagnostics for `cast_lossless` + - Deal with macro checks in desugarings better + - Add macro check for `unnecessary_cast` + - Remove `approx_constant`'s documentation's "Known problems" section + - Fix ICE in `suspicious_else_formatting` + - Fix ICE in `decimal_literal_representation` + + Compatibility Notes + - With the stabilisation of `mem::MaybeUninit`, `mem::uninitialized` use is no + longer recommended, and will be deprecated in 1.38.0. + +------------------------------------------------------------------- +Tue Jul 2 07:21:24 UTC 2019 - Andreas Schwab + +- Add support for ppc + +------------------------------------------------------------------- +Wed May 29 21:38:13 UTC 2019 - Luke Jones + +- Update to version 1.35.0 + + Language + - `FnOnce`, `FnMut`, and the `Fn` traits are now implemented for `Box`, + `Box`, and `Box` respectively. + - You can now coerce closures into unsafe function pointers. e.g. + unsafe fn call_unsafe(func: unsafe fn()) { + func() + } + + pub fn main() { + unsafe { call_unsafe(|| {}); } + } + + Compiler + - Added the `armv6-unknown-freebsd-gnueabihf` and + `armv7-unknown-freebsd-gnueabihf` targets. + - Added the `wasm32-unknown-wasi` target. + + Libraries + - `Thread` will now show its ID in `Debug` output. + - `StdinLock`, `StdoutLock`, and `StderrLock` now implement `AsRawFd`. + - `alloc::System` now implements `Default`. + - Expanded `Debug` output (`{:#?}`) for structs now has a trailing comma on the + last field. + - `char::{ToLowercase, ToUppercase}` now + implement `ExactSizeIterator`. + - All `NonZero` numeric types now implement `FromStr`. + - Removed the `Read` trait bounds + on the `BufReader::{get_ref, get_mut, into_inner}` methods. + - You can now call the `dbg!` macro without any parameters to print the file + and line where it is called. + - In place ASCII case conversions are now up to 4× faster. + e.g. `str::make_ascii_lowercase` + - `hash_map::{OccupiedEntry, VacantEntry}` now implement `Sync` + and `Send`. + + Stabilized APIs + - `f32::copysign` + - `f64::copysign` + - `RefCell::replace_with` + - `RefCell::map_split` + - `ptr::hash` + - `Range::contains` + - `RangeFrom::contains` + - `RangeTo::contains` + - `RangeInclusive::contains` + - `RangeToInclusive::contains` + - `Option::copied` + + Cargo + - You can now set `cargo:rustc-cdylib-link-arg` at build time to pass custom + linker arguments when building a `cdylib`. Its usage is highly + platform specific. + +- version 1.34.2 + + Destabilize the `Error::type_id` function due to a security + vulnerability (CVE-2019-12083) + +- version 1.34.1 + + Fix false positives for the `redundant_closure` Clippy lint + + Fix false positives for the `missing_const_for_fn` Clippy lint + + Fix Clippy panic when checking some macros + +------------------------------------------------------------------- +Sat May 25 12:23:30 UTC 2019 - Aaron Puchert + +- Add fix-llvm8-build.patch: Fix linker errors with llvm8 by + limiting internalization in ThinLTO. + +------------------------------------------------------------------- +Fri May 17 23:06:25 UTC 2019 - federico@suse.com + +- Fix regexp for .rlib files in rust-rpmlintrc. + +------------------------------------------------------------------- +Wed Apr 24 17:39:11 UTC 2019 - Martin Liška + +- Disable LTO (boo#1133283). + +------------------------------------------------------------------- +Thu Apr 11 23:32:24 UTC 2019 - Luke Jones + +- Update to version 1.34.0 + + Language + - You can now use `#[deprecated = "reason"]` as a shorthand for + `#[deprecated(note = "reason")]`. This was previously allowed + by mistake but had no effect. + - You can now accept token streams in `#[attr()]`,`#[attr[]]`, and + `#[attr{}]` procedural macros. + - You can now write `extern crate self as foo;` to import your + crate's root into the extern prelude. + + Compiler + - You can now target `riscv64imac-unknown-none-elf` and + `riscv64gc-unknown-none-elf`. + - You can now enable linker plugin LTO optimisations with + `-C linker-plugin-lto`. This allows rustc to compile your Rust + code into LLVM bitcode allowing LLVM to perform LTO optimisations + across C/C++ FFI boundaries. + - You can now target `powerpc64-unknown-freebsd`. + + Libraries + - The trait bounds have been removed on some of `HashMap`'s + and `HashSet`'s basic methods. Most notably you no longer + require the `Hash` trait to create an iterator. + - The `Ord` trait bounds have been removed on some of + `BinaryHeap`'s basic methods. Most notably you no longer require + the `Ord` trait to create an iterator. + - The methods `overflowing_neg` and `wrapping_neg` are now `const` + functions for all numeric types. + - Indexing a `str` is now generic over all types that + implement `SliceIndex`. + - `str::trim`, `str::trim_matches`, `str::trim_{start, end}`, and + `str::trim_{start, end}_matches` are now `#[must_use]` and will + produce a warning if their returning type is unused. + - The methods `checked_pow`, `saturating_pow`, `wrapping_pow`, and + `overflowing_pow` are now available for all numeric types. These are + equivalvent to methods such as `wrapping_add` for the `pow` operation. + + Stabilized APIs + - std & core + + Any::type_id + + Error::type_id + + atomic::AtomicI16 + + atomic::AtomicI32 + + atomic::AtomicI64 + + atomic::AtomicI8 + + atomic::AtomicU16 + + atomic::AtomicU32 + + atomic::AtomicU64 + + atomic::AtomicU8 + + convert::Infallible + + convert::TryFrom + + convert::TryInto + + iter::from_fn + + iter::successors + + num::NonZeroI128 + + num::NonZeroI16 + + num::NonZeroI32 + + num::NonZeroI64 + + num::NonZeroI8 + + num::NonZeroIsize + + slice::sort_by_cached_key + + str::escape_debug + + str::escape_default + + str::escape_unicode + + str::split_ascii_whitespace + - std + + Instant::checked_add + + Instant::checked_sub + + SystemTime::checked_add + + SystemTime::checked_sub + + Cargo + - You can now use alternative registries to crates.io. + + Misc + - You can now use the `?` operator in your documentation + tests without manually adding `fn main() -> Result<(), _> {}`. + + Compatibility Notes + - `Command::before_exec` is now deprecated in favor of the + unsafe method `Command::pre_exec`. + - Use of `ATOMIC_{BOOL, ISIZE, USIZE}_INIT` is now deprecated. + As you can now use `const` functions in `static` variables. +- Remove depreciated-trim_left_matches.patch. +- Rustfmt version bumped to 1.0.3 + + Change description not provided. +- rls version now in sync with rustc. +- Misc fixes to rust.spec + +------------------------------------------------------------------- +Mon Mar 25 16:09:44 UTC 2019 - Federico Mena Quintero + +- Use the system's LLVM in SLE15-SP1. That distribution has LLVM7, + and we need to use it there, instead of any other version. +- Prevent auto-provides from being created for things under + rustlibdir, so the RPM does not inadvertently have a Provides for a + bundled LLVM and the Rust library files. +- Sync changes files between SLE and openSUSE, for ease of maintenance. + +------------------------------------------------------------------- +Fri Mar 22 00:02:26 UTC 2019 - Luke Jones + +- Explicitly build only a subset of tools + +------------------------------------------------------------------- +Sat Mar 16 01:19:22 UTC 2019 - Luke Jones + +- Remove miri complete instead of excluding. This is experimental + and so should not be included. +- BuildRequires ccache in attempt to reduce compile times. +- Remove more extraneous directories from src that will never be + used. +- Extra patterns in rpmlintrc to catch more false positives: + + Rust has no stable API, ignore SONAME warnings + + Tool versions don't update in step with rust, ignore warnings + +------------------------------------------------------------------- +Wed Mar 6 09:07:43 UTC 2019 - Luke Jones + +- Separate the bootstrap version from the minimum required system + version for package builds. + +------------------------------------------------------------------- +Mon Mar 4 08:17:43 UTC 2019 - Luke Jones + +- add depreciated-trim_left_matches.patch: replaces depreciated + function call in src/tools/tidy with trim_start_matches to fix + error when bootstrapping with system 1.33.0 + +------------------------------------------------------------------- +Sat Mar 2 05:17:36 UTC 2019 - Luke Jones + +- 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 + +- Bump minimum LLVM to 7.0 +- Add conditions to build SLE versions with bundled libgit2 and + libssh2 + +------------------------------------------------------------------- +Thu Feb 28 17:08:08 UTC 2019 - Federico Mena Quintero + +- Use cmake3, not cmake, in SLE-12 SP2 and earlier. The stock cmake + package there was 2.x, and building llvm requires cmake 3.5. + +------------------------------------------------------------------- +Wed Feb 27 21:39:35 UTC 2019 - jones_ld@protonmail.com + +- Use same version bootstrap as package source +- Fixes to build with correct LLVM for SLE and Leap releases + +------------------------------------------------------------------- +Wed Feb 27 02:38:54 UTC 2019 - Luke Jones + +- Move export vars directly to where used. +- Change codegen units to 2 for Arm and x86 builds in attempt to + reduce memory use by LLVM. + +------------------------------------------------------------------- +Wed Feb 27 02:12:17 UTC 2019 - Federico Mena Quintero + +- Put each exported environment variable in a separate line so the + specfile will work on SLE SP0/SP1/SP2. + +------------------------------------------------------------------- +Sun Feb 24 09:40:06 UTC 2019 - Jan Engelhardt + +- Avoid bash-specific syntax in "test" call. + +------------------------------------------------------------------- +Sun Feb 24 01:52:06 UTC 2019 - Luke Jones + +- Fix bootstrap conditionals +- Fix bundled_llvm conditionals +- Don't build stage0 if compiler used to build package is the + same version as package + +------------------------------------------------------------------- +Sat Feb 23 01:58:47 UTC 2019 - Luke Jones + +- Ensure install environment is the same as build environment to + prevent building everything twice (second time without correct + flags). + +------------------------------------------------------------------- +Tue Jan 22 18:19:47 UTC 2019 - federico@suse.com + +- Remove + CVE-2018-1000622-prevent-rustdoc-loads-uncontrolled-plugins-path.patch, + since rustdoc plugins are fixed since version 1.27.1 (bsc#1100691, + CVE-2018-1000622). + +------------------------------------------------------------------- +Thu Jan 17 21:22:11 UTC 2019 - Luke Jones + +- 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` 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 + where + Self: PartialOrd // can write `Self` instead of `List` + { + Nil, + Cons(T, Box) // 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`. + - 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 + +- Update to version 1.31.1 + + Fix Rust failing to build on `powerpc-unknown-netbsd` + + Fix broken go-to-definition in RLS + + Fix infinite loop on hover in RLS + +------------------------------------------------------------------- +Thu Dec 6 22:31:16 UTC 2018 - Luke Jones + +- Update to version 1.31.0 + + Language + - This version marks the release of the 2018 edition of Rust. + - New lifetime elision rules now allow for eliding lifetimes in functions and + impl headers. E.g. `impl<'a> Reader for BufReader<'a> {}` can now be + `impl Reader for BufReader<'_> {}`. Lifetimes are still required to be defined + in structs. + - You can now define and use `const` functions. These are currently + a strict minimal subset of the const fn RFC. Refer to the + [language reference][const-reference] for what exactly is available. + - You can now use tool lints, which allow you to scope lints from external + tools using attributes. E.g. `#[allow(clippy::filter_map)]`. + - `#[no_mangle]` and `#[export_name]` attributes can now be located anywhere in + a crate, not just in exported functions. + - You can now use parentheses in pattern matches. + + Compiler + - Updated musl to 1.1.20 + + Libraries + - You can now convert `num::NonZero*` types to their raw equivalvents using the + `From` trait. E.g. `u8` now implements `From`. + - You can now convert a `&Option` into `Option<&T>` and `&mut Option` + into `Option<&mut T>` using the `From` trait. + - You can now multiply (`*`) a `time::Duration` by a `u32`. + + Stabilized APIs + - `slice::align_to` + - `slice::align_to_mut` + - `slice::chunks_exact` + - `slice::chunks_exact_mut` + - `slice::rchunks` + - `slice::rchunks_mut` + - `slice::rchunks_exact` + - `slice::rchunks_exact_mut` + - `Option::replace` + + Cargo + - Cargo will now download crates in parallel using HTTP/2. + - You can now rename packages in your Cargo.toml We have a guide + on how to use the `package` key in your dependencies. + +------------------------------------------------------------------- +Tue Nov 13 22:56:17 UTC 2018 - Luke Jones + +- Add additional Requires to rls: + + Requires rust-src + + Requires rust-analysis +- Add additional Requires to rustfmt: + + Requires cargo +- Fix rust-src requiring /usr/bin/bash; a script was incorrectly + edited at build time. + +------------------------------------------------------------------- +Sun Nov 11 19:43:09 UTC 2018 - Luke Jones + +- Set the bootstrap flag in the spec file temporarily so that rings + will build rust without intervention. Must be reverted once all + releases are successful. + +------------------------------------------------------------------- +Fri Nov 9 06:42:47 UTC 2018 - Luke Jones + +- Add Provides/Obsoletes/Conflicts to rust-std-static and cargo + +------------------------------------------------------------------- +Thu Nov 8 01:17:22 UTC 2018 - Neal Gompa + +- Strengthen the dependency on rust-std-static to Requires + to fix crate package builds in OBS +- Use standard form rich dependencies for SUSE Linux 15 and newer + +------------------------------------------------------------------- +Tue Nov 6 12:32:37 UTC 2018 - Jan Engelhardt + +- Fix second-person language and spellos. + +------------------------------------------------------------------- +Sun Nov 4 22:12:42 UTC 2018 - Luke Jones + +- Add ignore-Wstring-conversion.patch: we require patching of + src/librustc_llvm/build.rs to ignore a flag that + llvm-config --cxxflags outputs which GCC doesn't recognise. +- Default to building using the distro LLVM where the version is + >= 5.0, instead of the Rust bundled LLVM which requires + compilation. This should decrease build times. SLE LLVM is too old. + +------------------------------------------------------------------- +Sat Nov 3 23:03:53 UTC 2018 - Luke Jones + +- Fixing various rpmlint warnings and errors: + + ExclusiveArch instead of BuildArch for i686 + + Remove conflicts with same package name + + Remove a few hidden files during prep, does not touch '.clang-format' + + Remove old patch macro in comment + + Fix lint warning about bash and zsh completition files + + Fix various script shebang warnings (incorrect or missing) + + Adjust rpmlintrc to mask some 'invalid' warnings +- Move Rust and its tools in to their own category under: + + Development/Languages/Rust + +------------------------------------------------------------------- +Sat Nov 3 07:12:01 UTC 2018 - Luke Jones + +- Jump from version 1.26.2 to 1.30.0 due to a build issue with using 1.26.x to + compile 1.27.x. This package release requires %{rust_bootstrap} to be set. +- Enable extra rust tools to be built (cargo, rls, rustfmt, analysis) + + cargo is now packaged with the same version number as the rust release, this + may break any packages that relied on a cargo version number. +- Remove ccache and ninja from BuildRequires. +- Switch build configuration to use configure script, remove config.toml. +- Include all bootstraps in source rpm to make bootstrapping easier to manage + within OBS. +- Remove unused patch: update-config-guess.patch +Update to version 1.30.0 (2018-10-25) + + Language + - Procedural macros are now available.- These kinds of macros allow for + more powerful code generation. There is a new chapter available + in the Rust Programming Language book that goes further in depth. + - You can now use keywords as identifiers using the raw identifiers + syntax (`r#`),- e.g. `let r#for = true;` + - Using anonymous parameters in traits is now deprecated with a warning and + will be a hard error in the 2018 edition.- + - You can now use `crate` in paths.- This allows you to refer to the + crate root in the path, e.g. `use crate::foo;` refers to `foo` in `src/lib.rs`. + - Using a external crate no longer requires being prefixed with `::`.- + Previously, using a external crate in a module without a use statement + required `let json = ::serde_json::from_str(foo);` but can now be written + as `let json = serde_json::from_str(foo);`. + - You can now apply the `#[used]` attribute to static items to prevent the + compiler from optimising them away, even if they appear to be unused,- + e.g. `#[used] static FOO: u32 = 1;` + - You can now import and reexport macros from other crates with the `use` + syntax.- Macros exported with `#[macro_export]` are now placed into + the root module of the crate. If your macro relies on calling other local + macros, it is recommended to export with the + `#[macro_export(local_inner_macros)]` attribute so users won't have to import + those macros. + - You can now catch visibility keywords (e.g. `pub`, `pub(crate)`) in macros + using the `vis` specifier.- + - Non-macro attributes now allow all forms of literals, not just + strings.- Previously, you would write `#[attr("true")]`, and you can now + write `#[attr(true)]`. + - You can now specify a function to handle a panic in the Rust runtime with the + `#[panic_handler]` attribute.- + + Compiler + - Added the `riscv32imc-unknown-none-elf` target.- + - Added the `aarch64-unknown-netbsd` target- + + Libraries + - `ManuallyDrop` now allows the inner type to be unsized.- + + Stabilized APIs + - `Ipv4Addr::BROADCAST` + - `Ipv4Addr::LOCALHOST` + - `Ipv4Addr::UNSPECIFIED` + - `Ipv6Addr::LOCALHOST` + - `Ipv6Addr::UNSPECIFIED` + - `Iterator::find_map` + - The following methods are replacement methods for `trim_left`, `trim_right`, + `trim_left_matches`, and `trim_right_matches`, which will be deprecated + in 1.33.0: + + `str::trim_end_matches` + + `str::trim_end` + + `str::trim_start_matches` + + `str::trim_start` + + Cargo + - `cargo run` doesn't require specifying a package in workspaces.][cargo/5877] + - `cargo doc` now supports `--message-format=json`.][cargo/5878] This is + equivalent to calling `rustdoc --error-format=json`. + - Cargo will now provide a progress bar for builds.][cargo/5995] + + Misc + - `rustdoc` allows you to specify what edition to treat your code as with the + `--edition` option.- + - `rustdoc` now has the `--color` (specify whether to output color) and + `--error-format` (specify error format, e.g. `json`) options.- + - We now distribute a `rust-gdbgui` script that invokes `gdbgui` with Rust + debug symbols.- + - Attributes from Rust tools such as `rustfmt` or `clippy` are now + available,- e.g. `#[rustfmt::skip]` will skip formatting the next item. +- Update to version 1.29.2 (2018-10-11) + + Workaround for an aliasing-related LLVM bug, which caused miscompilation. + + The `rls-preview` component on the windows-gnu targets has been restored. +- Update to version 1.29.1 (2018-09-25) + + Security Notes + - The standard library's `str::repeat` function contained an out of bounds write + caused by an integer overflow. This has been fixed by deterministically + panicking when an overflow happens. +- Update to version 1.29.0 (2018-09-13) + + Compiler + - Bumped minimum LLVM version to 5.0. + - Added `powerpc64le-unknown-linux-musl` target. + - Added `aarch64-unknown-hermit` and `x86_64-unknown-hermit` targets. + + Libraries + - `Once::call_once` no longer requires `Once` to be `'static`. + - `BuildHasherDefault` now implements `PartialEq` and `Eq`. + - `Box`, `Box`, and `Box` now implement `Clone`. + - Implemented `PartialEq<&str>` for `OsString` and `PartialEq` + for `&str`. + - `Cell` now allows `T` to be unsized. + - `SocketAddr` is now stable on Redox. + + Stabilized APIs + - `Arc::downcast` + - `Iterator::flatten` + - `Rc::downcast` + + Cargo + - Cargo can silently fix some bad lockfiles.][cargo/5831] You can use + `--locked` to disable this behavior. + - `cargo-install` will now allow you to cross compile an install + using `--target`.][cargo/5614] + - Added the `cargo-fix` subcommand to automatically move project code from + 2015 edition to 2018.][cargo/5723] + - `cargo doc` can now optionally document private types using the + `--document-private-items` flag.][cargo/5543] + + Misc + - `rustdoc` now has the `--cap-lints` option which demotes all lints above + the specified level to that level. For example `--cap-lints warn` + will demote `deny` and `forbid` lints to `warn`. + - `rustc` and `rustdoc` will now have the exit code of `1` if compilation + fails and `101` if there is a panic. + - A preview of clippy has been made available through rustup. + You can install the preview with `rustup component add clippy-preview`. + + Compatibility Notes + - `str::{slice_unchecked, slice_unchecked_mut}` are now deprecated. + Use `str::get_unchecked(begin..end)` instead. + - `std::env::home_dir` is now deprecated for its unintuitive behavior. + Consider using the `home_dir` function from + https://crates.io/crates/dirs instead. + - `rustc` will no longer silently ignore invalid data in target spec. + - `cfg` attributes and `--cfg` command line flags are now more + strictly validated. +- Update to version 1.28.0 + + Language + - The `#[repr(transparent)]` attribute is now stable.- This attribute + allows a Rust newtype wrapper (`struct NewType(T);`) to be represented as + the inner type across Foreign Function Interface (FFI) boundaries. + - The keywords `pure`, `sizeof`, `alignof`, and `offsetof` have been unreserved + and can now be used as identifiers.- + - The `GlobalAlloc` trait and `#[global_allocator]` attribute are now + stable.- This will allow users to specify a global allocator for + their program. + - Unit test functions marked with the `#[test]` attribute can now return + `Result<(), E: Debug>` in addition to `()`.- + - The `lifetime` specifier for `macro_rules!` is now stable.- This + allows macros to easily target lifetimes. + + Compiler + - The `s` and `z` optimisation levels are now stable.- These optimisations + prioritise making smaller binary sizes. `z` is the same as `s` with the + exception that it does not vectorise loops, which typically results in an even + smaller binary. + - The short error format is now stable.- Specified with + `--error-format=short` this option will provide a more compressed output of + rust error messages. + - Added a lint warning when you have duplicated `macro_export`s.- + - Reduced the number of allocations in the macro parser.- This can + improve compile times of macro heavy crates on average by 5%. + + Libraries + - Implemented `Default` for `&mut str`.- + - Implemented `From` for all integer and unsigned number types.- + - Implemented `Extend` for `()`.- + - The `Debug` implementation of `time::Duration` should now be more easily + human readable.- Previously a `Duration` of one second would printed as + `Duration { secs: 1, nanos: 0 }` and will now be printed as `1s`. + - Implemented `From<&String>` for `Cow`, `From<&Vec>` for `Cow<[T]>`, + `From>` for `CString`, `From, From, From<&CString>` + for `Cow`, `From, From, From<&OsString>` for + `Cow`, `From<&PathBuf>` for `Cow`, and `From>` + for `PathBuf`.- + - Implemented `Shl` and `Shr` for `Wrapping` + and `Wrapping`.- + - `DirEntry::metadata` now uses `fstatat` instead of `lstat` when + possible.- This can provide up to a 40% speed increase. + - Improved error messages when using `format!`.- + + Stabilized APIs + - `Iterator::step_by` + - `Path::ancestors` + - `SystemTime::UNIX_EPOCH` + - `alloc::GlobalAlloc` + - `alloc::Layout` + - `alloc::LayoutErr` + - `alloc::System` + - `alloc::alloc` + - `alloc::alloc_zeroed` + - `alloc::dealloc` + - `alloc::realloc` + - `alloc::handle_alloc_error` + - `btree_map::Entry::or_default` + - `fmt::Alignment` + - `hash_map::Entry::or_default` + - `iter::repeat_with` + - `num::NonZeroUsize` + - `num::NonZeroU128` + - `num::NonZeroU16` + - `num::NonZeroU32` + - `num::NonZeroU64` + - `num::NonZeroU8` + - `ops::RangeBounds` + - `slice::SliceIndex` + - `slice::from_mut` + - `slice::from_ref` + - `{Any + Send + Sync}::downcast_mut` + - `{Any + Send + Sync}::downcast_ref` + - `{Any + Send + Sync}::is` + + Cargo + - Cargo will now no longer allow you to publish crates with build scripts that + modify the `src` directory.][cargo/5584] The `src` directory in a crate should be + considered to be immutable. + + Misc + - The `suggestion_applicability` field in `rustc`'s json output is now + stable.- This will allow dev tools to check whether a code suggestion + would apply to them. + + Compatibility Notes + - Rust will consider trait objects with duplicated constraints to be the same + type as without the duplicated constraint.- For example the below code will + now fail to compile. + ```rust + trait Trait {} + + impl Trait + Send { + fn test(&self) { println!("one"); } //~ ERROR duplicate definitions with name `test` + } + + impl Trait + Send + Send { + fn test(&self) { println!("two"); } + } +- Update to version 1.27.2: + + Compatibility Notes + - The borrow checker was fixed to avoid an additional potential unsoundness when using + match ergonomics +- Update to version 1.27.1: + + Security Notes + - rustdoc would execute plugins in the /tmp/rustdoc/plugins directory + when running, which enabled executing code as some other user on a + given machine. This release fixes that vulnerability; you can read + more about this on the blog. The associated CVE is [CVE-2018-1000622]. + Thank you to Red Hat for responsibily disclosing this vulnerability to us. + + Compatibility Notes + - The borrow checker was fixed to avoid an additional potential unsoundness when using + match ergonomics +- Update to version 1.27.0: + + Language + - Removed 'proc' from the reserved keywords list. This allows `proc` to + be used as an identifier. + - The dyn syntax is now available. This syntax is equivalent to the + bare `Trait` syntax, and should make it clearer when being used in tandem with + `impl Trait` because it is equivalent to the following syntax: + `&Trait == &dyn Trait`, `&mut Trait == &mut dyn Trait`, and + `Box == Box`. + - Attributes on generic parameters such as types and lifetimes are + now stable. e.g. + `fn foo<#[lifetime_attr] 'a, #[type_attr] T: 'a>() {}` + - The `#[must_use]` attribute can now also be used on functions as well as + types. It provides a lint that by default warns users when the + value returned by a function has not been used. + + Compiler + - Added the `armvte-unknown-linux-musleabi` target. + + Libraries + - SIMD (Single Instruction Multiple Data) on x/x_ is now stable. + This includes arch::x & arch::x_ modules which contain + SIMD intrinsics, a new macro called `is_x_feature_detected!`, the + `#[target_feature(enable="")]` attribute, and adding `target_feature = ""` to + the `cfg` attribute. + - A lot of methods for `[u]`, `f`, and `f` previously only available in + std are now available in core. + - The generic `Rhs` type parameter on `ops::{Shl, ShlAssign, Shr}` now defaults + to `Self`. + - std::str::replace` now has the `#[must_use]` attribute to clarify + that the operation isn't done in place. + - Clone::clone`, `Iterator::collect`, and `ToOwned::to_owned` now have + the `#[must_use]` attribute] to warn about unused potentially + expensive allocations. + + Stabilized APIs + - DoubleEndedIterator::rfind + - DoubleEndedIterator::rfold + - DoubleEndedIterator::try_rfold + - Duration::from_micros + - Duration::from_nanos + - Duration::subsec_micros + - Duration::subsec_millis + - HashMap::remove_entry + - Iterator::try_fold + - Iterator::try_for_each + - NonNull::cast + - Option::filter + - String::replace_range + - Take::set_limit + - hint::unreachable_unchecked + - os::unix::process::parent_id + - ptr::swap_nonoverlapping + - slice::rsplit_mut + - slice::rsplit + - slice::swap_with_slice + + Cargo + - `cargo-metadata` now includes `authors`, `categories`, `keywords`, + `readme`, and `repository` fields. + - `cargo-metadata` now includes a package's `metadata` table. + - Added the `--target-dir` optional argument. This allows you to specify + a different directory than `target` for placing compilation artifacts. + - Cargo will be adding automatic target inference for binaries, benchmarks, + examples, and tests in the Rust 2018 edition. If your project specifies + specific targets, e.g. using `[[bin]]`, and have other binaries in locations + where cargo would infer a binary, Cargo will produce a warning. You can + disable this feature ahead of time by setting any of the following to false: + `autobins`, `autobenches`, `autoexamples`, `autotests`. + - Cargo will now cache compiler information. This can be disabled by + setting `CARGO_CACHE_RUSTC_INFO=0` in your environment. + + Compatibility Notes + - Calling a `CharExt` or `StrExt` method directly on core will no longer + work. e.g. `::core::prelude::v1::StrExt::is_empty("")` will not + compile, `"".is_empty()` will still compile. + - `Debug` output on `atomic::{AtomicBool, AtomicIsize, AtomicPtr, AtomicUsize}` + will only print the inner type. E.g. + `print!("{:?}", AtomicBool::new(true))` will print `true`, + not `AtomicBool(true)`. + - The maximum number for `repr(align(N))` is now 2²⁹. Previously you + could enter higher numbers but they were not supported by LLVM. Up to 512MB + alignment should cover all use cases. + - The `.description()` method on the `std::error::Error` trait + has been soft-deprecated. It is no longer required to implement it. + + Misc + - Added “The Rustc book” into the official documentation. + +------------------------------------------------------------------- +Thu Oct 11 10:00:22 UTC 2018 - qkzhu@suse.com + +- Add CVE-2018-1000622-prevent-rustdoc-loads-uncontrolled-plugins-path.patch: + + This patch consists of requiring `--plugin-path` to be passed + whenever `--plugin` is passed + + rustdoc plugins will be removed entirely on 1.28.0, we should + drop this patch after 1.28.0(bsc#1100691, CVE-2018-1000622). + +------------------------------------------------------------------- +Thu Aug 9 10:18:06 UTC 2018 - mschnitzer@suse.com + +- Ship rust-std on SLE-15 (bsc#1096945) + + No new changes came with this update of rust. + +------------------------------------------------------------------- +Wed Jun 6 10:37:27 UTC 2018 - mmanu84@outlook.de + +- Update to version 1.26.2: + + Compatibility Notes + - The borrow checker was fixed to avoid unsoundness when using match ergonomics +- Update to version 1.26.1: + + Tools + - RLS now works on Windows + - Rustfmt stopped badly formatting text in some cases + + Compatibility Notes + - `fn main() -> impl Trait` no longer works for non-Termination trait + This reverts an accidental stabilization + - `NaN > NaN` no longer returns true in const-fn contexts + - Prohibit using turbofish for `impl Trait` in method arguments + +------------------------------------------------------------------- +Sat May 12 00:31:05 UTC 2018 - luc14n0@linuxmail.org + +- Update to version 1.26.0: + + Language: + - Closures now implement `Copy` and/or `Clone` if all captured + variables implement either or both traits. + - The inclusive range syntax is now stable. + - Stablise `'_`. The underscore lifetime can be used anywhere + where a lifetime can be elided. + - `impl Trait` is now stable allowing you to have abstract + types in returns or in function parameters. + - Pattern matching will now automatically apply dereferences. + - 128-bit integers in the form of `u128` and `i128` are now + stable. + - `main` can now return `Result<(), E: Debug>` in addition to + `()`. + - A lot of operations are now available in a const context. + - Fixed entry slice patterns are now stable. e.g. + + Compiler: + - LLD is now used as the default linker for `wasm32-unknown-\ + unknown`. + - Fixed exponential projection complexity on nested types. + This can provide up to a ~12% reduction in compile times for + certain crates. + - Added the `--remap-path-prefix` option to rustc. Allowing you + to remap path prefixes outputted by the compiler. + + Libraries: + - Implemented `From for usize & From<{u8, i16}> for + isize`. + - Added hexadecimal formatting for integers with fmt::Debug. + - Implemented `Default, Hash` for `cmp::Reverse`. + - Optimized `str::repeat` being 8x faster in large cases. + - `ascii::escape_default` is now available in libcore. + - Trailing commas are now supported in std and core macros. + - Implemented `Copy, Clone` for `cmp::Reverse`. + - Implemented `Clone` for `char::{ToLowercase, ToUppercase}`. + + Stabilized APIs: *const T::add, + *const T::copy_to_nonoverlapping, *const T::copy_to, + *const T::read_unaligned, *const T::read_volatile, + *const T::read, *const T::sub, *const T::wrapping_add, + *const T::wrapping_sub, *mut T::add, *mut T::copy_to, + *mut T::copy_to_nonoverlapping, *mut T::read_unaligned, + *mut T::read_volatile, *mut T::read, mut T::replace, + *mut T::sub, *mut T::swap, *mut T::wrapping_add, + *mut T::wrapping_sub, *mut T::write_bytes, + *mut T::write_unaligned, *mut T::write_volatile, + *mut T::write, Box::leak, FromUtf8Error::as_bytes, + LocalKey::try_with, Option::cloned, iter::FusedIterator, + btree_map::Entry::and_modify, s::read_to_string, fs::read, + fs::write, hash_map::Entry::and_modify, String::retain, + ops::RangeInclusive, ops::RangeToInclusive, process::id, + slice::rotate_left, slice::rotate_right. + + Compatibility Notes: + - Aliasing a `Fn` trait as `dyn` no longer works. + - The result of dereferences are no longer promoted to + `'static`. + - Deprecate `AsciiExt` trait in favor of inherent methods. + - `".e0"` will now no longer parse as `0.0` and will instead + cause an error. + - Removed hoedown from rustdoc. + - Bounds on higher-kinded lifetimes a hard error. +- Update cargo_version to 0.26.0. + +------------------------------------------------------------------- +Thu May 3 08:05:33 UTC 2018 - mmanu84@outlook.de + +- Patch disabled + * update-config-guess.patch +- Update to 1.25.0 +- Language changes: + + Stabilised `#[repr(align(x))]`.[47006] [RFC 1358] + + You can now use nested groups of imports.[47948] + e.g. `use std::{fs::File, io::Read, path::{Path, PathBuf}};` + + You can now have `|` at the start of a match arm.[47947] e.g. +- Compiler changes: + + Upgraded to LLVM 6.[47828] + + Added `-C lto=val` option.[47521] + + Added `i586-unknown-linux-musl` target[47282] +- Library changes: + + Impl Send for `process::Command` on Unix.[47760] + + Impl PartialEq and Eq for `ParseCharError`.[47790] + + `UnsafeCell::into_inner` is now safe.[47204] + + Implement libstd for CloudABI.[47268] + + `Float::{from_bits, to_bits}` is now available in libcore.[46931] + + Implement `AsRef` for Component[46985] + + Implemented `Write` for `Cursor<&mut Vec>`[46830] + + Moved `Duration` to libcore.[46666] +- Stabilized APIs + + `Location::column` + + `ptr::NonNull` +- Misc + + Rust by example is now shipped with new releases[46196] +- Compatibility Notes: + + Deprecated `net::lookup_host`.[47510] + + `rustdoc` has switched to pulldown as the default markdown renderer.[47398] + + The borrow checker was sometimes incorrectly permitting overlapping borrows + around indexing operations (see [#47349][47349]). This has been fixed (which also + enabled some correct code that used to cause errors (e.g. [#33903][33903] and [#46095][46095]). + + Removed deprecated unstable attribute `#[simd]`.[47251] + +------------------------------------------------------------------- +Thu Mar 22 13:54:53 UTC 2018 - mmanu84@outlook.de + +- Update to 1.24.1 + + Do not abort when unwinding through FFI + + Make the error index generator work again +- Update Cargo to v0.25.0 + +------------------------------------------------------------------- +Sat Feb 24 19:26:15 UTC 2018 - mmanu84@outlook.de + +- Update to 1.24.0 +- Language changes: + + External `sysv64` ffi is now available. + eg. `extern "sysv64" fn foo () {}` +- Compiler changes: + + rustc now uses 16 codegen units by default for release builds. + For the fastest builds, utilize `codegen-units=1`. +- Libraries: + + `str::find::` now uses memchr. This should lead to a 10x + improvement in performance in the majority of cases. + + `time::{SystemTime, Instant}` now implement `Hash`. + + impl `From` for `AtomicBool` + + impl `From<{CString, &CStr}>` for `{Arc, Rc}` + + impl `From<{OsString, &OsStr}>` for `{Arc, Rc}` + + impl `From<{PathBuf, &Path}>` for `{Arc, Rc}` + + float::from_bits now just uses transmute. This provides some + optimisations from LLVM. + + Copied `AsciiExt` methods onto `char` + + Remove `T: Sized` requirement on `ptr::is_null()` + + impl `From` for `{TryRecvError, RecvTimeoutError}` + + Optimised `f32::{min, max}` to generate more efficient x86 + assembly + + `[u8]::contains` now uses memchr which provides a 3x speed + improvement +- Compatibility Notes: + + Floating point types `Debug` impl now always prints a decimal + point. + + `Ipv6Addr` now rejects superfluous `::`'s in IPv6 addresses + This is in accordance with IETF RFC 4291 §2.2. + + Unwinding will no longer go past FFI boundaries, and will + instead abort. + + `Formatter::flags` method is now deprecated. The `sign_plus`, + `sign_minus`, `alternate`, and `sign_aware_zero_pad` should be + used instead. + + Leading zeros in tuple struct members is now an error + + `column!()` macro is one-based instead of zero-based + + `fmt::Arguments` can no longer be shared across threads + + Access to `#[repr(packed)]` struct fields is now unsafe + + Cargo sets a different working directory for the compiler + +------------------------------------------------------------------- +Mon Feb 19 06:26:41 UTC 2018 - coolo@suse.com + +- add update-config-guess.patch to update config.* from GNU to + support riscv64 without rpm patching it - as the patch also + updates the checksums while rpm does not + +------------------------------------------------------------------- +Tue Jan 23 09:18:27 UTC 2018 - tchvatal@suse.com + +- Format with spec-cleaner +- Use python3 to run the install/build script as python2 is being + phased out +- State exclusivearch for all of ix86 and then specify we build as + i686 which is bit more obvious + +------------------------------------------------------------------- +Mon Jan 22 11:21:42 UTC 2018 - mmanu84@outlook.de + +- Update Cargo to v0.24.0 + +------------------------------------------------------------------- +Mon Jan 22 07:01:51 UTC 2018 - jones_ld@protonmail.com + +- Add "Requires: %{name} to derived packages to fix derived + packages not being updated with rust (boo#1075883) + +------------------------------------------------------------------- +Thu Jan 4 21:20:36 UTC 2018 - jones_ld@protonmail.com + +- Update to 1.23.0 +- Language changes: + + Arbitrary `auto` traits are now permitted in trait objects.[45772] + + rustc now uses subtyping on the left hand side of binary operations.[45435] + Which should fix some confusing errors in some operations. +- Compiler changes: + + Enabled `TrapUnreachable` in LLVM which should mitigate the impact of + undefined behaviour.[45920] + + rustc now suggests renaming import if names clash.[45660] + + Display errors/warnings correctly when there are zero-width or + wide characters.[45711] + + rustc now avoids unnecessary copies of arguments that are + simple bindings[45380] This should improve memory usage on average by 5-10%. + + Updated musl used to build musl rustc to 1.1.17[45393] +- Library changes: + + Allow a trailing comma in `assert_eq/ne` macro[45887] + + Implement Hash for raw pointers to unsized types[45483] + + impl `From<*mut T>` for `AtomicPtr`[45610] + + impl `From` for `AtomicUsize/AtomicIsize`.[45610] + + Removed the `T: Sync` requirement for `RwLock: Send`[45267] + + Removed `T: Sized` requirement for `{<*const T>, <*mut T>}::as_ref` + an `<*mut T>::as_mut`[44932] + + Optimized `Thread::{park, unpark}` implementation[45524] + + Improved `SliceExt::binary_search` performance.[45333] + + impl `FromIterator<()>` for `()`[45379] + + Copied `AsciiExt` trait methods to primitive types.[44042] Use of `AsciiExt` + is now deprecated. +- Misc changes: + + Releases now ship with the Cargo book documentation.[45692] + + rustdoc now prints rendering warnings on every run.[45324] + + Release tarballs now come with rustfmt[45903] +- Compatibility Notes: + + Changes have been made to type equality to make it more correct, + in rare cases this could break some code.[45853] [Tracking issue for + further information[45852] + + `char::escape_debug` now uses Unicode 10 over 9.[45571] + + Upgraded Android SDK to 27, and NDK to r15c.[45580] This drops support for + Android 9, the minimum supported version is Android 14. + + Bumped the minimum LLVM to 3.9[45326] + +------------------------------------------------------------------- +Sat Nov 25 09:54:46 UTC 2017 - mmanu84@outlook.de + +- Update to v1.22.1 +- Update Cargo to fix an issue with macOS 10.13 "High Sierra" + +------------------------------------------------------------------- +Thu Nov 23 00:27:24 UTC 2017 - jones_ld@protonmail.com + +- Update to v1.22.0 +- Language changes: + + `non_snake_case` lint now allows extern no-mangle functions + + Now accepts underscores in unicode escapes + + `T op= &T` now works for numeric types. eg. `let mut x = 2; x += &8;` + + types that impl `Drop` are now allowed in `const` and `static` types +- Compiler changes: + + rustc now defaults to having 16 codegen units at debug on supported platforms + + rustc will no longer inline in codegen units when compiling for debug + This should decrease compile times for debug builds. + + strict memory alignment now enabled on ARMv6 + + Remove support for the PNaCl target `le32-unknown-nacl` +- Librarie changes + + Allow atomic operations up to 32 bits + on `armv5te_unknown_linux_gnueabi` + + `Box` now impls `From>` + + `std::mem::Discriminant` is now guaranteed to be `Send + Sync` + + `fs::copy` now returns the length of the main stream on NTFS. + + Properly detect overflow in `Instant += Duration`. + + impl `Hasher` for `{&mut Hasher, Box}` + + impl `fmt::Debug` for `SplitWhitespace`.][44303] + + `Option` now impls `Try`. This allows for using `?` with `Option` types. +- Misc + + `libbacktrace` is now available on Apple platforms. + + Stabilised the `compile_fail` attribute for code fences in doc-comments. + This now lets you specify that a given code example will fail to compile. +- Compatibility Notes + + The minimum Android version that rustc can build for has been bumped + to `4.0` from `2.3` + + Allowing `T op= &T` for numeric types has broken some type inference cases + +- Remove rust-1.21.0-44203-exclude-compiler-rt-test.patch +- Remove rust-1.21.0-44066-ppc64-struct-abi.patch +- Remove rust-1.21.0-44440-s390x-global-align.patch + +------------------------------------------------------------------- +Thu Oct 19 05:46:50 UTC 2017 - luke.nukem.jones@gmail.com + +- Large cleanup of both the spec and config.toml to correct many + build issues for the new version + +------------------------------------------------------------------- +Wed Oct 18 03:43:11 UTC 2017 - luke.nukem.jones@gmail.com + +- Add rust-1.21.0-44203-exclude-compiler-rt-test.patch +- Add rust-1.21.0-44066-ppc64-struct-abi.patch +- Add rust-1.21.0-44440-s390x-global-align.patch +- Remove add-soname.patch + +------------------------------------------------------------------- +Tue Oct 17 22:53:28 UTC 2017 - luke.nukem.jones@gmail.com + +- Update to 1.21.0 +- Language changes: + + You can now use static references for literals. + + Relaxed path syntax. Optional `::` before `<` is now allowed in all contexts. +- Compiler changes: + + Upgraded jemalloc to 4.5.0[43911] + + Enabled unwinding panics on Redox[43917] + + Now runs LLVM in parallel during translation phase.[43506] +- Librarie changes: + + Generate builtin impls for `Clone` for all arrays and tuples that + are `T: Clone`[43690] + +`Stdin`, `Stdout`, and `Stderr` now implement `AsRawFd`.[43459] + + `Rc` and `Arc` now implement `From<&[T]> where T: Clone`, `From`, + `From`, `From> where T: ?Sized`, and `From>`.[42565] +- Stabilized APIs + +`std::mem::discriminant` +- Update add-soname.patch to apply cleanly + +------------------------------------------------------------------- +Sat Sep 23 00:29:39 UTC 2017 - luke.nukem.jones@gmail.com + +- Force enable rust bootstrap so that missing architectures build + +------------------------------------------------------------------- +Wed Sep 20 08:06:35 UTC 2017 - opensuse@dstoecker.de + +- set minimum cmake version + +------------------------------------------------------------------- +Mon Sep 4 22:44:20 UTC 2017 - luke.nukem.jones@gmail.com + +- Update to version 1.20.0 +- Remove x86 from build targets +- Language + + [Associated constants are now stabilised.][42809] + + [A lot of macro bugs are now fixed.][42913] +- Compiler + + [Struct fields are now properly coerced to the expected field type.][42807] + + [Enabled wasm LLVM backend][42571] WASM can now be built with the + `wasm32-experimental-emscripten` target. + + [Changed some of the error messages to be more helpful.][42033] + + [Add support for RELRO(RELocation Read-Only) for platforms that support + it.][43170] + + [rustc now reports the total number of errors on compilation failure][43015] + previously this was only the number of errors in the pass that failed. + + [Expansion in rustc has been sped up 29x.][42533] + + [added `msp430-none-elf` target.][43099] + + [rustc will now suggest one-argument enum variant to fix type mismatch when + applicable][43178] + + [Fixes backtraces on Redox][43228] + + [rustc now identifies different versions of same crate when absolute paths of + different types match in an error message.][42826] +- Libraries + + [Relaxed Debug constraints on `{HashMap,BTreeMap}::{Keys,Values}`.][42854] + + [Impl `PartialEq`, `Eq`, `PartialOrd`, `Ord`, `Debug`, `Hash` for unsized + tuples.][43011] + + [Impl `fmt::{Display, Debug}` for `Ref`, `RefMut`, `MutexGuard`, + `RwLockReadGuard`, `RwLockWriteGuard`][42822] + + [Impl `Clone` for `DefaultHasher`.][42799] + + [Impl `Sync` for `SyncSender`.][42397] + + [Impl `FromStr` for `char`][42271] + + [Fixed how `{f32, f64}::{is_sign_negative, is_sign_positive}` handles + NaN.][42431] + + [allow messages in the `unimplemented!()` macro.][42155] + ie. `unimplemented!("Waiting for 1.21 to be stable")` + + [`pub(restricted)` is now supported in the `thread_local!` macro.][43185] + + [Upgrade to Unicode 10.0.0][42999] + + [Reimplemented `{f32, f64}::{min, max}` in Rust instead of using CMath.][42430] + + [Skip the main thread's manual stack guard on Linux][43072] + + [Iterator::nth for `ops::{Range, RangeFrom}` is now done in O(1) time][43077] + + [`#[repr(align(N))]` attribute max number is now 2^31 + 1.][43097] This was + previously 2^15. + + [`{OsStr, Path}::Display` now avoids allocations where possible][42613] +- Compatibility Notes + + [Functions with `'static` in their return types will now not be as usable as + if they were using lifetime parameters instead.][42417] + + [The reimplementation of `{f32, f64}::is_sign_{negative, positive}` now + takes the sign of NaN into account where previously didn't.][42430] + +------------------------------------------------------------------- +Fri Sep 1 10:14:10 UTC 2017 - luke.nukem.jones@gmail.com + +- adjust build process and add package for Rust source +- clean-up of useless provides +- add rpmlintrc + +------------------------------------------------------------------- +Tue Aug 8 23:06:44 UTC 2017 - luke.nukem.jones@gmail.com + +- Update to version 1.19 + +- Language updates: + + [Numeric fields can now be used for creating tuple structs.][41145] [RFC 1506] + For example `struct Point(u32, u32); let x = Point { 0: 7, 1: 0 };`. + + [Macro recursion limit increased to 1024 from 64.][41676] + + [Added lint for detecting unused macros.][41907] + + [`loop` can now return a value with `break`.][42016] [RFC 1624] + For example: `let x = loop { break 7; };` + + [C compatible `union`s are now available.][42068] [RFC 1444] They can only + contain `Copy` types and cannot have a `Drop` implementation. + Example: `union Foo { bar: u8, baz: usize }` + + [Non capturing closures can now be coerced into `fn`s,][42162] [RFC 1558] + Example: `let foo: fn(u8) -> u8 = |v: u8| { v };` + +- Compiler updates: + + [Add support for bootstrapping the Rust compiler toolchain on Android.][41370] + + [Change `arm-linux-androideabi` to correspond to the `armeabi` + official ABI.][41656] If you wish to continue targeting the `armeabi-v7a` ABI + you should use `--target armv7-linux-androideabi`. + + [Fixed ICE when removing a source file between compilation sessions.][41873] + + [Minor optimisation of string operations.][42037] + + [Compiler error message is now `aborting due to previous error(s)` instead of + `aborting due to N previous errors`][42150] This was previously inaccurate and + would only count certain kinds of errors. + + [The compiler now supports Visual Studio 2017][42225] + + [The compiler is now built against LLVM 4.0.1 by default][42948] + + [Added a lot][42264] of [new error codes][42302] + + [Added `target-feature=+crt-static` option][37406] [RFC 1721] Which allows + libraries with C Run-time Libraries(CRT) to be statically linked. + + [Fixed various ARM codegen bugs][42740] + +- Librarie updates: + + [`String` now implements `FromIterator>` and + `Extend>`][41449] + + [`Vec` now implements `From<&mut [T]>`][41530] + + [`Box<[u8]>` now implements `From>`][41258] + + [`SplitWhitespace` now implements `Clone`][41659] + + [`[u8]::reverse` is now 5x faster and `[u16]::reverse` is now + 1.5x faster][41764] + + [`eprint!` and `eprintln!` macros added to prelude.][41192] Same as the `print!` + macros, but for printing to stderr. + +- Stabilized APIs + + [`OsString::shrink_to_fit`] + + [`cmp::Reverse`] + + [`Command::envs`] + + [`thread::ThreadId`] + +- Misc + + [Added `rust-windbg.cmd`][39983] for loading rust `.natvis` files in the + Windows Debugger. + + [Rust will now release XZ compressed packages][rust-installer/57] + + [rustup will now prefer to download rust packages with + XZ compression][rustup/1100] over GZip packages. + + [Added the ability to escape `#` in rust documentation][41785] By adding + additional `#`'s ie. `##` is now `#` + +- Temporarily disable generation of compiler docs due to build issue + +------------------------------------------------------------------- +Wed Jun 14 06:23:20 UTC 2017 - luke.nukem.jones@gmail.com + +- Change i586 build to produce i686 target instead of i586 so that + x86 Firefox can be built with Rust. + +------------------------------------------------------------------- +Thu Jun 8 21:48:54 UTC 2017 - luke.nukem.jones@gmail.com + +- Update to 1.18.0 +-Language updates: + + [Stabilize pub(restricted)][40556] `pub` can now accept amodule path to + make the item visible to just that module tree. Also accepts the keyword + `crate` to make something public to the whole crate but not users of the + library. Example: `pub(crate) mod utils;`. [RFC 1422]. + + [Stabilize `#![windows_subsystem]` attribute][40870] conservative exposure of the + `/SUBSYSTEM` linker flag on Windows platforms. [RFC 1665]. + + [Refactor of trait object type parsing][40043] Now `ty` in macros can accept + types like `Write + Send`, trailing `+` are now supported in trait objects, + and better error reporting for trait objects starting with `?Sized`. + + [0e+10 is now a valid floating point literal][40589] + + [Now warns if you bind a lifetime parameter to 'static][40734] + + [Tuples, Enum variant fields, and structs with no `repr` attribute or with + `#[repr(Rust)]` are reordered to minimize padding and produce a smaller + representation in some cases.][40377] +-Compiler updates + + [rustc can now emit mir with `--emit mir`][39891] + + [Improved LLVM IR for trivial functions][40367] + + [Added explanation for E0090(Wrong number of lifetimes are supplied)][40723] + + [rustc compilation is now 15%-20% faster][41469] Thanks to optimisation + opportunities found through profiling + + [Improved backtrace formatting when panicking][38165] +- Library updates: + + [Specialized `Vec::from_iter` being passed `vec::IntoIter`][40731] if the + iterator hasn't been advanced the original `Vec` is reassembled with no actual + iteration or reallocation. + + [Simplified HashMap Bucket interface][40561] provides performance + improvements for iterating and cloning. + + [Specialize Vec::from_elem to use calloc][40409] + + [Fixed Race condition in fs::create_dir_all][39799] + + [No longer caching stdio on Windows][40516] + + [Optimized insertion sort in slice][40807] insertion sort in some cases + 2.50%~ faster and in one case now 12.50% faster. + + [Optimized `AtomicBool::fetch_nand`][41143] +- Stabilized APIs: + + [`Child::try_wait`] + + [`HashMap::retain`] + + [`HashSet::retain`] + + [`PeekMut::pop`] + + [`TcpStream::peek`] + + [`UdpSocket::peek`] +- Misc: + + [rustdoc can now use pulldown-cmark with the `--enable-commonmark` flag][40338] + + [Added rust-winbg script for better debugging on Windows][39983] + + [Rust now uses the official cross compiler for NetBSD][40612] + + [rustdoc now accepts `#` at the start of files][40828] + + [Fixed jemalloc support for musl][41168] +- Compatibility Notes: + + [Changes to how the `0` flag works in format!][40241] Padding zeroes are now + always placed after the sign if it exists and before the digits. With the `#` + flag the zeroes are placed after the prefix and before the digits. + + [Due to the struct field optimisation][40377], using `transmute` on structs + that have no `repr` attribute or `#[repr(Rust)]` will no longer work. This has + always been undefined behavior, but is now more likely to break in practice. + + [The refactor of trait object type parsing][40043] fixed a bug where `+` was + receiving the wrong priority parsing things like `&for<'a> Tr<'a> + Send` as + `&(for<'a> Tr<'a> + Send)` instead of `(&for<'a> Tr<'a>) + Send` + + [Overlapping inherent `impl`s are now a hard error][40728] + + [`PartialOrd` and `Ord` must agree on the ordering.][41270] + + [`rustc main.rs -o out --emit=asm,llvm-ir`][41085] Now will output + `out.asm` and `out.ll` instead of only one of the filetypes. + + [ calling a function that returns `Self` will no longer work][41805] when + the size of `Self` cannot be statically determined. + + [rustc now builds with a "pthreads" flavour of MinGW for Windows GNU][40805] + this has caused a few regressions namely: + + Changed the link order of local static/dynamic libraries (respecting the + order on given rather than having the compiler reorder). + + Changed how MinGW is linked, native code linked to dynamic libraries + may require manually linking to the gcc support library (for the native + code itself) +------------------------------------------------------------------- +Wed May 10 07:09:13 UTC 2017 - luke.nukem.jones@gmail.com + +- Adjustment of rust version dependency to prevent inability to + build in the adi rings. + +------------------------------------------------------------------- +Sun Apr 30 04:48:19 UTC 2017 - luke.nukem.jones@gmail.com + +- Add the cargo binaries for each arch, used for building rust only + these are not shipped, and don't factor in to the final product. + +------------------------------------------------------------------- +Fri Apr 28 01:24:18 UTC 2017 - luke.nukem.jones@gmail.com + +- Revert restriction of x86 arch to i586 for the interim. + +------------------------------------------------------------------- +Fri Apr 28 01:04:09 UTC 2017 - luke.nukem.jones@gmail.com + +- Update to 1.17.0 +- Language updates + * [The compiler's `dead_code` lint now accounts for type aliases][38051]. + * [Uninhabitable enums (those without any variants) no longer permit wildcard + match patterns][38069] + * [Clean up semantics of `self` in an import list][38313] + * [`Self` may appear in `impl` headers][38920] + * [`Self` may appear in struct expressions][39282] + +- Compiler updates + * [`rustc` now supports `--emit=metadata`, which causes rustc to emit + a `.rmeta` file containing only crate metadata][38571]. This can be + used by tools like the Rust Language Service to perform + metadata-only builds. + * [Levenshtein based typo suggestions now work in most places, while + previously they worked only for fields and sometimes for local + variables][38927]. Together with the overhaul of "no + resolution"/"unexpected resolution" errors (#[38154]) they result in + large and systematic improvement in resolution diagnostics. + * [Fix `transmute::` where `T` requires a bigger alignment than + `U`][38670] + * [rustc: use -Xlinker when specifying an rpath with ',' in it][38798] + * [`rustc` no longer attempts to provide "consider using an explicit + lifetime" suggestions][37057]. They were inaccurate. + +- Stabilized APIs + * [`VecDeque::truncate`] + * [`VecDeque::resize`] + * [`String::insert_str`] + * [`Duration::checked_add`] + * [`Duration::checked_sub`] + * [`Duration::checked_div`] + * [`Duration::checked_mul`] + * [`str::replacen`] + * [`str::repeat`] + * [`SocketAddr::is_ipv4`] + * [`SocketAddr::is_ipv6`] + * [`IpAddr::is_ipv4`] + * [`IpAddr::is_ipv6`] + * [`Vec::dedup_by`] + * [`Vec::dedup_by_key`] + * [`Result::unwrap_or_default`] + * [`<*const T>::wrapping_offset`] + * [`<*mut T>::wrapping_offset`] + * `CommandExt::creation_flags` + * [`File::set_permissions`] + * [`String::split_off`] + +- Updates to libraries + * [`[T]::binary_search` and `[T]::binary_search_by_key` now take + their argument by `Borrow` parameter][37761] + * [All public types in std implement `Debug`][38006] + * [`IpAddr` implements `From` and `From`][38327] + * [`Ipv6Addr` implements `From<[u16; 8]>`][38131] + * [Ctrl-Z returns from `Stdin.read()` when reading from the console on + Windows][38274] + * [std: Fix partial writes in `LineWriter`][38062] + * [std: Clamp max read/write sizes on Unix][38062] + * [Use more specific panic message for `&str` slicing errors][38066] + * [`TcpListener::set_only_v6` is deprecated][38304]. This + functionality cannot be achieved in std currently. + * [`writeln!`, like `println!`, now accepts a form with no string + or formatting arguments, to just print a newline][38469] + * [Implement `iter::Sum` and `iter::Product` for `Result`][38580] + * [Reduce the size of static data in `std_unicode::tables`][38781] + * [`char::EscapeDebug`, `EscapeDefault`, `EscapeUnicode`, + `CaseMappingIter`, `ToLowercase`, `ToUppercase`, implement + `Display`][38909] + * [`Duration` implements `Sum`][38712] + * [`String` implements `ToSocketAddrs`][39048] + +- Misc + * [`rustdoc` has a `--sysroot` argument that, like `rustc`, specifies + the path to the Rust implementation][38589] + * [The `armv7-linux-androideabi` target no longer enables NEON + extensions, per Google's ABI guide][38413] + * [The stock standard library can be compiled for Redox OS][38401] + * [Rust has initial SPARC support][38726]. Tier 3. No builds + available. + * [Rust has experimental support for Nvidia PTX][38559]. Tier 3. No + builds available. + * [Fix backtraces on i686-pc-windows-gnu by disabling FPO][39379] + +- Compatibility Notes + * [Uninhabitable enums (those without any variants) no longer permit wildcard + match patterns][38069] + * In this release, references to uninhabited types can not be + pattern-matched. This was accidentally allowed in 1.15. + * [The compiler's `dead_code` lint now accounts for type aliases][38051]. + * [Ctrl-Z returns from `Stdin.read()` when reading from the console on + Windows][38274] + * [Clean up semantics of `self` in an import list][38313] + +- Restrict x86 builds to i686 only. +- Revert restriction on previous rust versions used for building + +------------------------------------------------------------------- +Sat Apr 22 02:06:47 UTC 2017 - luke.nukem.jones@gmail.com + +- Change x86 build target from i586 to i686 + +------------------------------------------------------------------- +Wed Mar 22 01:43:22 UTC 2017 - luke.nukem.jones@gmail.com + +- Switch .spec to use rust-build compilation system +- Update config.toml to reflect rust-build changes +- Strict versioning for compilation so rustc always use previous + stable compiler + +------------------------------------------------------------------- +Fri Mar 17 05:59:18 UTC 2017 - luke.nukem.jones@gmail.com + +- Update to 1.16.0 + +- Language updates + * Lifetimes in statics and consts default to `'static`. [RFC 1623] + * [The compiler's `dead_code` lint now accounts for type aliases][38051]. + * [Uninhabitable enums (those without any variants) no longer permit wildcard + match patterns][38069] + * [Clean up semantics of `self` in an import list][38313] + * [`Self` may appear in `impl` headers][38920] + * [`Self` may appear in struct expressions][39282] + +- Compiler updates + * [`rustc` now supports `--emit=metadata`, which causes rustc to emit + a `.rmeta` file containing only crate metadata][38571]. This can be + used by tools like the Rust Language Service to perform + metadata-only builds. + * [Levenshtein based typo suggestions now work in most places, while + previously they worked only for fields and sometimes for local + variables][38927]. Together with the overhaul of "no + resolution"/"unexpected resolution" errors (#[38154]) they result in + large and systematic improvement in resolution diagnostics. + * [Fix `transmute::` where `T` requires a bigger alignment than + `U`][38670] + * [rustc: use -Xlinker when specifying an rpath with ',' in it][38798] + * [`rustc` no longer attempts to provide "consider using an explicit + lifetime" suggestions][37057]. They were inaccurate. + +- Stabilized APIs + * [`VecDeque::truncate`] + * [`VecDeque::resize`] + * [`String::insert_str`] + * [`Duration::checked_add`] + * [`Duration::checked_sub`] + * [`Duration::checked_div`] + * [`Duration::checked_mul`] + * [`str::replacen`] + * [`str::repeat`] + * [`SocketAddr::is_ipv4`] + * [`SocketAddr::is_ipv6`] + * [`IpAddr::is_ipv4`] + * [`IpAddr::is_ipv6`] + * [`Vec::dedup_by`] + * [`Vec::dedup_by_key`] + * [`Result::unwrap_or_default`] + * [`<*const T>::wrapping_offset`] + * [`<*mut T>::wrapping_offset`] + * `CommandExt::creation_flags` + * [`File::set_permissions`] + * [`String::split_off`] + +- Library updates + * [`[T]::binary_search` and `[T]::binary_search_by_key` now take + their argument by `Borrow` parameter][37761] + * [All public types in std implement `Debug`][38006] + * [`IpAddr` implements `From` and `From`][38327] + * [`Ipv6Addr` implements `From<[u16; 8]>`][38131] + * [Ctrl-Z returns from `Stdin.read()` when reading from the console on + Windows][38274] + * [std: Fix partial writes in `LineWriter`][38062] + * [std: Clamp max read/write sizes on Unix][38062] + * [Use more specific panic message for `&str` slicing errors][38066] + * [`TcpListener::set_only_v6` is deprecated][38304]. This + functionality cannot be achieved in std currently. + * [`writeln!`, like `println!`, now accepts a form with no string + or formatting arguments, to just print a newline][38469] + * [Implement `iter::Sum` and `iter::Product` for `Result`][38580] + * [Reduce the size of static data in `std_unicode::tables`][38781] + * [`char::EscapeDebug`, `EscapeDefault`, `EscapeUnicode`, + `CaseMappingIter`, `ToLowercase`, `ToUppercase`, implement + `Display`][38909] + * [`Duration` implements `Sum`][38712] + * [`String` implements `ToSocketAddrs`][39048] + +- Misc fixes + * [`rustdoc` has a `--sysroot` argument that, like `rustc`, specifies + the path to the Rust implementation][38589] + * [The `armv7-linux-androideabi` target no longer enables NEON + extensions, per Google's ABI guide][38413] + * [The stock standard library can be compiled for Redox OS][38401] + * [Rust has initial SPARC support][38726]. Tier 3. No builds + available. + * [Rust has experimental support for Nvidia PTX][38559]. Tier 3. No + builds available. + * [Fix backtraces on i686-pc-windows-gnu by disabling FPO][39379] + +- Compatibility notes + * [Uninhabitable enums (those without any variants) no longer permit wildcard + match patterns][38069] + * In this release, references to uninhabited types can not be + pattern-matched. This was accidentally allowed in 1.15. + * [The compiler's `dead_code` lint now accounts for type aliases][38051]. + * [Ctrl-Z returns from `Stdin.read()` when reading from the console on + Windows][38274] + * [Clean up semantics of `self` in an import list][38313] + +------------------------------------------------------------------- +Mon Mar 13 10:14:21 UTC 2017 - dimstar@opensuse.org + +- Remove duplicate license files from _docdir: rpm 4.13 no longer + implicitly packages those files and we catch them using %license, + +------------------------------------------------------------------- +Thu Feb 23 07:36:17 UTC 2017 - bg@suse.com + +- remove bootstrap for s390x as binaries are available in + openSUSE:Factory:zSystems + +------------------------------------------------------------------- +Wed Feb 15 05:58:35 UTC 2017 - luke.nukem.jones@gmail.com + +- Fixes to build for archs armv7, aarch64, ppc64, s390x + +------------------------------------------------------------------- +Sat Feb 11 05:31:34 UTC 2017 - luke.nukem.jones@gmail.com + +- Update to 1.15.1 +- Fix IntoIter::as_mut_slice's signature + +------------------------------------------------------------------- +Mon Feb 6 09:05:39 UTC 2017 - luke.nukem.jones@gmail.com + +- Correct rust-triples use in spec. + +------------------------------------------------------------------- +Mon Feb 6 08:25:17 UTC 2017 - luke.nukem.jones@gmail.com + +- Update to 1.15.0 + +- Language updates + * Basic procedural macros allowing custom `#[derive]`, aka "macros 1.1", are + stable. This allows popular code-generating crates like Serde and Diesel to + work ergonomically. [RFC 1681]. + * [Tuple structs may be empty. Unary and empty tuple structs may be instantiated + with curly braces][36868]. Part of [RFC 1506]. + * [A number of minor changes to name resolution have been activated][37127]. + They add up to more consistent semantics, allowing for future evolution of + Rust macros. Specified in [RFC 1560], see its section on ["changes"] for + details of what is different. The breaking changes here have been transitioned + through the [`legacy_imports`] lint since 1.14, with no known regressions. + * [In `macro_rules`, `path` fragments can now be parsed as type parameter + bounds][38279] + * [`?Sized` can be used in `where` clauses][37791] + * [There is now a limit on the size of monomorphized types and it can be + modified with the `#![type_size_limit]` crate attribute, similarly to + the `#![recursion_limit]` attribute][37789] + +- Compiler changes + * [On Windows, the compiler will apply dllimport attributes when linking to + extern functions][37973]. Additional attributes and flags can control which + library kind is linked and its name. [RFC 1717]. + * [Rust-ABI symbols are no longer exported from cdylibs][38117] + * [The `--test` flag works with procedural macro crates][38107] + * [Fix `extern "aapcs" fn` ABI][37814] + * [The `-C no-stack-check` flag is deprecated][37636]. It does nothing. + * [The `format!` expander recognizes incorrect `printf` and shell-style + formatting directives and suggests the correct format][37613]. + * [Only report one error for all unused imports in an import list][37456] + +- Compiler performance + * [Avoid unnecessary `mk_ty` calls in `Ty::super_fold_with`][37705] + * [Avoid more unnecessary `mk_ty` calls in `Ty::super_fold_with`][37979] + * [Don't clone in `UnificationTable::probe`][37848] + * [Remove `scope_auxiliary` to cut RSS by 10%][37764] + * [Use small vectors in type walker][37760] + * [Macro expansion performance was improved][37701] + * [Change `HirVec>` to `HirVec` in `hir::Expr`][37642] + * [Replace FNV with a faster hash function][37229] + +- For full change list, please see + https://raw.githubusercontent.com/rust-lang/rust/master/RELEASES.md + +------------------------------------------------------------------- +Tue Jan 31 09:41:33 UTC 2017 - luke.nukem.jones@gmail.com + +- Adjust build so that aarch and ARM architectures use bootstrap for + initial build + +------------------------------------------------------------------- +Tue Jan 31 04:25:06 UTC 2017 - luke.nukem.jones@gmail.com + +- Fix provides/conflicts/obsoletes + +------------------------------------------------------------------- +Fri Dec 23 08:22:26 UTC 2016 - luke.nukem.jones@gmail.com + +- Remove patch 0001-Fix-armv7-autodetection.patch + + appears to have been fixed upstream. +- Building armv7hl arch with bootstrap binary since previously + packaged versions haven't successfully built in the past + +------------------------------------------------------------------- +Fri Dec 23 07:57:24 UTC 2016 - luke.nukem.jones@gmail.com + +- Update to version 1.14.0 + + Announcement: https://blog.rust-lang.org/2016/12/22/Rust-1.14.html + + Details: https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1140-2016-12-22 +- Release highlights: + + support for RFC 1492. This small addition lets you use `..` + in more places, for example when destructuring a struct or tuple + + println!(), with no arguments, prints newline + + Wrapping impls standard binary and unary operators on + references, as well as the Sum and Product iterators, making + references to these types easier to use + + Implement From> for String and From> for + Vec. These implementations make sense, but were not yet added. + + Expand .zip() specialization to .map() and .cloned() for + improved performance. + + Implement RefUnwindSafe for atomic types, as these types are + “unwind safe,” though that wasn’t obvious at first. + + Specialize Vec::extend to Vec::extend_from_slice for + performance gains. + + Don’t reuse HashMap random seeds. This helps to mitigate one + type of DDoS attack. + + The internal memory layout of HashMap is more cache-friendly, + for significant improvements in some operations + + Impl Add<{str, Cow}> for Cow. We already support Add + for other string types, so not having it on Cow is inconsistent. + +------------------------------------------------------------------- +Sun Dec 18 09:27:44 UTC 2016 - luke.nukem.jones@gmail.com + +- Update to 1.13.0 + +------------------------------------------------------------------- +Sun Dec 18 09:03:52 UTC 2016 - luke.nukem.jones@gmail.com + +- Add conflicts to help avoid situations where previous versions + or rustc-bootstrap may be installed + +------------------------------------------------------------------- +Sun Dec 18 02:41:25 UTC 2016 - luke.nukem.jones@gmail.com + +- Update to 1.12.1 +- Remove patches: + + 0003-Disable-embedding-timestamp-information.patch - fixed + by upstream + + 0002-Add-armv6l-autodetection.patch - no-longer viable + +------------------------------------------------------------------- +Fri Dec 16 23:27:42 UTC 2016 - luke.nukem.jones@gmail.com + +- Revert from v1.13 to v1.11 in preparation for alternative + packaging. + +------------------------------------------------------------------- +Wed Nov 2 08:42:44 UTC 2016 - matwey.kornilov@gmail.com + +- Add 0001-Fix-armv7-autodetection.patch +- Add 0002-Add-armv6l-autodetection.patch + * fix armv6 and armv7 builds + +------------------------------------------------------------------- +Tue Sep 20 11:46:53 UTC 2016 - kgronlund@suse.com + +- Update to 1.11 + + Add support for cdylib crate types + +- Remove merged patches: + * 0001-Fix-misleading-intentation-errors-on-gcc-6.0.patch + * 0002-Fix-GCC-6-misleading-indentation-error-in-hoedown.patch + +- Set DT_SONAME when building dylibs + * Add add-soname.patch + +------------------------------------------------------------------- +Tue Sep 6 06:35:03 UTC 2016 - kgronlund@suse.com + +- Move to package named rust + +------------------------------------------------------------------- +Thu Aug 4 19:41:56 UTC 2016 - mvyskocil@opensuse.org + +- Update to 1.10 + + -C panic=abort flag for rustc or equivalent in Cargo.toml + + new crate type cdylib, embeded library for other languages + + In addition, a number of performance improvements landed in + the compiler, and so did a number of usability improvements + across the documentation, rustdoc itself, and various error + messages. + + This is the first release, which is guaranteed to be built + by previous stable release of rustc +- Packaging: + + drop bootstrap mode and use rustc 1.9 + + move documentation to versioned directory + +------------------------------------------------------------------- +Sun Jul 31 15:03:38 UTC 2016 - jengelh@inai.de + +- Use smp_mflags for parallel building. Avoid sh invocation for + simple ldconfig calls. Drop archaic %clean section. + Drop filler words from summary. + +------------------------------------------------------------------- +Tue Jul 26 13:34:17 UTC 2016 - kgronlund@suse.com + +- Rename source package to rustc-1_9 to conform to naming standards. + +------------------------------------------------------------------- +Tue Jul 12 05:57:11 UTC 2016 - mvyskocil@opensuse.org + +- Rename source package to rustc-190 to avoid unecessary rebuilds + of rustc packages on upgrade + +------------------------------------------------------------------- +Wed Jul 6 11:11:50 UTC 2016 - kgronlund@suse.com + +- Move stage0 binaries into separate package +- Disable embedding timestamp information +- Add 0003-Disable-embedding-timestamp-information.patch + +------------------------------------------------------------------- +Tue Jun 28 12:43:26 UTC 2016 - kgronlund@suse.com + +- Rename package to rustc-stable +- Add rpmlintrc +- Make bootstrapping conditional + +------------------------------------------------------------------- +Mon Jun 27 15:40:53 UTC 2016 - kgronlund@suse.com + +- Fix misleading indentation errors on GCC 6.0 +- Remove snap2.sh +- Add 0001-Fix-misleading-intentation-errors-on-gcc-6.0.patch +- Add 0002-Fix-GCC-6-misleading-indentation-error-in-hoedown.patch + +------------------------------------------------------------------- +Mon May 30 09:15:21 UTC 2016 - mvyskocil@opensuse.org + +- Update to version 1.9.0 + + Stabilization of std::panic + + Deprecation warnings, #[deprecated] attribute + + Compile time improvements + + Rolling out use of specialization + + Library stabilizations + About 80 library functions and methods are now stable in 1. + + http://blog.rust-lang.org/2016/05/26/Rust-1.9.html + +------------------------------------------------------------------- +Fri Apr 15 19:39:18 UTC 2016 - mvyskocil@opensuse.org + +- Update to version 1.8.0: + + Various “operator equals” operators, such as += and -=, are now + overloadable via various traits. + + Empty struct declaration can contain cutly braces + + New (non default) cargo based build system for rustc + + About 20 library functions and methods are now stable in 1.8 + +------------------------------------------------------------------- +Fri Mar 4 16:10:07 UTC 2016 - kgronlund@suse.com + +- Update to version 1.7.0: + + Many stabilized APIs + + Improved library performance + + BTreeSet and its iterators, Iter, IntoIter, and Range are covariant over their contained type. + + LinkedList and its iterators, Iter and IntoIter are covariant over their contained type. + + str::replace now accepts a Pattern, like other string searching methods. + + Any is implemented for unsized types. + + Hash is implemented for Duration. + + Soundness fixes, may break code. See RFC 1214 for more information. + + Several bugs in the compiler's visibility calculations were fixed. + + Parsing "." as a float results in an error instead of 0. + + Borrows of closure parameters may not outlive the closure. + +------------------------------------------------------------------- +Thu Jan 20 19:28:34 UTC 2016 - i@xuzhao.net + +- Update to version 1.6.0: + + Stabilization of libcore and other library functions + + Crates.io disallows wildcards + +------------------------------------------------------------------- +Fri Oct 30 12:18:05 UTC 2015 - mvyskocil@opensuse.org + +- Update to version 1.4.0: + + Several changes have been made to fix type soundness and improve the + behavior of associated types. See RFC 1214. Although we have mostly + introduced these changes as warnings this release, to become errors next + release, there are still some scenarios that will see immediate breakage. + + The str::lines and BufRead::lines iterators treat \r\n as line breaks in + addition to \n. + + Loans of 'static lifetime extend to the end of a function. + + str::parse no longer introduces avoidable rounding error when parsing + floating point numbers. Together with earlier changes to float + formatting/output, "round trips" like f.to_string().parse() now preserve + the value of f exactly. Additionally, leading plus signs are now accepted. + +------------------------------------------------------------------- +Sat Oct 17 19:12:53 UTC 2015 - mvyskocil@opensuse.org + +- Split the gdb support to rust-gdb subpackage + +------------------------------------------------------------------- +Fri Sep 18 07:00:06 UTC 2015 - mvyskocil@opensuse.org + +- Update to version 1.3.0: + + API stabilization, including the new Duration API and + enhancements to Error and Hash/Hasher. + + The substring matcher now uses a more efficient algorithm. + + There were improvements to zero filling that speed up + Vec::resize and Read::read_to_end. + + The implementation of Read::read_to_end has been specialized + for stdin and File, resulting in additional speedups. + + The PartialEq implementation on slices is now much faster. +- Packaging: renamed source package to rustc to match upstream + +------------------------------------------------------------------- +Wed Aug 12 13:30:10 UTC 2015 - mvyskocil@opensuse.org + +- Update to version 1.2.0: + + An across-the-board improvement to real-world compiler performance. + Representative crates include hyper (compiles 1.16x faster), html5ever + (1.62x faster), regex (1.32x faster) and rust-encoding (1.35x faster). You + can explore some of this performance data at Nick Cameron’s preliminary + tracking site, using dates 2015-05-15 to 2015-06-25. + + Parallel codegen is now working, and produces a 33% speedup when + bootstrapping on a 4 core machine. Parallel codegen is particularly useful + for debug builds, since it prevents some optimizations; but it can also be + used with optimizations as an effective -O1 flag. It can be activated + by passing -C codegen-units=N to rustc, where N is the desired number + of threads. + +------------------------------------------------------------------- +Mon Jul 27 18:57:08 UTC 2015 - mvyskocil@opensuse.org + +- Update to version 1.1.0: + + The std::fs module has been expanded to expand the set of + functionality exposed: + * DirEntry now supports optimizations like file_type and + metadata which don't incur a syscall on some platforms. + * A symlink_metadata function has been added. + * The fs::Metadata structure now lowers to its OS counterpart, + providing access to all underlying information. + + The compiler now contains extended explanations of many errors. + When an error with an explanation occurs the compiler suggests + using the --explain flag to read the explanation. Error + explanations are also available online. + + Thanks to multiple improvements to type checking, as well as other + work, the time to bootstrap the compiler decreased by 32%. +- drop tar_scm service and use source urls + +------------------------------------------------------------------- +Fri May 15 21:42:38 UTC 2015 - kgronlund@suse.com + +- Update to version 1.0.0: + + lint: deny transmuting from immutable to mutable, since it's undefined behavior + + std: update select internals to not use mutable transmuting + + std: Remove index notation on slice iterators + + std: Destabilize io::BufStream + + Make RwLock::try_write try to obtain a write lock + + std: Remove addition on vectors for now + + thread: right now you can't actually set those printers + + Fix #24872, XSS in docs not found page. + + Update AUTHORS.txt and RELEASES.md for 1.0 + + std: Mark `mem::forget` as a safe function + + core: impl AsRef<[u8]> for str + + collections: impl AsRef<[u8]> for String + + collections: change bounds of SliceConcatExt implementations to use Borrow instead of AsRef + + Fix invalid references due to the automated string substitution + + dropck: must assume `Box` has a destructor of interest. + +------------------------------------------------------------------- +Thu May 07 11:05:47 UTC 2015 - opensuse-packaging@opensuse.org + +- Rename binary package to rust +- Add build for i586 +- Only run fdupes on SUSE builds +- Changed version format +- Update to version 1.0.0~beta4+git.1430848988.f873dc5: + + Introduce a `FreeRegionMap` data structure. (#22779) + + Fix #20616 + + std: Fix inheriting standard handles on windows + + Fix #24895. + + Fix zero-normalization of the pos of a `MultiByteChar`. + + lint for mixing `#[repr(C)]` with an impl of `Drop`. + + Bump prerelease version to .4 + + Add downcasting to std::error::Error + +------------------------------------------------------------------- +Wed May 6 17:08:50 UTC 2015 - matwey.kornilov@gmail.com + +- Format spec file + +------------------------------------------------------------------- +Wed Apr 29 13:07:54 UTC 2015 - opensuse-packaging@opensuse.org + +- Update to version 1.0.0beta3+git.1429985089.5241bf9: + + Update Windows caveats + + Utilize if..let for get_mut doc-comment examples + + Indicate keywords are code-like in Fuse::reset_fuse doc comment + + doc: improve/fix 'let' FAQ + + Fix broken links in the docs + + Indicate None is code-like in doc comments + + Fixed typo in hash_map::Entry documentation + + Remove an unused import on windows + +------------------------------------------------------------------- +Wed Apr 29 12:56:15 UTC 2015 - kgronlund@suse.com + +- Version 1.0.0-beta3. diff --git a/rust.spec b/rust.spec new file mode 100644 index 0000000..47d6c5e --- /dev/null +++ b/rust.spec @@ -0,0 +1,95 @@ +# +# spec file for package rust +# +# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2021 William Brown +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%global version_suffix 1.72 +%global version_current 1.72.0 + +%define obsolete_rust_versioned() \ +Obsoletes: %{1}1.71%{?2:-%{2}} \ +Obsoletes: %{1}1.70%{?2:-%{2}} \ +Obsoletes: %{1}1.69%{?2:-%{2}} \ +Obsoletes: %{1}1.68%{?2:-%{2}} \ +Obsoletes: %{1}1.67%{?2:-%{2}} \ +Obsoletes: %{1}1.66%{?2:-%{2}} \ +Obsoletes: %{1}1.65%{?2:-%{2}} \ +Obsoletes: %{1}1.64%{?2:-%{2}} \ +Obsoletes: %{1}1.63%{?2:-%{2}} \ +Obsoletes: %{1}1.62%{?2:-%{2}} + +# === rust arch support tiers === +# https://doc.rust-lang.org/nightly/rustc/platform-support.html +# tl;dr only aarch64, x86_64 and i686 are guaranteed to work. +# +# armv6/7, s390x, ppc[64[le]], riscv are all "guaranteed to build" only +# but may not always work. +# + +Name: rust +Version: %{version_current} +Release: 0 +Summary: A systems programming language +License: Apache-2.0 OR MIT +Group: Development/Languages/Rust +URL: https://www.rust-lang.org +Source: README +Source99: %{name}-rpmlintrc +Requires: rust%{version_suffix} +%obsolete_rust_versioned rust + +%description +Rust is a systems programming language focused on three goals: safety, +speed, and concurrency. + +⚠️ This is the Rust toolchain intended for build pipelines. If you +want to install Rust for a development environment, you should install +'rustup' instead. + +%package -n cargo +Summary: The Rust package manager +License: Apache-2.0 OR MIT +Group: Development/Languages/Rust +Requires: cargo%{version_suffix} +Requires: rust = %{version} +Provides: rust+cargo = %{version} +%obsolete_rust_versioned cargo + +%description -n cargo +Cargo downloads dependencies of Rust projects and compiles it. + +⚠️ This is the Rust toolchain intended for build pipelines. If you +want to install Rust for a development environment, you should install +'rustup' instead. + +%prep + +%build + +%install +install -D -m 0644 %{S:0} %{buildroot}/usr/share/doc/packages/rust/README +install -D -m 0644 %{S:0} %{buildroot}/usr/share/doc/packages/cargo/README + +%files +%defattr(-,root,root,-) +%doc /usr/share/doc/packages/rust + +%files -n cargo +%defattr(-,root,root,-) +%doc /usr/share/doc/packages/cargo + +%changelog