Skip to content

Commit dca527a

Browse files
committed
push last meeting minutes
1 parent caa9784 commit dca527a

File tree

1 file changed

+165
-0
lines changed

1 file changed

+165
-0
lines changed

minutes/2018-07-02.md

Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
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

Comments
 (0)