Skip to content

Latest commit

 

History

History
165 lines (104 loc) · 6.91 KB

2018-07-02.md

File metadata and controls

165 lines (104 loc) · 6.91 KB

Agenda

Minutes

thumbv6m-none-eabi

We spent quite a bit of time discussing what to do regarding this upcoming problem. This target is part of what we want to have working on stable for the edition release, but we don't want to block upgrading LLVM which benefits the WASM ecosystem and improves LLD, which the no_std / embedded ecosystem also uses.

We decided to not block the PR but to prioritize fixing the LLVM bug to re-enable the thumbv6m target before the next cycle. This would involve making rust-std unavailable for thumbv6m in nightly for as long it takes to fix the LLVM bug.

Between the time the meeting was held and these minutes were posted @pftbest promptly fixed the LLVM bug so the problem was completely adverted. Thanks @pftbest! ❤️

Rust 2018: home stretch

We worked through the issues in the 2018 edition milestone to assess how the work that still needs to be done can be accommodated in the roughly 3 cycles that we have before the edition release.

embedded Rust on stable

rust-lang-nursery/embedded-wg#42

This is just waiting for #[panic_implementation] to be stabilized. There's no work left for us to do. We just have to wait for the proposed FCP process to finish.

Stable assembly operations

rust-lang-nursery/embedded-wg#63

This is more of a nice to have as it's not required for embedded Rust on stable (we have a workaround for asm! / global_asm! on stable that involves external assembly files). If we hope to get this done in time by the edition release then these would be the final deadlines.

LLVM tools

rust-lang-nursery/embedded-wg#51

This is done as in the LLVM tools can be installed via rustup and the Cargo subcommands exist. We will continue to polish the user interface. To that end we'll dogfood the tools in the embedded Rust book.

The embedded Rust book

rust-lang-nursery/embedded-wg#56

We have to decide on the final outline, prioritization of topics and establish a process for others to help us write / review the book. The next meeting will focus on this topic.

Integration with C codebases

rust-lang-nursery/embedded-wg#48

This topic has a section in the embedded Rust book. This issue may be closed once we have a clear idea of how we are going to track progress on the book.

Test embedded targets in rust-lang/rust CI

The extending Rust reach participants mentored by @jamesmunns are working on this. Among their goals they have:

  • Adding "it compiles" tests. libcore, or some other crate, compiles for $TARGET
  • Adding "it links" tests. A minimal embedded program links with different compiler options (opt-level, LTO, incremental, etc.) and the presence of some symbols is checked (e.g. main).
  • Adding "it runs" tests. A embedded program is executed in QEMU and completes successfully.
  • Adding binary size regression tests. The binary size of a program, compiled with opt-level=s, is tracked over time (per PR) and the CI fails if the binary size of the program regresses.

In their next meeting they'll discuss which of these goals are must have for edition and which ones are stretch goals, and a potential timeline.

MSP430 support

rust-lang-nursery/embedded-wg#48

The goal is to have a rust-std component working on stable plus up to date svd2rust support by the edition release. The deadlines for those are:

  • 1.29 (2018-09-13). rust-std component landed and enabled in rust-lang/rust

  • 1.30 (2018-10-25). svd2rust support up to date. This requires updating the msp430-rt crate.

Compiler support for interrupts will be left unstable for this architecture. The MSP430 community can explore interrupt support using FFI (at a cost), but this is not a goal for the edition release.

AVR support

@japaric will reach out to the owners of the avr-rust project to see if we unfork the project in time for the edition release. The goal would be able to develop AVR programs using Xargo with an official rustc compiler and an unmodified rust-src component.

RISCV support

With the upcoming LLVM 7 upgrade enabling this backend needs to be re-assessed: is it relatively bug free for wider use?

Material for the website

As discussed during the Rust All Hands the website will include:

  • Videos of embedded projects
  • "Attributes" that answer the question "why Rust for embedded development?". e.g. Portability, interop, etc.
  • Links to documentation: embedded Rust book, embedonomicon, etc.
  • Commercial testimonials

We have issue #108 for collecting commercial testimonials. Videos will come from commercial users and from popular hobby projects like the monotron. Work on books is tracked elsewhere. The attributes section is yet to be written.

Commercial testimonials

rust-lang-nursery/embedded-wg#108

We quickly revisited the question of whether to include embedded Linux in the WG webpage. For now we agreed to just collect all sort of testimonials.

Members of the WG will reach out to their contacts to see who of them are interested in providing testimonials.

Maintaining the Cortex-M / embedded ecosystem

rust-lang-nursery/embedded-wg#46

We didn't have time to discuss this but @japaric will revisit #46 to try to carve a more fleshed out proposal for assembling embedded-rust and / or rust-$ARCH GitHub orgs that will maintain the embedded ecosystem.