11.. SPDX-License-Identifier: MIT OR Apache-2.0
22 SPDX-FileCopyrightText: The Ferrocene Developers
3+ SPDX-FileCopyrightText: The Rust Project Contributors
34
45================================
5- Ferrocene Language Specification
6+ FLS
67================================
78
89.. raw :: html
910
10- <p align =" center" ><a href =" https://spec.ferrocene.dev " >Read the
11- specification » ; </a ></p >
11+ <p align =" center" ><a href =" https://rust-lang.github.io/fls " >Read the document
12+ » ; </a ></p >
1213
13- The Ferrocene Language Specification (FLS) is a document describing the Rust
14- language. It was created as one of the prerequisites for qualifying
15- `Ferrocene `_, a Rust toolchain qualified for safety-critical environments. The
16- FLS is compiled of existing Rust documentation, but presented with a rigorous
17- structure in order to meet the requirements of qualification.
14+ The FLS is a document describing aspects of the Rust language for Rust toolchain
15+ qualification purposes.
1816
19- The FLS is not intended to be used as the normative specification of the Rust
20- language, nor is it meant to replace the decision-making processes of the Rust
21- project. Any difference between the FLS and the behavior of the Rust compiler
22- is considered an error on our part and the FLS will be updated accordingly.
17+ It was created by Ferrous Systems, in an original joint effort with AdaCore, as
18+ one of the prerequisites for qualifying `Ferrocene `_, a Rust toolchain qualified
19+ for safety-critical environments. The FLS is compiled of existing Rust
20+ documentation, but presented with a rigorous structure in order to meet the
21+ requirements of qualification.
2322
24- The Ferrocene Language Specification text is licensed under either the ``MIT ``
25- or ``Apache-2.0 `` licenses, at your option. Individual files might have
26- different licensing. Licensing metadata is present in each file, and the full
27- licenses text is present in the ``LICENSES/ `` directory.
23+ The FLS is not intended to be used as *the * normative specification of the Rust
24+ language (see the `Rust Reference `_), nor is it meant to replace the
25+ decision-making processes of the Rust project. Any difference between the FLS
26+ and the behavior of the Rust compiler is considered an error on our part and the
27+ FLS will be updated accordingly.
28+
29+ The FLS text is licensed under either the ``MIT `` or ``Apache-2.0 `` licenses, at
30+ your option. Individual files might have different licensing. Licensing metadata
31+ is present in each file, and the full licenses text is present in the
32+ ``LICENSES/ `` directory.
2833
2934.. _Ferrocene : https://ferrocene.dev
35+ .. _Rust Reference : https://doc.rust-lang.org/reference/
36+
37+ Acknowledging Ferrous Systems
38+ =============================
39+
40+ The Rust Project would like to thank `Ferrous Systems `_ for `donating `_ the FLS
41+ (formerly the Ferrocene Language Specification) to the Rust Project for its
42+ continued maintenance and development.
43+
44+ As a brief history, the FLS is a description of the Rust programming language,
45+ developed by Ferrous Systems and `AdaCore `_ in July 2022 as part of Ferrocene, a
46+ Rust compiler and toolchain designed for safety-critical and regulated
47+ industries. The FLS provides a structured and detailed reference for Rust's
48+ syntax, semantics, and behavior, serving as a foundation for verification,
49+ compliance, and standardization efforts. The FLS represented a major step toward
50+ describing Rust in a way that aligns with industry requirements, particularly in
51+ high-assurance domains. Ferrous Systems had been the sole steward of the FLS
52+ since July 2023.
53+
54+ .. _Ferrous Systems : https://ferrous-systems.com
55+ .. _donating : https://rustfoundation.org/media/ferrous-systems-donates-ferrocene-language-specification-to-rust-project/
56+ .. _AdaCore : https://www.adacore.com
3057
3158Building the specification
3259==========================
3360
34- FLS uses `Sphinx `_ to build a rendered version of the specification, and `uv `_ to install and manage
35- Python dependencies (including Sphinx itself). To simplify building the rendered version, we created
36- a script called ``make.py `` that takes care of invoking Sphinx with the right flags.
61+ FLS uses `Sphinx `_ to build a rendered version of the specification, and `uv `_
62+ to install and manage Python dependencies (including Sphinx itself). To simplify
63+ building the rendered version, we created a script called ``make.py `` that takes
64+ care of invoking Sphinx with the right flags.
3765
3866You can build the rendered version by running::
3967
@@ -48,8 +76,8 @@ building::
4876
4977The rendered version will be available in ``build/html/ ``.
5078
51- You can also start a local server on port 8000 with automatic rebuild and
52- reload whenever you change a file by passing the ``-s `` flag::
79+ You can also start a local server on port 8000 with automatic rebuild and reload
80+ whenever you change a file by passing the ``-s `` flag::
5381
5482 ./make.py -s
5583
@@ -70,8 +98,9 @@ rendered documentation.
7098Updating build dependencies
7199===========================
72100
73- The FLS uses ``uv `` to manage the Python dependencies used for builds. If you change the list of
74- dependencies in ``pyproject.toml `` they will automatically be installed the next time you run
75- ``make.py ``. If you want to update the packages in the lockfile, run::
101+ The FLS uses ``uv `` to manage the Python dependencies used for builds. If you
102+ change the list of dependencies in ``pyproject.toml `` they will automatically be
103+ installed the next time you run ``make.py ``. If you want to update the packages
104+ in the lockfile, run::
76105
77106 uv lock --upgrade
0 commit comments