<div class="container">
<h1>Recommended update for rust, rust1.70</h1>
<table class="table table-striped table-bordered">
<tbody>
<tr>
<th>Announcement ID:</th>
<td>SUSE-RU-2023:2559-1</td>
</tr>
<tr>
<th>Rating:</th>
<td>moderate</td>
</tr>
<tr>
<th>References:</th>
<td>
<ul>
</ul>
</td>
</tr>
<tr>
<th>Affected Products:</th>
<td>
<ul class="list-group">
<li class="list-group-item">Development Tools Module 15-SP4</li>
<li class="list-group-item">Development Tools Module 15-SP5</li>
<li class="list-group-item">openSUSE Leap 15.4</li>
<li class="list-group-item">openSUSE Leap 15.5</li>
<li class="list-group-item">SUSE Linux Enterprise Desktop 15 SP4</li>
<li class="list-group-item">SUSE Linux Enterprise Desktop 15 SP5</li>
<li class="list-group-item">SUSE Linux Enterprise High Performance Computing 15 SP4</li>
<li class="list-group-item">SUSE Linux Enterprise High Performance Computing 15 SP5</li>
<li class="list-group-item">SUSE Linux Enterprise Real Time 15 SP4</li>
<li class="list-group-item">SUSE Linux Enterprise Real Time 15 SP5</li>
<li class="list-group-item">SUSE Linux Enterprise Server 15 SP4</li>
<li class="list-group-item">SUSE Linux Enterprise Server 15 SP5</li>
<li class="list-group-item">SUSE Linux Enterprise Server for SAP Applications 15 SP4</li>
<li class="list-group-item">SUSE Linux Enterprise Server for SAP Applications 15 SP5</li>
<li class="list-group-item">SUSE Manager Proxy 4.3</li>
<li class="list-group-item">SUSE Manager Retail Branch Server 4.3</li>
<li class="list-group-item">SUSE Manager Server 4.3</li>
</ul>
</td>
</tr>
</tbody>
</table>
<p>An update that can now be installed.</p>
<h2>Description:</h2>
<p>This update for rust, rust1.70 fixes the following issues:</p>
<p>Changes in rust:</p>
<ul>
<li>Update to version 1.70.0 - for details see the rust1.70 package</li>
</ul>
<p>Changes in rust1.70:</p>
<h1>Version 1.70.0 (2023-06-01)</h1>
<h2>Language</h2>
<ul>
<li>Relax ordering rules for <code>asm!</code> operands</li>
<li>Properly allow macro expanded <code>format_args</code> invocations to uses captures</li>
<li>Lint ambiguous glob re-exports</li>
<li>Perform const and unsafe checking for expressions in <code>let _ = expr</code> position.</li>
</ul>
<h2>Compiler</h2>
<ul>
<li>Extend -Cdebuginfo with new options and named aliases
This provides a smaller version of debuginfo for cases that only need line number information
(<code>-Cdebuginfo=line-tables-only</code>), which may eventually become the default for <code>-Cdebuginfo=1</code>.</li>
<li>Make <code>unused_allocation</code> lint against <code>Box::new</code> too</li>
<li>Detect uninhabited types early in const eval</li>
<li>Switch to LLD as default linker for {arm,thumb}v4t-none-eabi</li>
<li>Add tier 3 target <code>loongarch64-unknown-linux-gnu</code></li>
<li>Add tier 3 target for <code>i586-pc-nto-qnx700</code> (QNX Neutrino RTOS, version 7.0)</li>
<li>Insert alignment checks for pointer dereferences as debug assertions
This catches undefined behavior at runtime, and may cause existing code to fail.</li>
</ul>
<p>Refer to Rust's platform support page
for more information on Rust's tiered platform support.</p>
<h2>Libraries</h2>
<ul>
<li>Document NonZeroXxx layout guarantees</li>
<li>Windows: make <code>Command</code> prefer non-verbatim paths</li>
<li>Implement Default for some alloc/core iterators</li>
<li>Fix handling of trailing bare CR in str::lines</li>
<li>allow negative numeric literals in <code>concat!</code></li>
<li>Add documentation about the memory layout of <code>Cell</code></li>
<li>Use <code>partial_cmp</code> to implement tuple <code>lt</code>/<code>le</code>/<code>ge</code>/<code>gt</code></li>
<li>Stabilize <code>atomic_as_ptr</code></li>
<li>Stabilize <code>nonnull_slice_from_raw_parts</code></li>
<li>Partial stabilization of <code>once_cell</code></li>
<li>Stabilize <code>nonzero_min_max</code></li>
<li>Flatten/inline format_args!() and (string and int) literal arguments into format_args!()</li>
<li>Stabilize movbe target feature</li>
<li>don't splice from files into pipes in io::copy</li>
<li>Add a builtin unstable <code>FnPtr</code> trait that is implemented for all function pointers
This extends <code>Debug</code>, <code>Pointer</code>, <code>Hash</code>, <code>PartialEq</code>, <code>Eq</code>, <code>PartialOrd</code>, and <code>Ord</code>
implementations for function pointers with all ABIs.</li>
</ul>
<h2>Stabilized APIs</h2>
<ul>
<li><code>NonZero*::MIN/MAX</code></li>
<li><code>BinaryHeap::retain</code></li>
<li><code>Default for std::collections::binary_heap::IntoIter</code></li>
<li><code>Default for std::collections::btree_map::{IntoIter, Iter, IterMut}</code></li>
<li><code>Default for std::collections::btree_map::{IntoKeys, Keys}</code></li>
<li><code>Default for std::collections::btree_map::{IntoValues, Values}</code></li>
<li><code>Default for std::collections::btree_map::Range</code></li>
<li><code>Default for std::collections::btree_set::{IntoIter, Iter}</code></li>
<li><code>Default for std::collections::btree_set::Range</code></li>
<li><code>Default for std::collections::linked_list::{IntoIter, Iter, IterMut}</code></li>
<li><code>Default for std::vec::IntoIter</code></li>
<li><code>Default for std::iter::Chain</code></li>
<li><code>Default for std::iter::Cloned</code></li>
<li><code>Default for std::iter::Copied</code></li>
<li><code>Default for std::iter::Enumerate</code></li>
<li><code>Default for std::iter::Flatten</code></li>
<li><code>Default for std::iter::Fuse</code></li>
<li><code>Default for std::iter::Rev</code></li>
<li><code>Default for std::slice::Iter</code></li>
<li><code>Default for std::slice::IterMut</code></li>
<li><code>Rc::into_inner</code></li>
<li><code>Arc::into_inner</code></li>
<li><code>std::cell::OnceCell</code></li>
<li><code>Option::is_some_and</code></li>
<li><code>NonNull::slice_from_raw_parts</code></li>
<li><code>Result::is_ok_and</code></li>
<li><code>Result::is_err_and</code></li>
<li><code>std::sync::atomic::Atomic*::as_ptr</code></li>
<li><code>std::io::IsTerminal</code></li>
<li><code>std::os::linux::net::SocketAddrExt</code></li>
<li><code>std::os::unix::net::UnixDatagram::bind_addr</code></li>
<li><code>std::os::unix::net::UnixDatagram::connect_addr</code></li>
<li><code>std::os::unix::net::UnixDatagram::send_to_addr</code></li>
<li><code>std::os::unix::net::UnixListener::bind_addr</code></li>
<li><code>std::path::Path::as_mut_os_str</code></li>
<li><code>std::sync::OnceLock</code></li>
</ul>
<h2>Cargo</h2>
<ul>
<li>Add <code>CARGO_PKG_README</code></li>
<li>Make <code>sparse</code> the default protocol for crates.io</li>
<li>Accurately show status when downgrading dependencies</li>
<li>Use registry.default for login/logout</li>
<li>Stabilize <code>cargo logout</code></li>
</ul>
<h2>Misc</h2>
<ul>
<li>Stabilize rustdoc <code>--test-run-directory</code></li>
</ul>
<h2>Compatibility Notes</h2>
<ul>
<li>Prevent stable <code>libtest</code> from supporting <code>-Zunstable-options</code></li>
<li>Perform const and unsafe checking for expressions in <code>let _ = expr</code> position.</li>
<li>WebAssembly targets enable <code>sign-ext</code> and <code>mutable-globals</code> features in codegen
This may cause incompatibility with older execution environments.</li>
<li>Insert alignment checks for pointer dereferences as debug assertions
This catches undefined behavior at runtime, and may cause existing code to fail.</li>
</ul>
<h2>Patch Instructions:</h2>
<p>
To install this SUSE Moderate update use the SUSE recommended
installation methods like YaST online_update or "zypper patch".<br/>
Alternatively you can run the command listed for your product:
</p>
<ul class="list-group">
<li class="list-group-item">
Development Tools Module 15-SP5
<br/>
<code>zypper in -t patch SUSE-SLE-Module-Development-Tools-15-SP5-2023-2559=1</code>
</li>
<li class="list-group-item">
openSUSE Leap 15.4
<br/>
<code>zypper in -t patch openSUSE-SLE-15.4-2023-2559=1</code>
</li>
<li class="list-group-item">
openSUSE Leap 15.5
<br/>
<code>zypper in -t patch openSUSE-SLE-15.5-2023-2559=1</code>
</li>
<li class="list-group-item">
Development Tools Module 15-SP4
<br/>
<code>zypper in -t patch SUSE-SLE-Module-Development-Tools-15-SP4-2023-2559=1</code>
</li>
</ul>
<h2>Package List:</h2>
<ul>
<li>
Development Tools Module 15-SP5 (aarch64 ppc64le s390x x86_64)
<ul>
<li>rust1.70-debuginfo-1.70.0-150400.9.3.1</li>
<li>cargo-1.70.0-150400.24.18.1</li>
<li>cargo1.70-debuginfo-1.70.0-150400.9.3.1</li>
<li>cargo1.70-1.70.0-150400.9.3.1</li>
<li>rust-1.70.0-150400.24.18.1</li>
</ul>
</li>
<li>
Development Tools Module 15-SP5 (aarch64 ppc64le s390x x86_64 nosrc)
<ul>
<li>rust1.70-1.70.0-150400.9.3.1</li>
</ul>
</li>
<li>
openSUSE Leap 15.4 (aarch64 ppc64le s390x x86_64)
<ul>
<li>rust1.70-debuginfo-1.70.0-150400.9.3.1</li>
<li>cargo-1.70.0-150400.24.18.1</li>
<li>cargo1.70-debuginfo-1.70.0-150400.9.3.1</li>
<li>cargo1.70-1.70.0-150400.9.3.1</li>
<li>rust-1.70.0-150400.24.18.1</li>
</ul>
</li>
<li>
openSUSE Leap 15.4 (aarch64 ppc64le s390x x86_64 nosrc)
<ul>
<li>rust1.70-1.70.0-150400.9.3.1</li>
</ul>
</li>
<li>
openSUSE Leap 15.5 (aarch64 ppc64le s390x x86_64)
<ul>
<li>rust1.70-debuginfo-1.70.0-150400.9.3.1</li>
<li>cargo-1.70.0-150400.24.18.1</li>
<li>cargo1.70-debuginfo-1.70.0-150400.9.3.1</li>
<li>cargo1.70-1.70.0-150400.9.3.1</li>
<li>rust-1.70.0-150400.24.18.1</li>
</ul>
</li>
<li>
openSUSE Leap 15.5 (aarch64 ppc64le s390x x86_64 nosrc)
<ul>
<li>rust1.70-1.70.0-150400.9.3.1</li>
</ul>
</li>
<li>
Development Tools Module 15-SP4 (aarch64 ppc64le s390x x86_64 nosrc)
<ul>
<li>rust1.70-1.70.0-150400.9.3.1</li>
</ul>
</li>
<li>
Development Tools Module 15-SP4 (aarch64 ppc64le s390x x86_64)
<ul>
<li>rust1.70-debuginfo-1.70.0-150400.9.3.1</li>
<li>cargo-1.70.0-150400.24.18.1</li>
<li>cargo1.70-debuginfo-1.70.0-150400.9.3.1</li>
<li>cargo1.70-1.70.0-150400.9.3.1</li>
<li>rust-1.70.0-150400.24.18.1</li>
</ul>
</li>
</ul>
</div>