Skip to content

Commit 9ab5824

Browse files
authored
[Coding Guidelines] Meeting notes for 2025-07-16 (#373)
* [Coding Guidelines] Add agenda for 2025-07-16 * [Coding Guidelines] Post-meeting notes for 2025-07-16
1 parent d9635c0 commit 9ab5824

1 file changed

Lines changed: 107 additions & 0 deletions

File tree

  • subcommittee/coding-guidelines/meetings/2025-07-16
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
# **Coding Guidelines Subcommittee Meeting on 2025-07-16 @ 1600 BST / 1700 CEST / 1100 EDT / 2025-07-17 @ 0000 JST**
2+
3+
[Conversion](https://www.worldtimebuddy.com/?qm=1&lid=14,12,5,1850147&h=14&date=2025-7-16&sln=16-17&hf=1) between common time zones of attendees.
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-07-02/minutes.md)
15+
3. Introduction of any new members
16+
4. Review of [revised and rescoped milestone](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/milestone/1) focused on shaking out initial issues with coding guidelines process and philosophy \- 5 mins
17+
5. Discussion \- 15 mins
18+
* Discuss provenance and the `std::ptr` API (Felix, David)
19+
6. Working session \- 20 mins
20+
* Read through [CERT C rules](https://wiki.sei.cmu.edu/confluence/display/c/2+Rules) together a bit
21+
* Identify sections and folks that would like to translate these into the Rust coding guidelines
22+
* [Rule 04\. Integers (INT)](https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?pageId=87152052)
23+
* [Rule 05\. Floating Point (FLP)](https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?pageId=87152181)
24+
* [Rule 03\. Expressions (EXP)](https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?pageId=87152200)
25+
7. Review session \- 10 mins
26+
* Review open [PRs](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/pulls) & [issues](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/issues)
27+
8. Round table \- 5 mins
28+
29+
## **Check-in area**
30+
31+
**Please add your name, and an emoji that describes your day.**
32+
33+
* Alex Celeste ☕
34+
* David Svoboda :)
35+
* Enow Scott 🙂
36+
* Andrew Fernandes ☕🥱
37+
* [Robert C. Seacord](mailto:robert.seacord@woven-planet.global) 😣
38+
* Douglas Deslauriers 🏙️
39+
* Oreste Bernardi🫤
40+
* Tiago Manczak ☺️
41+
* Achim Kriso 🦆
42+
* El Araby El Mahdi 🌋👍
43+
* Christof Petig 🌧️
44+
45+
**Notetaker:**
46+
47+
* David Svoboda
48+
49+
## **Housekeeping section**
50+
51+
* Document space: [coding-guidelines](https://github.com/rustfoundation/safety-critical-rust-consortium/tree/main/subcommittee/coding-guidelines)
52+
* Zulip: [safety-critical-consortium: Coding Guidelines](https://rust-lang.zulipchat.com/#narrow/channel/445688-safety-critical-consortium/topic/Coding.20Guidelines)
53+
* [Early Alpha Milestone](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/milestone/1)
54+
55+
## **Tasks**
56+
57+
* Search for the \[todo\] markers
58+
59+
## **Meeting Minutes**
60+
61+
* Solicitation of notetaker
62+
* Acceptance of [Previous Meeting Minutes](https://github.com/rustfoundation/safety-critical-rust-consortium/blob/main/subcommittee/coding-guidelines/meetings/2025-07-02/minutes.md)
63+
* Introduction of any new members
64+
* Review of [revised and rescoped milestone](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/milestone/1) focused on shaking out initial issues with coding guidelines process and philosophy \- 5 mins
65+
* Discussion \- 15 mins
66+
* Discuss provenance and the `std::ptr` API (Felix, David), based on an informal discussion in the sync meeting yesterday after investigating INT36-C
67+
* Two forms of provenance, strict and exposed, investigated based on the last three clauses of INT36 \- the new API should make it unnecessary to go through bare integer representations in order to apply things like masks with the strict provenance option; there is also the exposed option for when this is absolutely necessary i.e. for hardcoded hardware addresses
68+
* Rust has the same concepts of alignment as C does; same concepts of “pointing to an entity” as C does; trap representations are more specific to C
69+
* Leads to a question: does this group care about \`unsafe\` as well as safe code? Should there be a distinction in the rules? Are we currently creating guidelines applicable to \`unsafe\`? Current consensus is that the group has not yet made this distinction
70+
* The second paragraph raises some interesting questions about the permissiveness of the \`as\` operator and what can be converted to/from a pointer; exposes older assumptions that \`usize\` will always be the right size for pointers; want a Clippy lint for conversions between \_any\_ pointer and integer pairings \- \`usize\` is no longer guaranteed to be sufficient for this
71+
* Third paragraph is less concerning for guidelines
72+
* A lot of the knowledge about this is centralized into individuals \- an issue for many aspects of the language and its operational semantics
73+
* Three tiers of support, documented in https://doc.rust-lang.org/rustc/platform-support.html
74+
* tier 1 \= Intel & ARM (no embedded systems)
75+
* Indicates a model of support for platforms; does not indicate what Rust aims to support.
76+
* Do we want a rule "use only tier 1 platforms"?
77+
* This would rule out lots of embedded platforms.
78+
* Working session \- 20 mins
79+
* Read through [CERT C rules](https://wiki.sei.cmu.edu/confluence/display/c/2+Rules) together a bit
80+
* Identify sections and folks that would like to translate these into the Rust coding guidelines
81+
* [Rule 04\. Integers (INT)](https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?pageId=87152052)
82+
* [Rule 05\. Floating Point (FLP)](https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?pageId=87152181)
83+
* [Rule 03\. Expressions (EXP)](https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?pageId=87152200)
84+
* Review session \- 10 mins
85+
* Review open [PRs](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/pulls) & [issues](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/issues)
86+
* [https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/pull/132](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/pull/132) (do not divide by zero)
87+
* The spec does not indicate what x / 0 actually does, but it seems to panic on some platforms.
88+
* Been reviewed by Felix, please look offline & provide feedback.
89+
* Request for action item to create issue about unsafe vs. safe tag on guidelines.
90+
* Round table \- 5 mins
91+
* Seacord: For https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/issues/137
92+
* (Use matching types at the language boundary)
93+
* Seacord: Interface using\_matching\_types at language boundaries. How concerned are we about portability? At CERT we limit "safe" labels to working on a particular platform. An interface that uses C short or char would never be portable?
94+
* Alex: This might warrant a guideline
95+
* Svoboda: yes. There is no C interface. Instead there is one interface to x86-64-Linux-GCC C, one to x86-32-Linux-Clang, and so on. Each has implementation-defined integer sizes, and most functions rely on them.
96+
* Seacord: We could use several more code examples: one with static assertions, one with fixed-width C types.
97+
* Alex: This is a rich area for mistakes.
98+
* Douglas: FLS Speclock file is out of date. I will update.
99+
100+
## **Material**
101+
102+
Any material to read before the meeting should be included here.
103+
104+
### **GitHub Project Board for Work Items**
105+
106+
* [Work Item Board](https://github.com/orgs/rustfoundation/projects/1)
107+

0 commit comments

Comments
 (0)