|
| 1 | +# **Coding Guidelines Subcommittee Meeting on 2026-04-08 @ 1600 CEST / 1100 EDT** |
| 2 | + |
| 3 | +[Link](https://www.worldtimebuddy.com/?qm=1&lid=5,12,2643743,8,1850147,100,14&h=5&date=2026-4-8&sln=11-12&hf=1) to meeting time in common time zones. |
| 4 | + |
| 5 | +| Search Key | Description | |
| 6 | +| :---- | :---- | |
| 7 | +| \[todo\] | Action Item | |
| 8 | +| \[decision\] | Something decided on | |
| 9 | +| \[important\] | Key information | |
| 10 | + |
| 11 | +## **Agenda** |
| 12 | + |
| 13 | +1. Solicitation of notetaker |
| 14 | +2. Acceptance of [Previous Meeting Minutes](https://github.com/rustfoundation/safety-critical-rust-consortium/blob/main/subcommittee/coding-guidelines/meetings/2026-04-01/minutes.md) |
| 15 | +3. Introduction of new members |
| 16 | +4. Review batches for [CERT C \=\> Rust Mapping](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/issues/336) (Pete) |
| 17 | + - Thank you to everyone for your support in providing feedback |
| 18 | + - Félix will go over this and come back in a week or two with thoughts |
| 19 | +5. Coverage of MISRA C and CERT C in 2026 (Félix / Markus) |
| 20 | + - MISRA C one has a [PR up](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/pull/432) from Markus |
| 21 | + - Félix met with Markus and will walk us through the "harmonized" version that should work for MISRA, CERT both |
| 22 | +6. Overview of [Safety-Critical Rust](https://rust-lang.github.io/rust-project-goals/2026/roadmap-safety-critical-rust.html) \- Rust Project Goals Roadmap (Pete) |
| 23 | + - Soliciting those interested in [Establish a Spot for Safety-Critical Lints in Clippy](https://rust-lang.github.io/rust-project-goals/2026/safety-critical-lints-in-clippy.html) goal |
| 24 | + - Explanation of the work, as Pete understands from initial discussions with t-clippy |
| 25 | +7. Proposals and ideas for new rules (all) |
| 26 | +8. Progress on ongoing tasks (all) |
| 27 | +9. Round table |
| 28 | + |
| 29 | +## **Check-in area** |
| 30 | + |
| 31 | +**Please add your name, and an emoji that describes your day.** |
| 32 | + |
| 33 | +* Pete LeVasseur 🦀✍️ |
| 34 | +* David Svoboda (-: |
| 35 | +* Arshad Mahmood 🌞 |
| 36 | +* Max Jacinto ⚽ |
| 37 | +* Samuel Wright 🌞 |
| 38 | +* Andreas Weis |
| 39 | +* Félix Fischer ☕ |
| 40 | +* Oreste Bernardi 🏥 |
| 41 | +* Markus Hosch 👾 |
| 42 | +* William Barsse 🦀 |
| 43 | +* Jason Newcomb ☕ |
| 44 | +* Achim Kriso 🙂 |
| 45 | + |
| 46 | +**Notetaker:** |
| 47 | + |
| 48 | +* Andreas Weis |
| 49 | + |
| 50 | +For tips on how we take notes in the Safety-Critical Rust Consortium, please see the [Meeting Notetaker Role](https://github.com/rustfoundation/safety-critical-rust-consortium/blob/main/docs/notetaker-role.md) doc. |
| 51 | + |
| 52 | +## **Housekeeping section** |
| 53 | + |
| 54 | +* Document space: [coding-guidelines](https://github.com/rustfoundation/safety-critical-rust-consortium/tree/main/subcommittee/coding-guidelines) |
| 55 | +* Zulip: [safety-critical-consortium: Coding Guidelines](https://rust-lang.zulipchat.com/#narrow/channel/445688-safety-critical-consortium/topic/Coding.20Guidelines) |
| 56 | +* [Kanban board](https://github.com/orgs/rustfoundation/projects/1/views/3) |
| 57 | + * [`contributor experience`](https://github.com/orgs/rustfoundation/projects/1/views/4) view |
| 58 | + * [`coding guideline`](https://github.com/orgs/rustfoundation/projects/1/views/5) view |
| 59 | + |
| 60 | +## **Tasks** |
| 61 | + |
| 62 | +* \[todo\] Pete LeVasseur: Clean up meeting minutes for 2026-04-01 Meeting |
| 63 | + |
| 64 | +## **Meeting Minutes** |
| 65 | + |
| 66 | +* Introduction of new members |
| 67 | +* CERT-C mapping |
| 68 | + * Rules were reviewed in smaller groups, feedback was given and is currently being worked through. Current plan is to complete this by next week. |
| 69 | +* Spreadsheet showing Mapping of MISRA C and CERT C |
| 70 | + * [PR is prepared](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/pull/432) for a *Standards Matrices* section in the Appendix of the guidelines document |
| 71 | + * Goal is to give people a shortcut how familiar rules from other guidelines are mapped into the Rust world |
| 72 | + * MISRA headlines can not be included in the table for IP reasons, so it only contains the rule numbers in the table |
| 73 | + * Some rules don’t work the same for Rust, e.g. Rust Octals use different (and less confusing) literals than C, so the rationale for the C rule no longer applies |
| 74 | + * Table 3 contains rules that are not applicable to Rust along with a comment explaining why it is safe to omit them for Rust. This table needs more work, many entries don’t have comments and existing comments are probably not detailed enough. |
| 75 | + * Table 1 also misses entries for Rust guidelines that the rule maps to. Links need to be added there. |
| 76 | + * We should focus on Mandatory and Required rules first, Advisory rules may be treated as lower priority |
| 77 | + * It was discussed whether the table should be maintained in a Google Sheet for easier editing. It was agreed that the only source of truth should be the .rst file in the repo, maintaining a Google Sheet on the side is not sensible. The rate of change is expected to go down significantly once the initial version of the table is finished. |
| 78 | + * Rust has the additional distinction between safe and unsafe parts, so rule applicability needs to be evaluated for those separately. |
| 79 | +* Rust Safety Critical Project goals and roadmap \- Writing clippy lints |
| 80 | + * Some existing lints could use better explanation and rationale texts, we could contribute there |
| 81 | + * Additional lints for new guidelines. We could implement them and gather feedback from clippy maintainers how to write proper lints |
| 82 | + * Process for adding new lints to clippy may be slow. Having a separate process to try out and experiment with new rules quickly might make sense for us. The idea is to have a “walled off section” for experimentation. |
| 83 | + * Some lints require global reasoning, which is not a good fit for clippy. Including this is in the default ruleset for clippy is probably undesirable. Clippy only works one-crate-at-a-time. Analysing across crate boundaries is not feasible. |
| 84 | + * Lints with high false positive rates? High false positive rate is probably fine. It may restrict which category a lint ends up in, but it is not a problem in principle. |
| 85 | + 1. [https://doc.rust-lang.org/stable/clippy/lints.html\#pedantic](https://doc.rust-lang.org/stable/clippy/lints.html#pedantic) |
| 86 | + * lints requiring annotations for being decidable? |
| 87 | + 1. Some existing lints rely on annotations on types. Annotation is not part of the type, but used by the linter to influence diagnostics. |
| 88 | + 2. Clippy would prefer if annotations are not necessary for a check to work, but it can be discussed. |
| 89 | + 3. All clippy::\* attributes are for use by clippy. |
| 90 | + 4. It may be useful for safety critical to be able to compile a list of all attributes that are used to deviate from clippy warnings. This can be an important artifact to hand to an assessor for safety certification. |
| 91 | + * Easy way to configure a set of lints in bulk? Currently requires providing [a pre-written config file](https://doc.rust-lang.org/stable/clippy/configuration.html). There is an [RFC for lint profiles](https://github.com/rust-lang/rfcs/pull/3926) which may be helpful in this context, but it still requires someone to provide the profile. |
| 92 | + * Question: Can one lint fall under multiple lint groups? |
| 93 | + 1. May help with the SCRC request for lints to be able to be turned on depending on different levels of safety-critical software and different standards |
| 94 | +* Meeting adjourned |
| 95 | + |
| 96 | +## **Material** |
| 97 | + |
| 98 | +Any material to read before the meeting should be included here. |
0 commit comments