An update that solves one vulnerability and has two fixes
is now available.
Description:
This update for rust, rust-cbindgen fixes the following issues:
rust was updated for use by Firefox 76ESR.
Update to version 1.43.1
cargo package --list
not working with unpublished dependencies.Update to version 1.43.0
&{number}
(e.g. &1.0
) not having#[cfg()]
can now be used on if
expressions.type Foo: Ord
syntactically.self
in all fn
contexts.fn
syntax + cleanup item parsing.item
macro fragments can be interpolated into trait
s, impl
s, andextern
blocks. For example, you may now write: rust macro_rules! mac_trait { ($i:item) => { trait T { $i } } } mac_trait! { fn foo() {} }
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 implementTryFrom<Arc<[T]>>
,TryFrom<Box<[T]>>
, and TryFrom<Rc<[T]>>
N
is 0..=32
.u32::MAX
or f32::NAN
with no imports.u8::is_ascii
is now const
.String
now implements AsMut<str>
.primitive
module to std
and core
. This module reexportsHashMap
and HashSet
.string::FromUtf8Error
now implements Clone + Eq
.Once::is_completed
f32::LOG10_2
f32::LOG2_10
f64::LOG10_2
f64::LOG2_10
iter::once_with
Cargo
[profile]
s in your .cargo/config
,CARGO_BIN_EXE_<name>
pointing to a binary’s<name>
my-program
you would useenv!("CARGO_BIN_EXE_my-program")
.Misc
const_err
lint were deemed unrelated to constunconditional_panic
andarithmetic_overflow
lints.Compatibility Notes
assert!
macro is now a hard error.Self
not having the correctly inferred type. This incorrectlyUpdate to version 1.42.0:
Language
Compiler
Libraries
Stabilized APIs
Cargo
Compatibility Notes
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
impl<T> From<Foo> for Vec<T> {}
.self
position.fn foo(self: Box<Box<Self>>) {}
. PreviouslySelf
, &Self
, &mut Self
, Arc<Self>
, Rc<Self>
, andBox<Self>
were allowed.format_args
macro.pub
) are now syntactically allowed onCompiler
'label
s.i686-unknown-dragonfly
target.riscv64gc-unknown-linux-gnu
target.@path
syntax to--extern
flag without a path, indicating that it-L
flag.Refer to Rust’s [platform support page][forge-platform-support] for more
information on Rust’s tiered platform support.
Libraries
core::panic
module is now stable. It was already stable throughstd
.NonZero*
numerics now implement From<NonZero*>
if it’s a smallerNonZeroU16
now implements From<NonZeroU8>
.MaybeUninit<T>
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-install
will now reinstall the package if it detects that it[profile.dev.package.image] opt-level = 2
sets the image
crate’s2
for debug builds. You can also use[profile.<profile>.build-override]
to override build scripts andMisc
edition
in documentation code blocks to compileedition2018
tells rustdoc that the--theme
, and check--check-theme
.#[cfg(doc)]
to compile an item when buildingCompatibility Notes
Update to version 1.40.0
Language
struct
s and tuple enum
variant’sconst
contexts. e.g. pub struct Point(i32, i32);struct
s, enum
s, and enum
variants with the#[non_exhaustive]
attribute to indicate that there may be variants_ => {}
) to any match statements on aenum
.extern
blocks andtype Generated = macro!();
macro_rules!
items, so you can now have your macros generate macros.meta
pattern matcher in macro_rules!
now correctly matches the(#[$m:meta])
now matches#[attr]
, #[attr{tokens}]
, #[attr[tokens]]
, and #[attr(tokens)]
.Compiler
thumbv7neon-unknown-linux-musleabihf
aarch64-unknown-none-softfloat
target.mips64-unknown-linux-muslabi64
, andmips64el-unknown-linux-muslabi64
targets.Libraries
is_power_of_two
method on unsigned numeric types is now aconst
function.Stabilized APIs
Cargo
--all-features
) passed to a virtual workspacedev-dependencies
without including a version
.Misc
#[cfg(doctest)]
attribute to include an itemrustdoc
.Compatibility Notes
include!
macro will now warn if it failed to include the entireinclude!
macro unintentionally only includes the first#[inline]
on function prototypes and consts now emits aunused_attribute
lint. Using #[inline]
anywhere elseextern
blocks now correctly emits a hard error.Update to version 1.39.0
Language
Compiler
For more details:
https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1390-2019
-11-07
Update to version 1.38.0
Language
#[global_allocator]
attribute can now be used in submodules.#[deprecated]
attribute can now be used on macros.Compiler
rustc
. This will improveLibraries
ascii::EscapeDefault
now implements Clone
and Display
.Clone
, Debug
, Hash
) areClone
derivestd::clone::Clone
). This also makes allstd
/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<T>
.div_euclid
,rem_euclid
) to all numeric primitives. Additionally checked
,overflowing
, and wrapping
versions are available for all integerthread::AccessError
now implements Clone
, Copy
, Eq
, Error
,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
cargo
.--features
option multiple times to enableMisc
rustc
will now warn about some incorrect uses ofmem::{uninitialized, zeroed}
that are known to cause undefinedUpdate 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<u8>; 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<T>` is now ABI-compatible with `T`.
+ Stabilized APIs
- BufReader::buffer
- BufWriter::buffer
- Cell::from_mut
- Cell<[T]>::as_slice_of_cells
- Cell<slice>::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. Crab(String), Lobster(String), Person(String), let state =
Creature::Crab("Ferris"); if let Creature::Crab(name) |
Creature::Person(name) = state { println!("This creature's name is:
{}", name); } unsafe { foo() } 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: PartialOrd<Self> // can write
`Self` instead of `List<T>` Nil, Cons(T, Box<Self>) // likewise here
fn test(&self) { println!("one"); } //~ ERROR duplicate definitions
with name `test` fn test(&self) { println!("two"); }
#[derive]
, aka “macros 1.1”,legacy_imports
] lintmacro_rules
, path
fragments can now be parsed as type parameter?Sized
can be used in where
clauses][37791]#![type_size_limit]
crate attribute, similarly to#![recursion_limit]
attribute][37789]--test
flag works with procedural macro crates][38107]extern "aapcs" fn
ABI][37814]-C no-stack-check
flag is deprecated][37636]. It does nothing.format!
expander recognizes incorrect printf
and shell-stylemk_ty
calls in Ty::super_fold_with
][37705]mk_ty
calls in Ty::super_fold_with
][37979]UnificationTable::probe
][37848]scope_auxiliary
to cut RSS by 10%][37764]HirVec<P<T>>
to HirVec<T>
in hir::Expr
][37642]rust-cbindgen is shipped in version 0.14.1.
This update was imported from the SUSE:SLE-15:Update update project.
Patch Instructions:
To install this openSUSE Security Update use the SUSE recommended installation methods
like YaST online_update or “zypper patch”.
Alternatively you can run the command listed for your product:
openSUSE Leap 15.1:
zypper in -t patch openSUSE-2020-933=1
OS | Version | Architecture | Package | Version | Filename |
---|---|---|---|---|---|
openSUSE Leap | 15.1 | i586 | < - openSUSE Leap 15.1 (i586 x86_64): | - openSUSE Leap 15.1 (i586 x86_64):.i586.rpm | |
openSUSE Leap | 15.1 | x86_64 | < - openSUSE Leap 15.1 (i586 x86_64): | - openSUSE Leap 15.1 (i586 x86_64):.x86_64.rpm | |
openSUSE Leap | 15.1 | noarch | < - openSUSE Leap 15.1 (noarch): | - openSUSE Leap 15.1 (noarch):.noarch.rpm | |
openSUSE Leap | 15.1 | x86_64 | < - openSUSE Leap 15.1 (x86_64): | - openSUSE Leap 15.1 (x86_64):.x86_64.rpm |