|
| 1 | +# **Coding Guidelines Subcommittee Meeting on 2026-04-15 @ 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-15&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-08/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 | + - Félix can share updates from his side on reviewing feedback |
| 18 | + - Let's split up again, to get some feedback on batches 1 & 2 |
| 19 | + - [\#427 \[CERT C Review Batch 1/5\] Review proposed Rust categorization](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/issues/427) |
| 20 | + * Arshad |
| 21 | + * Arthur |
| 22 | + * Douglas |
| 23 | + * Félix |
| 24 | + - [\#428 \[CERT C Review Batch 2/5\] Review proposed Rust categorization](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/issues/428) |
| 25 | + * Satoshi |
| 26 | + * Max |
| 27 | + * Pete |
| 28 | + * William |
| 29 | +5. Coverage of MISRA C and CERT C in 2026 (Félix / Markus) |
| 30 | + - MISRA C one has a [PR up](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/pull/432) from Markus |
| 31 | + - Félix met with Markus and will walk us through the "harmonized" version that should work for MISRA, CERT both |
| 32 | +6. Interest in the MISRA C++ mapping |
| 33 | + - Please register interest on [this Zulip thread](https://rust-lang.zulipchat.com/#narrow/channel/579369-safety-critical-consortium.2Fcoding-guidelines/topic/MISRA.20C.2B.2B.20Mapping.20Interest/with/584764785) |
| 34 | + - Pete/Alex/Joel are working out how we can have some kind of copy of the MISRA documents (C, C++) held in the jurisdiction of the Rust Foundation in support of members to be able to work on coding guidelines |
| 35 | +7. Overview of [Safety-Critical Rust](https://rust-lang.github.io/rust-project-goals/2026/roadmap-safety-critical-rust.html) \- Rust Project Goals Roadmap (Pete) |
| 36 | + - 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 |
| 37 | + - Explanation of the work, as Pete understands from initial discussions with t-clippy |
| 38 | +8. Proposals and ideas for new rules (all) |
| 39 | +9. Progress on ongoing tasks (all) |
| 40 | +10. Round table |
| 41 | + |
| 42 | +## **Check-in area** |
| 43 | + |
| 44 | +**Please add your name, and an emoji that describes your day.** |
| 45 | + |
| 46 | +* Pete LeVasseur ☕☕ |
| 47 | +* Oreste Bernardi🏥 |
| 48 | +* Samuel Tardieu 🎺 |
| 49 | +* Jason Newcomb ❄️ |
| 50 | +* Douglas Deslauriers 🌞 |
| 51 | +* Arshad Mahmood 🌦️ |
| 52 | +* Félix Fischer 🙂 |
| 53 | +* William Barsse |
| 54 | +* Max Jacinto 🫠 |
| 55 | +* Arthur Hicken 🌄🙂 |
| 56 | +* Kaneko Satoshi |
| 57 | + |
| 58 | +**Notetaker:** |
| 59 | + |
| 60 | +* Douglas Deslauriers |
| 61 | + |
| 62 | +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. |
| 63 | + |
| 64 | +## **Housekeeping section** |
| 65 | + |
| 66 | +* Document space: [coding-guidelines](https://github.com/rustfoundation/safety-critical-rust-consortium/tree/main/subcommittee/coding-guidelines) |
| 67 | +* Zulip: [safety-critical-consortium: Coding Guidelines](https://rust-lang.zulipchat.com/#narrow/channel/445688-safety-critical-consortium/topic/Coding.20Guidelines) |
| 68 | +* [Kanban board](https://github.com/orgs/rustfoundation/projects/1/views/3) |
| 69 | + * [`contributor experience`](https://github.com/orgs/rustfoundation/projects/1/views/4) view |
| 70 | + * [`coding guideline`](https://github.com/orgs/rustfoundation/projects/1/views/5) view |
| 71 | + |
| 72 | +## **Tasks** |
| 73 | + |
| 74 | +* \[Pete\] Determine a list of people interested in Clippy integration and working with them |
| 75 | +* \[Pete\] Determine an easy Clippy lint for trial run |
| 76 | +* \[Pete\] Reach out to Markus about MISRA C mapping |
| 77 | +* \[Doug\] Open separate issue for PRE31 |
| 78 | + |
| 79 | +## **Meeting Minutes** |
| 80 | + |
| 81 | +* Previous meeting notes |
| 82 | + * No objections |
| 83 | +* Clippy collaboration |
| 84 | + * The safety critical rust consortium members don’t want to have to use another separate tool to verify coding guidelines |
| 85 | + * There are some coding guidelines which are in a good enough space that Clippy lints could start to be implemented |
| 86 | + * Suggestion to have a few interactive sessions to help introduce our team to implementing or starting to implement lints |
| 87 | + 1. What to look for when opening an issue |
| 88 | + 2. How to best provide suggestions |
| 89 | + * It was suggested to open a new issue/PR against Clippy with the SCRC tag |
| 90 | + 1. It is possible to open issues without the intention to implement a lint, a contributor will hopefully be found |
| 91 | + * During collaboration, the SCRC team is proposed as mostly reviewing the implementation of lints to ensure they work with all examples |
| 92 | + * There is are existing tutorial information, which could be a guide to SCRC members |
| 93 | + * Clippy is not looking to do global analysis, and will doing a crate by crate analysis |
| 94 | + * How does Clippy deal with undecidable rules? |
| 95 | + 1. If Clippy can determine a violation it shows a message, if it can prove no violation then no message, the question is for when Clippy can’t know |
| 96 | + 2. It entirely depends on the lint, some false positives are acceptable, sometimes false negatives are acceptable |
| 97 | + * Are most Clippy lints done on the MIR level? |
| 98 | + 1. Clippy has its own const evaluator which is used for some lints |
| 99 | + * Does Clippy denote undecidable lints on [their lint page](https://rust-lang.github.io/rust-clippy/master/index.html)? |
| 100 | + 1. It might be good to add this to the database for SCRC use cases |
| 101 | + 2. There are two possible ways to look at decidability, one from a theoretical point of view (guidelines), one from a tool point of view (Clippy) |
| 102 | + 3. No objection to adding that classification, but that might be a good deal of work to label them |
| 103 | + * Proposed easy to implement lints |
| 104 | + 1. [The 'as' operator should not be used with numeric operands](https://coding-guidelines.arewesafetycriticalyet.org/coding-guidelines/expressions/gui_ADHABsmK9FXz.html#gui_ADHABsmK9FXz) |
| 105 | + 2. [Avoid out-or-range shifts](https://coding-guidelines.arewesafetycriticalyet.org/coding-guidelines/expressions/gui_LvmzGKdsAgI5.html) |
| 106 | + 3. [Do not shift an expression by a negative number of bits or by greater than or equal to the bitwidth of the operand](https://coding-guidelines.arewesafetycriticalyet.org/coding-guidelines/expressions/gui_RHvQj8BHlz9b.html) |
| 107 | + 4. [Do not use an integer type as a divisor during integer division](https://coding-guidelines.arewesafetycriticalyet.org/coding-guidelines/expressions/gui_7y0GAMmtMhch.html) |
| 108 | +* MISRA C Mapping |
| 109 | + * The work has already been done by Alex C, etc. |
| 110 | + * Markus has been working on this |
| 111 | +* MISRA C++ Mapping |
| 112 | + * Douglas and Max have expressed interesting performing this mapping |
| 113 | + * The SCRC is looking to purchase some copies for the institution |
| 114 | +* CERT C Mapping |
| 115 | + * Useful feedback has been provided on all of the batches of issues |
| 116 | + * There are still some loose ends to some of the feedback, and the original poster may be tagged ask for clarification |
| 117 | +* Break-out Sessions |
| 118 | + * Group batch 1 |
| 119 | + 1. PRE31: Agreed, might split this out into a [separate advisory guideline](https://github.com/Safety-Critical-Rust-Consortium/safety-critical-rust-coding-guidelines/issues/557) |
| 120 | + * Group batch 2 |
| 121 | + 1. PRE30: Agree; no observations |
| 122 | + 2. DCL38: Agree; no observations |
| 123 | + 3. EXP35: Agree; no observations |
| 124 | + 4. EXP43: Agree; should only be taken into consideration when writing `unsafe` Rust and having lifetimes be involved |
| 125 | + 5. ARR32: Agree; no observations |
| 126 | + 6. ARR38: Agree; Would be interesting to have a general position with respect to recreating C-like behavior (e.g. a field that represents the size of a data structure) when an idiomatic Rust solution exists. However FFI does stand out as an area where this is likely to be necessary. |
| 127 | + 7. STR32: Should be taken into consideration when writing `unsafe` Rust, specially with FFI/C-bindings (`CStrings`) |
| 128 | + 8. FIO34: Should be taken into consideration depending on the use-case; `no-std` projects may need the raw bytes |
| 129 | +* Round Table |
| 130 | + * Macros are hard |
| 131 | + * There is a discussion on [batch 4](https://github.com/Safety-Critical-Rust-Consortium/safety-critical-rust-coding-guidelines/issues/430#issuecomment-4074338619) about FFI, please take a look at the second part of the linked comment if you have thoughts |
| 132 | + * FFI is an important design space to think about guidelines in, and CERT C can teach us about interfacing with C |
| 133 | + |
| 134 | +## **Material** |
| 135 | + |
| 136 | +Any material to read before the meeting should be included here. |
0 commit comments