13. Constraints¶
13.1. Source code related¶
13.1.1. Only use certified subset¶
-
Identifier:
CORE_CSTR_0010_SUBSET¶
Associated requirement ID: CORE_AVD_SUBSET_001.
The user shall only use the certified subset of the core library. The list of the certified subset is documented in the Certified core library API docs. Compliance must be proven by following Compliance with subset.
13.1.2. Only use stable functions¶
-
Identifier:
CORE_CSTR_0030_SUBSET_ONLY_STABLE¶
Associated requirement ID: CORE_AVD_SUBSET_001.
The user shall not use experimental functions in the certified subset of the core library.
13.1.3. Verify macro correctness¶
-
Identifier:
CORE_CSTR_0060_VERIFY_MACROS¶
Associated requirement ID: CORE_AVD_MACROS_002.
The user shall verify that all code generated by macros is correct.
13.1.4. Verify architecture specific code¶
-
Identifier:
CORE_CSTR_0060_VERIFY_ARCH¶
Associated requirement ID: CORE_AVD_ARCH_003.
Architecture specific code needs to be reasoned about and tested in the context of your application. We only guarantee that the compiler emits the correct instructions that you asked for, not that the instructions make sense in context. This becomes and obligation of the user. Architecture specific functions are:
All functions in the
core::archmodulecore::hint::spin_loop
13.2. Tool related¶
13.2.1. Compile with panic abort¶
-
Identifier:
CORE_CSTR_0020_PANIC_ABORT¶
Associated requirement ID: CORE_AVD_SUBSET_001.
The user shall always provide the -C panic=abort option to rustc.
13.2.2. Use matching version of the core library and rustc¶
-
Identifier:
CORE_CSTR_0040_MATCHING_VERSION¶
The user shall verify that the version of the core library and the version of rustc used to compile code match. This is ensured by following the Installation Procedures.