|
| 1 | +# **Coding Guidelines Subcommittee Meeting on 2026-06-17 @ 1600 CEST / 1100 EDT** |
| 2 | + |
| 3 | +[Link](https://www.worldtimebuddy.com/?qm=1&lid=5,12,2643743,8,1850147,100,14,14,1835848&h=5&date=2026-6-3&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/Safety-Critical-Rust-Consortium/safety-critical-rust-consortium/blob/main/subcommittee/coding-guidelines/meetings/2026-06-10/minutes.md) |
| 15 | +3. Introduction of new members |
| 16 | +4. Solicit availability for RustConf 2026 SCRC Room |
| 17 | +- Please put availability on this [LettuceMeet](https://lettucemeet.com/l/oYlvM) |
| 18 | +5. Discuss possible 2-3 coding guidelines to choose for Clippy lints |
| 19 | +- Picking "decidable" ones probably good |
| 20 | +- Let's look here: [https://coding-guidelines.arewesafetycriticalyet.org/coding-guidelines/expressions/index.html](https://coding-guidelines.arewesafetycriticalyet.org/coding-guidelines/expressions/index.html) |
| 21 | +6. First version of MISRA C \+ CERT C Appendices [live](https://coding-guidelines.arewesafetycriticalyet.org/appendices/standards-matrices/index.html) |
| 22 | +- Pete will now mine these appendices for creating issues for contributors |
| 23 | +7. Liaison White Paper Solicitation (Alex) |
| 24 | +8. Interest in the MISRA C++ mapping (mira / Pete) |
| 25 | +- Updates on new things in the MISRA C++ \=\> Rust mapping |
| 26 | +- In talks with MISRA folks still; but in practice the procedure outlined seemed reasonable to them |
| 27 | +- 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) |
| 28 | +9. Round table |
| 29 | + |
| 30 | +## **Check-in area** |
| 31 | + |
| 32 | +- Pete LeVasseur ➕ |
| 33 | +- Oreste Bernardi 🌞 |
| 34 | +- Markus Hosch 🤯 |
| 35 | +- Max Jacinto 📖 |
| 36 | +- Samuel Wright ☀️ |
| 37 | +- Mira Baumann |
| 38 | +- Alex Celeste ☕ |
| 39 | +- Achim Kriso 🦆 |
| 40 | + |
| 41 | +**Notetaker:** |
| 42 | + |
| 43 | +- Alex Celeste |
| 44 | + |
| 45 | +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. |
| 46 | + |
| 47 | +## **Housekeeping section** |
| 48 | + |
| 49 | +- Document space: [coding-guidelines](https://github.com/rustfoundation/safety-critical-rust-consortium/tree/main/subcommittee/coding-guidelines) |
| 50 | +- Zulip: [safety-critical-consortium: Coding Guidelines](https://rust-lang.zulipchat.com/#narrow/channel/445688-safety-critical-consortium/topic/Coding.20Guidelines) |
| 51 | +- [Kanban board](https://github.com/orgs/rustfoundation/projects/1/views/3) |
| 52 | + - [`contributor experience`](https://github.com/orgs/rustfoundation/projects/1/views/4) view |
| 53 | + - [`coding guideline`](https://github.com/orgs/rustfoundation/projects/1/views/5) view |
| 54 | + |
| 55 | +## **Tasks** |
| 56 | + |
| 57 | +- Alex: create an Issue listing the rules we have identified as applicable and their starting partial coverage lints |
| 58 | +- Sam: investigate lint ii (pointer as underscore) |
| 59 | +- Pete: investigate lint iii (integer to pointer, general conversions) |
| 60 | +- Pete: open an Issue for lint i (int as int) |
| 61 | +- Alex: circulate the zeroth Whitepaper draft onto Zulip with ideas jotted down by Pete |
| 62 | +- Pete: add a usage statement for copyrighted material to the shared drive and also to the end of the minutes template |
| 63 | + |
| 64 | +## **Meeting Minutes** |
| 65 | + |
| 66 | +- Previous minutes accepted with formatting fixes |
| 67 | +- Still need to decide on a day for the SCRC room at RustConf |
| 68 | + - Also need to arrange the online component |
| 69 | +- Having had two expert sessions now the group is ready to pick out 2-3 Clippy lints to work on |
| 70 | + - Reviewing the expression rules list: most are decidable, especially if type-oriented rather than value-oriented |
| 71 | + 1. No \`as\` with integers is extremely similar to existing lints (no blanket lint but a widening lint exists) e.g. \`[clippy::cast\_lossless](https://rust-lang.github.io/rust-clippy/master/index.html?search=cast_loss#cast_lossless)\` \- inexact match but demonstrates checking of \`as\` |
| 72 | + 2. \`as\`-pointer casts is also similar to existing lints e.g. \`[clippy::ptr\_as\_ptr](https://rust-lang.github.io/rust-clippy/master/index.html?search=underscore#as_pointer_underscore)\`, \`[clippy::as\_pointer\_underscore](https://rust-lang.github.io/rust-clippy/master/index.html?search=underscore#as_pointer_underscore)\` \- inexact match |
| 73 | + 3. Integer to pointer has some support as \`[integer-to-ptr-transmutes](https://doc.rust-lang.org/rustc/lints/listing/warn-by-default.html?highlight=int%20to%20pointer#integer-to-ptr-transmutes)\`, still only partial coverage (transmute only) |
| 74 | + 4. Shifting out of range and division by zero are not decidable, partial support in \`[arithmetic-overflow](https://doc.rust-lang.org/rustc/lints/listing/deny-by-default.html?highlight=shift#arithmetic-overflow)\` \- probably intent to split the shift rule into constant and dynamic versions for decidability as the more constrained case is still useful; the existing lint is focused on constant shift rhs values only; the general case of the rule needs to be changed to **undecidable** |
| 75 | + 1. Related lint in \`[clippy::arithmetic\_side\_effects](https://rust-lang.github.io/rust-clippy/master/?search=overflo#arithmetic_side_effects)\` which bans the native infix operators that have a risk of overflow behaviours |
| 76 | + 5. Integer to pointer conversions has two rules in the decidable and undecidable flavours; the decidable rule is partially covered by the lints above |
| 77 | + - Is there a reason we are particularly interested in the underscore for this rule? |
| 78 | + 1. Converting to a \`dyn\` type is checked whereas converting between pointer types is (implicit) unsafe and unchecked |
| 79 | +- The Appendices are live\! GH Issues still to be generated from these, which may be a lot |
| 80 | +- Liaison White Paper Solicitation (Alex) |
| 81 | + - Proposal paper on items of shared value to pool funding |
| 82 | + 1. For example: having the Guidelines completed; having Clippy lints written to enforce as many of the Guidelines as possible; having people with the Community dedicating time to that work; getting safety qualification for Clippy or other tools (bindgen etc); getting the guidance/documentation available to pursue qualification independently |
| 83 | + 2. All of these items should be hardware, OS, vendor generic, and aiming to be useful to all or any of the existing safety standards (auto, aero, etc) |
| 84 | + 3. Enlist the various topics from Rust Week into a draft document and then circulate on Zulip |
| 85 | + - Identify users of guidelines |
| 86 | + - Challenges in enforcing guidelines |
| 87 | + - Vendor opportunities (tooling) |
| 88 | + - Perspective of an assessor that has assessed Rust code |
| 89 | + - Success stories of application of Clippy lints in safety-critical context |
| 90 | +- On MISRA C++ |
| 91 | + - Pete is in contact with David and Andrew at MISRA w.r.t supply of MISRA materials; agreeable so long as usage/access is restricted in some fashion to members of the WG only (i.e. MISRA C and MISRA C++ will be made visible to individual members) |
| 92 | + - Same statement of use needs to go on all the meeting notes |
| 93 | + - Mira continues to make progress on working through the MISRA C++ rules |
| 94 | + 1. The preprocessor remains an unstarted topic |
| 95 | + 2. Questions for Doug on certain specific rules |
| 96 | + |
| 97 | +## **Material** |
| 98 | + |
| 99 | +Any material to read before the meeting should be included here. |
| 100 | + |
| 101 | +Overview of [Safety-Critical Rust](https://rust-lang.github.io/rust-project-goals/2026/roadmap-safety-critical-rust.html) Rust Project Goals Roadmap (Pete) |
| 102 | + |
| 103 | +- Soliciting those interested in [Normative Documentation for Sound unsafe Rust](https://rust-lang.github.io/rust-project-goals/2026/safe-unsafe-for-safety-critical.html) goal |
| 104 | + - Register interest [here](https://rust-lang.zulipchat.com/#narrow/channel/445688-safety-critical-consortium/topic/SCRC.20.3C.3D.3E.20t-opsem.3A.20Normative.20Documentation.20for.20Sound.20.60unsafe.60/with/586198564) on Rust Zulip |
| 105 | +- 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 |
| 106 | + - Register interest [here](https://rust-lang.zulipchat.com/#narrow/channel/445688-safety-critical-consortium/topic/Getting.20involved.20with.20Clippy.20for.20SCRC.20lints/with/583090116) on Rust Zulip |
0 commit comments