.. SPDX-License-Identifier: MIT OR Apache-2.0 SPDX-FileCopyrightText: The Ferrocene Developers Ferrocene 26.05.0 ================= New features ------------ * New targets are now supported and qualified for safety critical use. The new targets are: * :target-with-tuple:`aarch64-rhivos2-linux-gnu` * Note: Only when compiled by a :target-with-tuple:`aarch64-unknown-linux-gnu` host * :target-with-tuple:`aarch64-unknown-linux-gnu` * Note: Only when compiling a :target-with-tuple:`aarch64-rhivos2-linux-gnu` target * The ``proc_macro`` crate type is now permitted. * Two qualified targets which offered target CPU features have been removed, as the base targets now permit the use of ``-C target-cpu`` in the same capacity. For more information, see the respective base target pages in the User Manual. * :target-with-tuple:`thumbv7em-none-eabihf` can be used with ``-C target-cpu=cortex-m4`` in place of :target-with-tuple:`thumbv7em-m4-none-eabihf` * :target-with-tuple:`aarch64-unknown-none` can be used with ``-C target-cpu=cortex-a53`` in place of :target-with-tuple:`aarch64-a53-none` * The ``core::fmt`` module has been certified to ISO 26262 (ASIL B) and IEC 61508 (SIL 2) * This module contains the code to format Rust data structures into human-readable output. This enables customers to use this functionality in certified contexts. * Retired "certified panic runtime" compilation targets. They were used to certify panicking without certifying the formatting code, but are now obsolete. Following targets are now retired: * ``aarch64-ferrocene-none`` can be replaced with ``aarch64-unknown-none`` * ``thumbv7em-ferrocene-none-eabi`` can be replaced with ``thumbv7em-none-eabi`` * ``thumbv7em-ferrocene-none-eabihf`` can be replaced with ``thumbv7em-none-eabihf`` * ``x86_64-ferrocene-none`` can be replaced with ``x86_64-unknown-none`` * Added a ``ferrocene::unvalidated`` lint which detects whether your code uses functions that are not in the certified subset of the standard library. * For information on how to use this lint, see :doc:`safety-manual:core/subset`. * For more background on why this change is being made, see `Callgraph Analysis `_. * Retired "certified subset" compilation targets. They were used to detect use of uncertified functionality, but are now obsolete. The following targets are being retired: * ``aarch64-unknown-ferrocene.subset`` * ``thumbv7em-ferrocene.subset-eabi`` * ``thumbv7em-ferrocene.subset-eabihf`` * ``x86_64-unknown-ferrocene.subset`` * New Supported targets have been added. Supported targets can often be qualified or quality managed upon request. The new targets are: * :target-with-tuple:`aarch64v8r-unknown-none` * :target-with-tuple:`s390x-unknown-linux-gnu` * :target-with-tuple:`powerpc64le-unknown-linux-gnu` New experimental features ------------------------- Experimental features are not qualified for safety critical use, and are shipped as a preview. * Experimental support has been added for a new target. Note that experimental targets are not qualified for safety critical use. The new target is: * :target-with-tuple:`aarch64v8r-unknown-none-softfloat` Rust changes ------------ This release includes the following changes introduced by the upstream Rust project. Note that this changelog is maintained by upstream. The target support changes described here describe Rust's support levels, and have no correlation to the targets and platforms supported by Ferrocene. .. rust-changelog:: :from: 1.93.0 :to: 1.95.0