2016-09-06 18:11:34 +02:00
|
|
|
<?xml version="1.0"?>
|
|
|
|
<constraints>
|
|
|
|
<hardware>
|
Accepting request 681133 from home:luke_nukem:branches:devel:languages:rust
- Update to version 1.33.0
+ Language
- You can now use the `cfg(target_vendor)` attribute. E.g.
`#[cfg(target_vendor="linux")] fn main() { println!("Hello Linux!"); }`
- Integer patterns such as in a match expression can now be exhaustive.
E.g. You can have match statement on a `u8` that covers `0..=255` and
you would no longer be required to have a `_ => unreachable!()` case.
- You can now have multiple patterns in `if let` and `while let`
expressions. You can do this with the same syntax as a `match`
expression. E.g.
```
enum Creature {
Crab(String),
Lobster(String),
Person(String),
}
fn main() {
let state = Creature::Crab("Ferris");
if let Creature::Crab(name) | Creature::Person(name) = state {
println!("This creature's name is: {}", name);
}
}
```
- You can now have irrefutable `if let` and `while let` patterns. Using
this feature will by default produce a warning as this behaviour can be
unintuitive. E.g. `if let _ = 5 {}`
- You can now use `let` bindings, assignments, expression statements,
and irrefutable pattern destructuring in const functions.
- You can now call unsafe const functions. E.g.
```
const unsafe fn foo() -> i32 { 5 }
const fn bar() -> i32 {
unsafe { foo() }
}
```
- You can now specify multiple attributes in a `cfg_attr` attribute.
E.g. `#[cfg_attr(all(), must_use, optimize)]`
- You can now specify a specific alignment with the `#[repr(packed)]`
attribute. E.g. `#[repr(packed(2))] struct Foo(i16, i32);` is a struct
with an alignment of 2 bytes and a size of 6 bytes.
- You can now import an item from a module as an `_`. This allows you to
import a trait's impls, and not have the name in the namespace. E.g.
```
use std::io::Read as _;
// Allowed as there is only one `Read` in the module.
pub trait Read {}
```
- extern` functions will now abort by default when panicking.
This was previously undefined behaviour.
+ Compiler
- You can now set a linker flavor for `rustc` with the `-Clinker-flavor`
command line argument.
- The mininum required LLVM version has been bumped to 6.0.
- Added support for the PowerPC64 architecture on FreeBSD.
- The `x86_64-fortanix-unknown-sgx` target support has been upgraded to
tier 2 support. Visit the [platform support][platform-support] page for
information on Rust's platform support.
- Added support for the `thumbv7neon-linux-androideabi` and
`thumbv7neon-unknown-linux-gnueabihf` targets.
- Added support for the `x86_64-unknown-uefi` target.
+ Libraries
- The methods `overflowing_{add, sub, mul, shl, shr}` are now `const`
functions for all numeric types.
- The methods `rotate_left`, `rotate_right`, and `wrapping_{add, sub, mul, shl, shr}`
are now `const` functions for all numeric types.
- The methods `is_positive` and `is_negative` are now `const` functions for
all signed numeric types.
- The `get` method for all `NonZero` types is now `const`.
- The methods `count_ones`, `count_zeros`, `leading_zeros`, `trailing_zeros`,
`swap_bytes`, `from_be`, `from_le`, `to_be`, `to_le` are now `const` for all
numeric types.
- Ipv4Addr::new` is now a `const` function
+ Stabilized APIs
- unix::FileExt::read_exact_at
- unix::FileExt::write_all_at
- Option::transpose
- Result::transpose
- convert::identity
- pin::Pin
- marker::Unpin
- marker::PhantomPinned
- Vec::resize_with
- VecDeque::resize_with
- Duration::as_millis
- Duration::as_micros
- Duration::as_nanos
+ Cargo
- Cargo should now rebuild a crate if a file was modified during the initial
build.][cargo/6484]
+ Compatibility Notes
- The methods `str::{trim_left, trim_right, trim_left_matches, trim_right_matches}`
are now deprecated in the standard library, and their usage will now produce a warning.
Please use the `str::{trim_start, trim_end, trim_start_matches, trim_end_matches}`
methods instead.
OBS-URL: https://build.opensuse.org/request/show/681133
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=196
2019-03-03 21:22:02 +01:00
|
|
|
<processors>8</processors>
|
2018-11-06 15:30:18 +01:00
|
|
|
<memory>
|
2017-03-22 04:21:12 +01:00
|
|
|
<size unit="G">8</size>
|
2018-11-06 15:30:18 +01:00
|
|
|
</memory>
|
2016-09-06 18:11:34 +02:00
|
|
|
<disk>
|
2019-03-10 04:05:45 +01:00
|
|
|
<size unit="G">60</size>
|
2016-09-06 18:11:34 +02:00
|
|
|
</disk>
|
|
|
|
</hardware>
|
2019-03-19 05:26:22 +01:00
|
|
|
<!-- i586, armv6 and armv7 tend to run out of memory during builds -->
|
2016-09-06 18:11:34 +02:00
|
|
|
<overwrite>
|
|
|
|
<conditions>
|
2018-11-06 15:30:18 +01:00
|
|
|
<arch>i586</arch>
|
2016-09-06 18:11:34 +02:00
|
|
|
<arch>armv6l</arch>
|
|
|
|
<arch>armv7l</arch>
|
|
|
|
</conditions>
|
|
|
|
<hardware>
|
Accepting request 646330 from home:luke_nukem:branches:devel:languages:rust
- Patch: 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.
- 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
- 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<CStr>`, `Box<OsStr>`, and `Box<Path>` now implement `Clone`.
- Implemented `PartialEq<&str>` for `OsString` and `PartialEq<OsString>`
for `&str`.
- `Cell<T>` 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>(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<bool>` 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<str>`, `From<&Vec<T>>` for `Cow<[T]>`,
`From<Cow<CStr>>` for `CString`, `From<CString>, From<CStr>, From<&CString>`
for `Cow<CStr>`, `From<OsString>, From<OsStr>, From<&OsString>` for
`Cow<OsStr>`, `From<&PathBuf>` for `Cow<Path>`, and `From<Cow<Path>>`
for `PathBuf`.-
- Implemented `Shl` and `Shr` for `Wrapping<u128>`
and `Wrapping<i128>`.-
- `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<Trait> == Box<dyn Trait>`.
- 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.
OBS-URL: https://build.opensuse.org/request/show/646330
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=161
2018-11-05 09:18:23 +01:00
|
|
|
<processors>2</processors>
|
2019-02-27 23:32:57 +01:00
|
|
|
<physicalmemory>
|
|
|
|
<size unit="G">4</size>
|
|
|
|
</physicalmemory>
|
2018-11-06 15:30:18 +01:00
|
|
|
<disk>
|
|
|
|
<size unit="G">15</size>
|
|
|
|
</disk>
|
|
|
|
</hardware>
|
|
|
|
</overwrite>
|
2019-03-19 05:26:22 +01:00
|
|
|
<!-- x86_64 to use physical memory to speed builds up -->
|
2018-11-06 15:30:18 +01:00
|
|
|
<overwrite>
|
|
|
|
<conditions>
|
|
|
|
<arch>x86_64</arch>
|
|
|
|
</conditions>
|
|
|
|
<hardware>
|
|
|
|
<physicalmemory>
|
|
|
|
<size unit="G">8</size>
|
|
|
|
</physicalmemory>
|
2019-03-19 21:36:34 +01:00
|
|
|
<disk>
|
2019-03-23 11:30:57 +01:00
|
|
|
<size unit="G">50</size>
|
2019-03-19 21:36:34 +01:00
|
|
|
</disk>
|
2018-11-06 15:30:18 +01:00
|
|
|
</hardware>
|
|
|
|
</overwrite>
|
2019-03-19 05:26:22 +01:00
|
|
|
<!-- aarch64 is a time consuming build, try to use RAM -->
|
2018-11-06 15:30:18 +01:00
|
|
|
<overwrite>
|
|
|
|
<conditions>
|
|
|
|
<arch>aarch64</arch>
|
|
|
|
</conditions>
|
|
|
|
<hardware>
|
|
|
|
<physicalmemory>
|
|
|
|
<size unit="G">8</size>
|
|
|
|
</physicalmemory>
|
Accepting request 646330 from home:luke_nukem:branches:devel:languages:rust
- Patch: 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.
- 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
- 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<CStr>`, `Box<OsStr>`, and `Box<Path>` now implement `Clone`.
- Implemented `PartialEq<&str>` for `OsString` and `PartialEq<OsString>`
for `&str`.
- `Cell<T>` 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>(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<bool>` 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<str>`, `From<&Vec<T>>` for `Cow<[T]>`,
`From<Cow<CStr>>` for `CString`, `From<CString>, From<CStr>, From<&CString>`
for `Cow<CStr>`, `From<OsString>, From<OsStr>, From<&OsString>` for
`Cow<OsStr>`, `From<&PathBuf>` for `Cow<Path>`, and `From<Cow<Path>>`
for `PathBuf`.-
- Implemented `Shl` and `Shr` for `Wrapping<u128>`
and `Wrapping<i128>`.-
- `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<Trait> == Box<dyn Trait>`.
- 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.
OBS-URL: https://build.opensuse.org/request/show/646330
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=161
2018-11-05 09:18:23 +01:00
|
|
|
<disk>
|
2018-11-06 15:30:18 +01:00
|
|
|
<size unit="G">10</size>
|
Accepting request 646330 from home:luke_nukem:branches:devel:languages:rust
- Patch: 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.
- 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
- 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<CStr>`, `Box<OsStr>`, and `Box<Path>` now implement `Clone`.
- Implemented `PartialEq<&str>` for `OsString` and `PartialEq<OsString>`
for `&str`.
- `Cell<T>` 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>(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<bool>` 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<str>`, `From<&Vec<T>>` for `Cow<[T]>`,
`From<Cow<CStr>>` for `CString`, `From<CString>, From<CStr>, From<&CString>`
for `Cow<CStr>`, `From<OsString>, From<OsStr>, From<&OsString>` for
`Cow<OsStr>`, `From<&PathBuf>` for `Cow<Path>`, and `From<Cow<Path>>`
for `PathBuf`.-
- Implemented `Shl` and `Shr` for `Wrapping<u128>`
and `Wrapping<i128>`.-
- `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<Trait> == Box<dyn Trait>`.
- 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.
OBS-URL: https://build.opensuse.org/request/show/646330
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=161
2018-11-05 09:18:23 +01:00
|
|
|
</disk>
|
2016-09-06 18:11:34 +02:00
|
|
|
</hardware>
|
|
|
|
</overwrite>
|
2019-03-19 05:26:22 +01:00
|
|
|
<!-- 25GB of disk as 60GB is unavailable (and unrequired) on s390x and ppc64 -->
|
2019-03-19 05:19:54 +01:00
|
|
|
<overwrite>
|
|
|
|
<conditions>
|
|
|
|
<arch>s390x</arch>
|
|
|
|
<arch>ppc64</arch>
|
|
|
|
<arch>ppc64le</arch>
|
|
|
|
</conditions>
|
|
|
|
<hardware>
|
|
|
|
<disk>
|
|
|
|
<size unit="G">25</size>
|
|
|
|
</disk>
|
|
|
|
</hardware>
|
|
|
|
</overwrite>
|
2016-09-06 18:11:34 +02:00
|
|
|
</constraints>
|