Skip to content

Commit 497539e

Browse files
authored
[Coding Guidelines] Agenda for 2025-10-22 (Safety-Critical-Rust-Consortium#493)
* [Coding Guidelines] Agenda for 2025-10-22 * [Coding Guidelines] Minutes for 2025-10-22
1 parent f15897c commit 497539e

1 file changed

Lines changed: 126 additions & 0 deletions

File tree

  • subcommittee/coding-guidelines/meetings/2025-10-22
Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
# **Coding Guidelines Subcommittee Meeting on 2025-10-22 @ 0800 BST / 0900 CEST / 1600 JST / 0300 EDT**
2+
3+
[Link](https://www.worldtimebuddy.com/?qm=1&lid=14,12,1850147,5&h=14&date=2025-10-22&sln=8-9&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-01/minutes.md)
15+
3. Introduction of new members
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. Review progress on guidelines incorporated from CERT
22+
* [High-level mapping of CERT rule groups to Rust](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/issues/152)
23+
* Integers \- Félix Fischer
24+
* Arrays \- Alex Celeste
25+
* Floating Point \- Andrew Fernandes
26+
6. Additional rule areas discussion
27+
* Type inference rules
28+
* Macro and identifier rules
29+
7. Rule flavours discussion
30+
8. Round table
31+
32+
## **Check-in area**
33+
34+
**Please add your name, and an emoji that describes your day.**
35+
36+
* Alex Celeste ☕
37+
* Markus Hosch 😫
38+
* Oreste Bernardi 🏙️
39+
* Tiago Manczak 😪
40+
* Achim Kriso 🦀
41+
42+
**Notetaker: Alex Celeste**
43+
44+
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.
45+
46+
## **Housekeeping section**
47+
48+
* Document space: [coding-guidelines](https://github.com/rustfoundation/safety-critical-rust-consortium/tree/main/subcommittee/coding-guidelines)
49+
* Zulip: [safety-critical-consortium: Coding Guidelines](https://rust-lang.zulipchat.com/#narrow/channel/445688-safety-critical-consortium/topic/Coding.20Guidelines)
50+
* [Kanban board](https://github.com/orgs/rustfoundation/projects/1/views/3)
51+
* [`contributor experience`](https://github.com/orgs/rustfoundation/projects/1/views/4) view
52+
* [`coding guideline`](https://github.com/orgs/rustfoundation/projects/1/views/5) view
53+
54+
## **Tasks**
55+
56+
* Is there a rule about type inference in Misra C++ ?
57+
* Poll the preference of the Guidelines team about a type annotation rule:
58+
* First, yes/no
59+
* Second, a choice between
60+
* Always allowed
61+
* Write an annotation as soon as the tool shows a complicated type
62+
*
63+
* Always required
64+
* \[todo\] Oreste: Type annotation Issue to be created in Github listing the available points and options
65+
* Build up a list of RFCs that are relevant to guideline evolution going forward
66+
* \[todo\] Markus Hosch: create Issue w.r.t Guideline Flavours
67+
68+
## **Meeting Minutes**
69+
70+
* Launched into discussion w.r.t type inference rule:
71+
* May make declarations more difficult to understand by hiding information; or easier to understand by hiding type spam
72+
* “You should use an editor with language server support”
73+
* Many users do not use such an editor
74+
* “It may be possible to unintentionally propagate a change and introduce a bug”
75+
* Editor may still display types that are difficult to understand
76+
* Or the wrong type: the editor becomes an essential tool during code review and therefore part of the safety pipeline
77+
* There does not appear to be an equivalent MISRA C++ rule to use as precedent
78+
* Gather options and propose a poll to the whole group:
79+
* Only types when required by the compiler
80+
* Put types everywhere they can be written
81+
* Limited exceptions to the minimalist approach (trivial cases? What is the boundary of obviousness?)
82+
* Declaration based on the traits (i.e. this iterator yield type… rather than is from …) is the more useful information to the human reader
83+
* RFC-2071 ([https://github.com/rust-lang/rust/issues/63065](https://github.com/rust-lang/rust/issues/63065)) but has no champions atm
84+
* May change future evolution of Guidelines
85+
* Should we enforce explicit lifetime annotation?
86+
* Probably not because the human is more likely to get this wrong than the compiler\!
87+
* Lifetimes need to be invented (“out of thin air”) when going from unsafe to safe \- this should go in a separate area w.r.t unsafe code though
88+
* Do not feel the argument about enhancing readability applies to lifetimes
89+
* Type aliases rule to avoid long names in explicit type declaration
90+
* Existing Clippy lint for “type complexity” to recommend use of an alias when certain properties are met
91+
* Need some basis for type complexity (and one which is useful and not “just” objective)
92+
* E.g. limiting the levels of type element nesting within brackets
93+
* Limiting the number of elements total in the type expression, both parameterizable
94+
* This has MISRA precedent as well
95+
* Question about what additional rules can be added to make macros safe to pre-expand
96+
* More important to make the macro understandable to the reader
97+
* Some assist from identifier reuse vs identifier shadowing rules
98+
* Use of syntactic prefixing could help here
99+
* “Do not reuse identifier”?
100+
* “Do not shadow identifier”?
101+
* This would allow better testing and ability to check coverage of code that makes use of macros
102+
* Testing of the code itself
103+
* Code generators still ask the user to test generated code rather than guarantee it is safe: same applies to macros
104+
* Rule flavours (no issue yet)
105+
* Agreement on the basic items: tiered approach, two additional properties
106+
* Open questions
107+
* should we fix the tiers or allow others to be defined?
108+
* Is the direction for associated rules a satisfied-by or a satisfies?
109+
* Open PR outlining the contribution process
110+
* https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/pull/149
111+
* There isn’t a ban on direct PRs if those are the right tool for the job
112+
* Writing down the process is essential to work out whether the process is working, whether we need to be more proactive in forcing review to happen, etc
113+
* The RFC process applies but is not used for most content changes, only structural changes
114+
* How to collect interesting language issues to present back to the developers?
115+
* See the RFC above that would be beneficial for readability \- to link back to it in a Guidelines Issue
116+
* In the Tooling group we have a process to collect these requirements \- JSON file to be rendered on AWSCY creating a goto for tooling authors to look at
117+
* https://github.com/rustfoundation/safety-critical-rust-consortium/pull/492
118+
119+
## **Material**
120+
121+
Any material to read before the meeting should be included here.
122+
123+
* Milestone: [Prepare for launch to wider Rust community](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/milestone/1)
124+
* FLS Maintenance: [FLS Team \- North Star](https://hackmd.io/@plevasseur/HJb6qomOge/edit)
125+
* [Github Issue to discuss about panicking in Safety Critical](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/issues/158)
126+

0 commit comments

Comments
 (0)