|
29 | 29 |
|
30 | 30 | **Please add your name, and an emoji that describes your day.** |
31 | 31 |
|
32 | | -* |
| 32 | +* Pete LeVasseur, 🌃 |
| 33 | +* Jordan McQueen ☕🌅 |
| 34 | +* Félix Fischer 🍂 |
| 35 | +* Fernando ☕ |
| 36 | +* Andrew Fernandes ☕ |
33 | 37 |
|
34 | 38 | **Notetaker:** |
35 | 39 |
|
36 | | -* |
| 40 | +* Fernando |
| 41 | + |
| 42 | +## Coding Guidelines Thoughts |
| 43 | + |
| 44 | +* Mine the Rustonomicon for `unsafe` coding guidelines |
| 45 | + * May give rise to some `undecidable` guidelines due to some properties being unable to be verified statically |
| 46 | +* Mine The Little Book of Rust Macros for macro coding guidelines |
| 47 | +* \[todo\] Jordan writing a guideline for having a SAFETY comment above `unsafe` block and tie into the corresponding clippy lint |
| 48 | + * Show the bidirectional linking |
| 49 | + * [Undocumented unsafe block Clippy Lint](https://rust-lang.github.io/rust-clippy/master/index.html?groups=restriction#undocumented_unsafe_blocks) |
| 50 | +* \[todo\] MC/DC coverage limitations as a guideline |
| 51 | + * By limiting to some subset it may be feasible to enable MCDC sooner / at all |
37 | 52 |
|
38 | 53 | ## Housekeeping section |
39 | 54 |
|
|
43 | 58 |
|
44 | 59 | ## Tasks |
45 | 60 |
|
46 | | -* |
| 61 | +* Search for the \[todo\] markers |
47 | 62 |
|
48 | 63 | ## Meeting Minutes |
49 | 64 |
|
50 | | -* |
| 65 | +* Acceptance of previous meeting minutes |
| 66 | + * Highlights: [pull request with guidelines](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/pull/127), demo on how to to propose a new coding guideline via [a GitHub issue](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/issues/new?template=CODING-GUIDELINE.yml). |
| 67 | +* New member introduction. |
| 68 | + * [Pull request with direct-recursion clippy lint](https://github.com/rust-lang/rust-clippy/pull/15006). |
| 69 | +* Review of [revised milestone](https://github.com/rustfoundation/safety-critical-rust-coding-guidelines/milestone/1): [todo] all, call for reviewing |
| 70 | + * Specificity for macros needed. |
| 71 | + * Check if the workflow to contribute with guidelines is user-friendly enough. |
| 72 | +* [arewesafetycriticalyet.org](http://arewesafetycriticalyet.org) |
| 73 | + * Deployment of coding guidelines to [coding-guidelines.arewesafetycriticalyet.org](http://coding-guidelines.arewesafetycriticalyet.org) already done\! [todo] PL, thank who took care of it 💌 |
| 74 | + * Fill in resources.md at [docs coding\_guidelines](https://github.com/rustfoundation/safety-critical-rust-consortium/tree/main/arewesafetycriticalyet.org/docs/coding_guidelines) \[todo\] by Jordan. |
| 75 | +* Working session |
| 76 | + * Guidelines discussion |
| 77 | + * Safety comments on unsafe blocks. Is any resistance to such a guideline expected? |
| 78 | + * Similar guidelines in AUTOSAR (existance of Doxygen comments) and MISRA (document assembly, advisory) exist. It's probably not a CERT-style guideline, though. |
| 79 | + * Existing clippy lint (cf. [Coding Guidelines Thoughts](#coding-guidelines-thoughts)). |
| 80 | + * MCDC for rustc in the works. Interesting challenges with `match`. How to handle in the guideline wording; “if using language feature X, then MCDC property Y cannot be achieved”. |
| 81 | + * The wording sounds sensible. It could be a guideline. |
| 82 | + * Some material shared on the topic during the discussion: |
| 83 | + [_Annotating Control-Flow Graphs for Formalized Test Coverage Criteria_ in arXiv](https://arxiv.org/abs/2407.04144v1) ([IEEE Xplore](https://ieeexplore.ieee.org/document/10675739)) |
| 84 | + [cargo-llvm-cov](https://crates.io/crates/cargo-llvm-cov) |
| 85 | + |
| 86 | +Other information and references shared: |
| 87 | + |
| 88 | +Re: last meeting’s notes regarding stack frames and tail recursion |
| 89 | + |
| 90 | +* [https://rust-lang.github.io/rust-clippy/master/index.html\#large\_stack\_frames](https://rust-lang.github.io/rust-clippy/master/index.html#large_stack_frames) lint for large stack frames |
| 91 | +* Explicit Tail Calls RFC work: [https://github.com/rust-lang/rfcs/pull/3407](https://github.com/rust-lang/rfcs/pull/3407) |
| 92 | + * It is intended for guaranteeing tail calls do happen (and the stack frame gets reutilized) |
| 93 | + |
| 94 | +Re: today’s talk about Unsafe Rust stuff: |
| 95 | + |
| 96 | +* Rustonomicon: [https://doc.rust-lang.org/nomicon/](https://doc.rust-lang.org/nomicon/) |
| 97 | +* Ralf Jung’s Blog: [https://www.ralfj.de/blog/](https://www.ralfj.de/blog/) |
| 98 | + * Tree Borrows, the latest memory model for Rust: [https://www.ralfj.de/blog/2023/06/02/tree-borrows.html](https://www.ralfj.de/blog/2023/06/02/tree-borrows.html) |
| 99 | +* Miri, an interpreter for MIR in which you can dynamically check that the invariants your code must uphold are not broken: [https://github.com/rust-lang/miri](https://github.com/rust-lang/miri) |
| 100 | +* Unsafe Code Guidelines: [https://rust-lang.github.io/unsafe-code-guidelines/](https://rust-lang.github.io/unsafe-code-guidelines/) |
| 101 | + * Repo: [https://github.com/rust-lang/unsafe-code-guidelines](https://github.com/rust-lang/unsafe-code-guidelines) |
| 102 | + |
| 103 | +Re: Clippy lints that might directly correlate to Coding Guidelines |
| 104 | + |
| 105 | +* [https://rust-lang.github.io/rust-clippy/master/index.html?groups=restriction](https://rust-lang.github.io/rust-clippy/master/index.html?groups=restriction) |
| 106 | + * [Arithmetic Side Effects](https://rust-lang.github.io/rust-clippy/master/index.html?groups=restriction#arithmetic_side_effects) |
| 107 | + * [panic\!](https://rust-lang.github.io/rust-clippy/master/index.html?groups=restriction#panic) |
| 108 | + * [Undocumented unsafe Blocks](https://rust-lang.github.io/rust-clippy/master/index.html?groups=restriction#undocumented_unsafe_blocks) |
| 109 | + * [Float Arithmetic](https://rust-lang.github.io/rust-clippy/master/index.html?groups=restriction#float_arithmetic) |
| 110 | + * [as Conversions](https://rust-lang.github.io/rust-clippy/master/index.html?groups=restriction#as_conversions) |
| 111 | + |
51 | 112 |
|
52 | 113 | ## Material |
53 | 114 |
|
|
0 commit comments