The Ferrocene Language Specification (FLS) is an effort of Ferrocene, a collaboration between Ferrous Systems and AdaCore to bring a qualified Rust toolchain to safety-critical environments. One of the requirements for qualifying such a toolchain is to describe how the compiler should behave when compiling source code, which means a specification of the programming language.
The FLS is available on GitHub and has been released under an open source license.
The FLS is not here to replace Rust’s decision-making process and it’s not a canonical definition of the Rust language. We’re documenting the current behavior of the rustc compiler in a standardized form so that it can be qualified. If there is a mismatch between what the FLS says and how the compiler behaves, the specification will be updated.
On that note, we want to emphasize this is a first draft and we are aware that there are some parts of the specification that are incomplete or incorrect. We’re going to keep improving the FLS in the open, with the plan of finalizing it by the end of the year.
We at Ferrous Systems and AdaCore are on-track to get Ferrocene qualification-ready by the end of the year. As this is our focus for the near future, the small group of people working on Ferrocene might not be able to accept all contributions to the FLS coming from the community. Check out our contribution guidelines for more information on that.
While we created this document for Ferrocene, we know there is interest in this project and we believe a document like the FLS can benefit the wider Rust community.
Thanks for your interest! If you or your teams are currently investigating this kind of specification effort, reach out to us at email@example.com.