|
| 1 | +# Agenda |
| 2 | + |
| 3 | +- rust-std for `thumbv6m-none-eabi` to be temporarily unavailable after upgrading to LLVM 7. cf. |
| 4 | + https://github.com/rust-lang/rust/pull/51966 |
| 5 | + |
| 6 | +- Rust 2018: the home stretch. cf. https://internals.rust-lang.org/t/rust-2018-the-home-stretch/7810 |
| 7 | + |
| 8 | +- Maintaining the cortex-m ecosystem. cf. #46, |
| 9 | + https://github.com/rust-lang-nursery/embedded-wg/issues/109#issuecomment-398783889 |
| 10 | + |
| 11 | +- Triaging issues on the [2018 edition milestone]. |
| 12 | + |
| 13 | +- Commercial testimonials. cf. #108 |
| 14 | + |
| 15 | +[2018 edition milestone]: https://github.com/rust-lang-nursery/embedded-wg/milestone/1 |
| 16 | + |
| 17 | +# Minutes |
| 18 | + |
| 19 | +## `thumbv6m-none-eabi` |
| 20 | + |
| 21 | +We spent quite a bit of time discussing what to do regarding this upcoming problem. This target is |
| 22 | +part of what we want to have working on stable for the edition release, but we don't want to block |
| 23 | +upgrading LLVM which benefits the WASM ecosystem and improves LLD, which the no_std / embedded |
| 24 | +ecosystem also uses. |
| 25 | + |
| 26 | +We decided to not block the PR but to prioritize fixing the LLVM bug to re-enable the `thumbv6m` |
| 27 | +target before the next cycle. This would involve making `rust-std` unavailable for `thumbv6m` in |
| 28 | +nightly for as long it takes to fix the LLVM bug. |
| 29 | + |
| 30 | +Between the time the meeting was held and these minutes were posted [@pftbest] promptly [fixed] the |
| 31 | +LLVM bug so the problem was completely adverted. Thanks @pftbest! :heart: |
| 32 | + |
| 33 | +[@pftbest]: https://github.com/pftbest |
| 34 | +[fixed]: https://reviews.llvm.org/D48846 |
| 35 | + |
| 36 | +## Rust 2018: home stretch |
| 37 | + |
| 38 | +We worked through [the issues in the 2018 edition milestone][edition] to assess how the work that |
| 39 | +still needs to be done can be accommodated in the roughly 3 cycles that we have before the edition |
| 40 | +release. |
| 41 | + |
| 42 | +### embedded Rust on stable |
| 43 | + |
| 44 | +[rust-lang-nursery/embedded-wg#42](https://github.com/rust-lang-nursery/embedded-wg/issues/42) |
| 45 | + |
| 46 | +This is just waiting for `#[panic_implementation]` to be stabilized. There's no work left for us to |
| 47 | +do. We just have to wait for [the proposed FCP process] to finish. |
| 48 | + |
| 49 | +[edition]: https://github.com/rust-lang-nursery/embedded-wg/milestone/1 |
| 50 | +[the proposed FCP process]: https://github.com/rust-lang/rust/issues/44489#issuecomment-398965881 |
| 51 | + |
| 52 | +### Stable assembly operations |
| 53 | + |
| 54 | +[rust-lang-nursery/embedded-wg#63](https://github.com/rust-lang-nursery/embedded-wg/issues/63) |
| 55 | + |
| 56 | +This is more of a nice to have as it's not required for embedded Rust on stable (we have a |
| 57 | +workaround for `asm!` / `global_asm!` on stable that involves external assembly files). If we hope |
| 58 | +to get this done in time by the edition release then these would be the final deadlines. |
| 59 | + |
| 60 | +- 1.28 (2018-08-02). implement [rust-lang-nursery/stdsimd#437] |
| 61 | + |
| 62 | +- 1.29 (2018-09-13). subset of most commonly used intrinsics stabilized in beta. |
| 63 | + |
| 64 | +[rust-lang-nursery/stdsimd#437]: https://github.com/rust-lang-nursery/stdsimd/issues/437 |
| 65 | + |
| 66 | +### LLVM tools |
| 67 | + |
| 68 | +[rust-lang-nursery/embedded-wg#51](https://github.com/rust-lang-nursery/embedded-wg/issues/51) |
| 69 | + |
| 70 | +This is done as in the LLVM tools can be installed via rustup and the Cargo subcommands exist. We |
| 71 | +will continue to polish the user interface. To that end we'll dogfood the tools in the embedded Rust |
| 72 | +book. |
| 73 | + |
| 74 | +### The embedded Rust book |
| 75 | + |
| 76 | +[rust-lang-nursery/embedded-wg#56](https://github.com/rust-lang-nursery/embedded-wg/issues/56) |
| 77 | + |
| 78 | +We have to decide on the final outline, prioritization of topics and establish a process for others |
| 79 | +to help us write / review the book. The next meeting will focus on this topic. |
| 80 | + |
| 81 | +### Integration with C codebases |
| 82 | + |
| 83 | +[rust-lang-nursery/embedded-wg#48](https://github.com/rust-lang-nursery/embedded-wg/issues/48) |
| 84 | + |
| 85 | +This topic has a section in the embedded Rust book. This issue may be closed once we have a clear |
| 86 | +idea of how we are going to track progress on the book. |
| 87 | + |
| 88 | +### Test embedded targets in rust-lang/rust CI |
| 89 | + |
| 90 | +The extending Rust reach participants mentored by [@jamesmunns] are working on this. Among their |
| 91 | +goals they have: |
| 92 | + |
| 93 | +[@jamesmunns]: https://github.com/jamesmunns |
| 94 | + |
| 95 | +- Adding "it compiles" tests. libcore, or some other crate, compiles for $TARGET |
| 96 | +- Adding "it links" tests. A minimal embedded program links with different compiler options |
| 97 | + (opt-level, LTO, incremental, etc.) and the presence of some symbols is checked (e.g. `main`). |
| 98 | +- Adding "it runs" tests. A embedded program is executed in QEMU and completes successfully. |
| 99 | +- Adding binary size regression tests. The binary size of a program, compiled with opt-level=s, is |
| 100 | + tracked over time (per PR) and the CI fails if the binary size of the program regresses. |
| 101 | + |
| 102 | +In their next meeting they'll discuss which of these goals are must have for edition and which ones |
| 103 | +are stretch goals, and a potential timeline. |
| 104 | + |
| 105 | +### MSP430 support |
| 106 | + |
| 107 | +[rust-lang-nursery/embedded-wg#48](https://github.com/rust-lang-nursery/embedded-wg/issues/48) |
| 108 | + |
| 109 | +The goal is to have a rust-std component working on stable plus up to date svd2rust support by the |
| 110 | +edition release. The deadlines for those are: |
| 111 | + |
| 112 | +- 1.29 (2018-09-13). rust-std component landed and enabled in rust-lang/rust |
| 113 | + |
| 114 | +- 1.30 (2018-10-25). svd2rust support up to date. This requires updating the msp430-rt crate. |
| 115 | + |
| 116 | +Compiler support for interrupts will be left unstable for this architecture. The MSP430 community |
| 117 | +can explore interrupt support using FFI (at a cost), but this is not a goal for the edition release. |
| 118 | + |
| 119 | +### AVR support |
| 120 | + |
| 121 | +[@japaric] will reach out to the owners of the [avr-rust] project to see if we unfork the project in |
| 122 | +time for the edition release. The goal would be able to develop AVR programs using Xargo with an |
| 123 | +official rustc compiler and an unmodified rust-src component. |
| 124 | + |
| 125 | +[@japaric]: https://github.com/japaric |
| 126 | +[avr-rust]: https://github.com/avr-rust |
| 127 | + |
| 128 | +### RISCV support |
| 129 | + |
| 130 | +With the upcoming LLVM 7 upgrade enabling this backend needs to be re-assessed: is it relatively bug |
| 131 | +free for wider use? |
| 132 | + |
| 133 | +### Material for the website |
| 134 | + |
| 135 | +As discussed during the Rust All Hands the website will include: |
| 136 | + |
| 137 | +- Videos of embedded projects |
| 138 | +- "Attributes" that answer the question "why Rust for embedded development?". e.g. Portability, |
| 139 | + interop, etc. |
| 140 | +- Links to documentation: embedded Rust book, embedonomicon, etc. |
| 141 | +- Commercial testimonials |
| 142 | + |
| 143 | +We have issue #108 for collecting commercial testimonials. Videos will come from commercial users |
| 144 | +and from popular hobby projects like the [monotron]. Work on books is tracked elsewhere. The |
| 145 | +attributes section is yet to be written. |
| 146 | + |
| 147 | +[monotron]: https://github.com/thejpster/monotron |
| 148 | + |
| 149 | +## Commercial testimonials |
| 150 | + |
| 151 | +[rust-lang-nursery/embedded-wg#108](https://github.com/rust-lang-nursery/embedded-wg/issues/108) |
| 152 | + |
| 153 | +We quickly revisited the question of whether to include embedded Linux in the WG webpage. For now we |
| 154 | +agreed to just collect all sort of testimonials. |
| 155 | + |
| 156 | +Members of the WG will reach out to their contacts to see who of them are interested in providing |
| 157 | +testimonials. |
| 158 | + |
| 159 | +## Maintaining the Cortex-M / embedded ecosystem |
| 160 | + |
| 161 | +[rust-lang-nursery/embedded-wg#46](https://github.com/rust-lang-nursery/embedded-wg/issues/46) |
| 162 | + |
| 163 | +We didn't have time to discuss this but @japaric will revisit #46 to try to carve a more fleshed out |
| 164 | +proposal for assembling embedded-rust and / or rust-$ARCH GitHub orgs that will maintain the |
| 165 | +embedded ecosystem. |
0 commit comments