Next Ferrocene release upcoming

Caution

This version of Ferrocene has not been released yet. The contents of this page might change before the release, and they should not be relied upon.

This page contains the changes to be introduced in the upcoming Ferrocene release.

New features

  • New Supported targets have been added. Supported targets can often be qualified or quality managed upon request. The new targets are:

    • Armv8-R AArch64 bare-metal (hard-float) (aarch64v8r-unknown-none)

    • Armv8-A RHIVOS2 (Linux, glibc) (aarch64-rhivos2-linux-gnu)

    • s390x Linux (glibc) (s390x-unknown-linux-gnu)

    • PowerPC64 Linux (glibc, little-endian) (powerpc64le-unknown-linux-gnu)

  • Certify the core::fmt module.

    • This module contains the code to format Rust data structures into human-readable output. This enables customers to use this functionality in certified contexts.

    • Retire “certified panic runtime” compilation targets. They were used to certify panicking without certifying the formatting code, but are now obsolete. Following targets are being retired:

      • aarch64-ferrocene-none

      • thumbv7em-ferrocene-none-eabi

      • thumbv7em-ferrocene-none-eabihf

      • x86_64-ferrocene-none

  • Add 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 Certified subset.

    • For more background on why this change is being made, see Callgraph Analysis.

    • Retire “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 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:

    • Armv8-R AArch64 bare-metal (soft-float) (aarch64v8r-unknown-none-softfloat)