|
| 1 | +# **Coding Guidelines Subcommittee Meeting on 2025-10-29 @ 1100 EDT / 1600 CET** |
| 2 | + |
| 3 | +[Link](https://www.worldtimebuddy.com/?qm=1&lid=5,100,2643743,12,1850147,2193733,8,6,2673730,1261481&h=5&date=2025-10-29&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/2025-10-22/minutes.md) |
| 15 | +3. Introduction of new member |
| 16 | +4. Share launch milestone & Kanban board (Pete LeVasseur) |
| 17 | + * [Prepare for launch to wider Rust community](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/milestone/1) |
| 18 | + * [Kanban board](https://github.com/orgs/rustfoundation/projects/1/views/3) |
| 19 | + * [`contributor experience`](https://github.com/orgs/rustfoundation/projects/1/views/4) view |
| 20 | + * [`coding guideline`](https://github.com/orgs/rustfoundation/projects/1/views/5) view |
| 21 | +5. [FLS Team](https://rust-lang.org/governance/teams/lang/#team-fls) started (Pete) |
| 22 | + * If interested in becoming involved, feel free to visit [Zulip channel](https://rust-lang.zulipchat.com/#narrow/channel/520710-t-lang.2Ffls) or come to our first meeting (find the `.ics` [here](https://rust-lang.github.io/calendar/fls.ics)) |
| 23 | +6. Eclipse S-CORE usage of Rust (Pete/Markus) |
| 24 | + * Find their relevant meeting notes [here](https://github.com/orgs/eclipse-score/discussions/1933) |
| 25 | +7. Review progress on guidelines incorporated from CERT |
| 26 | + * [High-level mapping of CERT rule groups to Rust](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/issues/152) |
| 27 | + * Integers \- Félix Fischer |
| 28 | + * Arrays \- Alex Celeste |
| 29 | + * Floating Point \- Andrew Fernandes |
| 30 | +8. Rule flavors discussion |
| 31 | +9. Round table |
| 32 | + |
| 33 | +## **Check-in area** |
| 34 | + |
| 35 | +**Please add your name, and an emoji that describes your day.** |
| 36 | + |
| 37 | +* Max Jacinto 🦀 |
| 38 | +* Alex Celeste ☕ |
| 39 | +* Pete LeVasseur 🧑💻🖇️ |
| 40 | +* Alex Senier 🤪 |
| 41 | +* Oreste Bernardi 🏙️ |
| 42 | +* William Cunningham |
| 43 | +* Julius Gustavsson 🙃 |
| 44 | +* Christof Petig 🐛 |
| 45 | +* Gideon Mueller |
| 46 | +* Douglas Deslauriers 🎃 |
| 47 | +* Tiago Manczak |
| 48 | +* Dillon McEwan ☕ |
| 49 | + |
| 50 | +**Notetaker:** |
| 51 | + |
| 52 | +* Alex Celeste |
| 53 | + |
| 54 | +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. |
| 55 | + |
| 56 | +## **Housekeeping section** |
| 57 | + |
| 58 | +* Document space: [coding-guidelines](https://github.com/rustfoundation/safety-critical-rust-consortium/tree/main/subcommittee/coding-guidelines) |
| 59 | +* Zulip: [safety-critical-consortium: Coding Guidelines](https://rust-lang.zulipchat.com/#narrow/channel/445688-safety-critical-consortium/topic/Coding.20Guidelines) |
| 60 | +* [Kanban board](https://github.com/orgs/rustfoundation/projects/1/views/3) |
| 61 | + * [`contributor experience`](https://github.com/orgs/rustfoundation/projects/1/views/4) view |
| 62 | + * [`coding guideline`](https://github.com/orgs/rustfoundation/projects/1/views/5) view |
| 63 | + |
| 64 | +## **Tasks** |
| 65 | + |
| 66 | +* Xx |
| 67 | + |
| 68 | +## **Meeting Minutes** |
| 69 | + |
| 70 | +* Introduction of new membres: non-safety-critical ECU shipping Rust in production at \[vendor\] |
| 71 | +* Due date removed from launch milestone but items remain priorities for preparing an announcement |
| 72 | + * (some of this is automation/infra) |
| 73 | + * Similar content is viewable in the Kanban board |
| 74 | + * Chapter review tasks to appear here |
| 75 | +* FLS Team\! “If you’re interested, take a look” |
| 76 | + * First meeting upcoming |
| 77 | + * This is a good way to give back if your use case for the compiler is in a safety-critical project |
| 78 | + * Will not be forced to contribute |
| 79 | +* Eclipse S-CORE: automotive companies in EU collaborating on a better/future software stack as an open-source commodity |
| 80 | + * [https://eclipse.dev/score/](https://eclipse.dev/score/) and [https://github.com/eclipse-score](https://github.com/eclipse-score) |
| 81 | + * There is a regular Rust meeting, Pete is attending |
| 82 | + * There will be a larger meeting about Rust’s role in this upcoming |
| 83 | + * Targeting a 1.0 release at the end of 2026; targeting ASIL-B development; want to be able to use Rust for this |
| 84 | + * Eclipse SDV is open to the public to attend ([https://sdv.eclipse.org/](https://sdv.eclipse.org/)) |
| 85 | +* CERT-C progress |
| 86 | + * Stalled on Arrays |
| 87 | + * Others not present today |
| 88 | +* Rules flavours |
| 89 | + * Summary of topics from last week and from the breakout session in the All-hands |
| 90 | + * Main driver of the discussion are Markus’s ideas |
| 91 | + * \[decision\] Postpone till Markus able to join |
| 92 | +* Marketing collateral |
| 93 | + * Company would like some content to talk about, or announced version of the coding guidelines |
| 94 | + * Coding guidelines in current state doesn’t seem to be of appropriate level of maturity to market far and wide at industry event |
| 95 | +* Action item to create an issue for a new rule w.r.t type annotation on variable bindings |
| 96 | + * A review of the C++ precedent revealed two positions: “almost always \`auto\`” vs not to do this especially in interfaces |
| 97 | + * Loose proposal in previous meeting to require a type annotation when the language server cannot display a “nice” type |
| 98 | + * Does the precedent from C++ indicate that this is not important after all? Perhaps there isn’t always intent to restrict this |
| 99 | + * For C++ this is much more ambiguous than in Rust, especially because references can be implicit |
| 100 | + * What do AUTOSAR and MISRA C++ say about this? |
| 101 | + * Nothing in MISRA C++ (the group has no opinion) |
| 102 | + * AUTOSAR has some related rules \- target the idea that \`auto\` should not be used when the resulting type is not clear, but for things like getting an iterator, typing it out is not helpful; requires strong types for interfaces |
| 103 | + * Writing generic C++ code is difficult to do while staying within these guidelines as they can result in the tool complaining more |
| 104 | + * It might make sense to have a guideline w.r.t clarity, but this is probably not decidable |
| 105 | + * Probably not necessary to restrict type inference at the moment \- there seems to be little appetite for an undecidable rule |
| 106 | + * If the compiler itself cannot infer the type at all that’s a different issue anyway |
| 107 | + * Previously did not consider delayed inference, although the compiler still rejects ambiguities |
| 108 | + * Concerned about an API that may do something different from what is expected because of the type selecting a behaviour through an unexpected trait |
| 109 | + * Rule proposed previously was based on interaction with editing environments and what is shown to the user \- the rule may help clarity in places where the editor would display something unreadable |
| 110 | + * This tool feature implies a need for the information |
| 111 | + * Implicit safety requirement on the analyzer as well, to show the reviewer the right type and thus enable them to correctly understand the code |
| 112 | + * The feature is often useful while editing rather than while reading \- once done making changes, it will be checked by the compiler |
| 113 | + * \[todo\] The action here is to open a generic Issue, not a new-guideline Issue, to keep track of the group’s thoughts and any evolving discussion |
| 114 | + * \[todo\] Request to provide an example or two to attach to the issue to illustrate |
| 115 | +* Next AUTOSAR release event (25-11) will have a section about Rust in the video presentation, in the Classic platform |
| 116 | + * Includes some stats about errors prevented by use of Rust in Classic |
| 117 | +* Discussion of safety-critical in closing keynote at RustConf 2025; short but the vision doc team will write an RFC about the lessons and insights, domains identified; Pete did 20-25 interviews so safety-critical will feature prominently |
| 118 | + * (link here) |
| 119 | +* Florian gave some examples in a presentation w.r.t guidelines for unsafe using the example of a mutex; all of the code impacting the safe justification for the unsafe block needs to be in the same module so that the impact of it can be understood |
| 120 | + * Should this be a new guideline? |
| 121 | + * Would this be a decidable guideline or require manual review? |
| 122 | + * An unsafe block should require a justification and this justification should summarize all APIs relevant to it; by listing them it provides a list of additional points to review and this can generate proactive warnings to the reviewer; so there are useful automations associated with this, but not fully bidirectional |
| 123 | + * Some users isolate all uses of \`unsafe\` into a dedicated crate for separate review |
| 124 | + * Ensuring that all APIs (types and functions) which affect one specific unsafe behaviour are together makes them easier to review, not necessarily the same line of distinction |
| 125 | + * The module boundary is where invariants are easiest to uphold, can be a broader boundary if split across more than one module |
| 126 | + * Related to some of the discussion in Eclipse S-CORE w.r.t design guidelines around unsafety |
| 127 | + * \[todo\] Another topic for a new discussion Issue |
| 128 | + * We have a number of issues discussing unsafety already but maybe not capturing this angle |
| 129 | + * Should cover the module-level discussion |
| 130 | +* The dice will have the logo printed on the 1 unless we pay extra for the 20\! |
| 131 | + |
| 132 | +## **Material** |
| 133 | + |
| 134 | +Any material to read before the meeting should be included here. |
| 135 | + |
| 136 | +* Milestone: [Prepare for launch to wider Rust community](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/milestone/1) |
| 137 | +* FLS Maintenance: [FLS Team \- North Star](https://hackmd.io/@plevasseur/HJb6qomOge/edit) |
| 138 | +* [Github Issue to discuss about panicking in Safety Critical](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/issues/158) |
0 commit comments