owned this note
owned this note
Published
Linked with GitHub
---
tags: weekly, rustc
type: docs
---
# T-compiler Meeting Agenda 2023-06-22
## Announcements
- [Types team meeting](https://www.google.com/calendar/event?eid=MTg3MDhpdTc3YXBqMGMzbnNxanUwdWZnazhfMjAyMzA2MjZUMTQwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-06-26T10:00:00-04:00>
- Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @_**pnkfelix** or @_**Wesley Wiser** so we can pass it along).
### Other WG meetings ([calendar link](https://calendar.google.com/calendar/embed?src=6u5rrtce6lrtv07pfi3damgjus%40group.calendar.google.com))
- [wg-async: Open discussion](https://www.google.com/calendar/event?eid=N211N3RrYzVqcnVvNnBycGFrcW9mcjNocTNfMjAyMzA2MjJUMTYwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-06-22T12:00:00-04:00>
- [[Types] Rotating new solver / formality / polonius deep dive](https://www.google.com/calendar/event?eid=N29vMXZqbGZ1MDIxbzllMDI3dGhocWhhZmNfMjAyMzA2MjZUMTUwMDAwWiA2dTVycnRjZTZscnR2MDdwZmkzZGFtZ2p1c0Bn) at <time:2023-06-26T11:00:00-04:00>
## MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- No new proposals this time.
- Old MCPs (stale MCP might be closed as per [MCP procedure](https://forge.rust-lang.org/compiler/mcp.html#when-should-major-change-proposals-be-closed))
- None at this time
- Old MCPs (not seconded, take a look)
- "2024: Decrease debuginfo generated by `-Cdebuginfo=1`" [compiler-team#613](https://github.com/rust-lang/compiler-team/issues/613) (last review activity: 2 months ago)
- "Cell Broadband Engine SPU support" [compiler-team#614](https://github.com/rust-lang/compiler-team/issues/614) (last review activity: 2 months ago)
- "Revise error code documentation standard" [compiler-team#615](https://github.com/rust-lang/compiler-team/issues/615) (last review activity: 2 months ago)
- "Add support for Zephyr OS" [compiler-team#629](https://github.com/rust-lang/compiler-team/issues/629) (last review activity: about 0 days ago)
- "Consistently use "region" terminology in later stages of the compiler" [compiler-team#634](https://github.com/rust-lang/compiler-team/issues/634) (last review activity: about 27 days ago)
- "Add a new `--build-id` flag to rustc" [compiler-team#635](https://github.com/rust-lang/compiler-team/issues/635) (last review activity: about 27 days ago)
- "Simplify and improve explicitness of the check-cfg syntax" [compiler-team#636](https://github.com/rust-lang/compiler-team/issues/636) (last review activity: about 8 days ago)
- "[MCP] proposing a macros working group" [compiler-team#637](https://github.com/rust-lang/compiler-team/issues/637) (last review activity: about 6 days ago)
- Pending FCP requests (check your boxes!)
- No pending FCP requests this time.
- Things in FCP (make sure you're good with it)
- "Disallow incoherent cfgs" [compiler-team#610](https://github.com/rust-lang/compiler-team/issues/610)
- "Runtime checks for occupied niches" [compiler-team#624](https://github.com/rust-lang/compiler-team/issues/624)
- "Add a blanket flag to enable/disable codegen UB checks" [compiler-team#625](https://github.com/rust-lang/compiler-team/issues/625)
- "Add `mips64r6` and `mips32r6` options to `target_arch`" [compiler-team#632](https://github.com/rust-lang/compiler-team/issues/632)
- "Report all lints, even if other errors already occurred." [compiler-team#633](https://github.com/rust-lang/compiler-team/issues/633)
- "Assign maintainers for MIPS R6 targets" [compiler-team#638](https://github.com/rust-lang/compiler-team/issues/638)
- "Use `FieldIdx` all the way down" [compiler-team#639](https://github.com/rust-lang/compiler-team/issues/639)
- Accepted MCPs
- No new accepted proposals this time.
- Finalized FCPs (disposition merge)
- "resolve: Remove artificial import ambiguity errors" [rust#112086](https://github.com/rust-lang/rust/pull/112086)
### WG checkins
- Generic Associated Types initiative by @**Jack Huey** ([previous checkin](https://hackmd.io/IvuR59rBR2Ka9opecmfaJQ#WG-checkins)):
> Nothing new
- @_*WG-diagnostics* by @**Esteban Küber** and @**oli** ([previous checkin](https://hackmd.io/4CKNflTQQIKOxk7jiuh7NQ#WG-checkins)):
> nothing to report
## Backport nominations
[T-compiler stable](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Abeta-nominated+-label%3Abeta-accepted+label%3AT-compiler) / [T-compiler beta](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Astable-nominated+-label%3Astable-accepted+label%3AT-compiler)
- :beta: [1.71.0] "Disable alignment checks on i686-pc-windows-msvc" [rust#112684](https://github.com/rust-lang/rust/pull/112684)
- first step to fix an unsoundness (#112480) (MSVC and rustc disagreement on minimum stack alignment on `i686-pc-windows-msvc`)
- discussed last week ([Zulip link](https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bweekly.5D.202023-06-15/near/366526208))
- also nominated for stable backport
<!--
/poll Approve beta backport of #112684?
approve
decline
don't know
-->
- :beta: [1.71.0] "Fix linker failures when #[global_allocator] is used in a dependency" [rust#112794](https://github.com/rust-lang/rust/pull/112794)
- fixes P-high unsoundness #112715
<!--
/poll Approve beta backport of #112794?
approve
decline
don't know
-->
- :stable: [1.70.1] "Disable alignment checks on i686-pc-windows-msvc" [rust#112684](https://github.com/rust-lang/rust/pull/112684)
<!--
/poll Approve stable backport of #112684?
approve
approve but does not justify new dot release
decline
don't know
-->
[T-rustdoc stable](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Abeta-nominated+-label%3Abeta-accepted+label%3AT-rustdoc) / [T-rustdoc beta](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Astable-nominated+-label%3Astable-accepted+label%3AT-rustdoc)
- No beta nominations for `T-rustdoc` this time.
- No stable nominations for `T-rustdoc` this time.
:back: / :shrug: / :hand:
## Issues of Note
### Short Summary
- [0 T-compiler P-critical issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-critical)
- [0 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-critical+no%3Aassignee)
- [65 T-compiler P-high issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high)
- [32 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high+no%3Aassignee)
- [1 P-critical, 1 P-high, 0 P-medium, 1 P-low regression-from-stable-to-beta](https://github.com/rust-lang/rust/labels/regression-from-stable-to-beta)
- [0 P-critical, 0 P-high, 1 P-medium, 2 P-low regression-from-stable-to-nightly](https://github.com/rust-lang/rust/labels/regression-from-stable-to-nightly)
- [0 P-critical, 36 P-high, 100 P-medium, 20 P-low regression-from-stable-to-stable](https://github.com/rust-lang/rust/labels/regression-from-stable-to-stable)
### P-critical
[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AP-critical+label%3AT-compiler)
- No `P-critical` issues for `T-compiler` at this time.
[T-types](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AP-critical+label%3AT-types)
- No `P-critical` issues for `T-types` at this time.
[T-rustdoc](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AP-critical+label%3AT-rustdoc)
- No `P-critical` issues for `T-rustdoc` at this time.
### P-high regressions
[P-high beta regressions](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Aregression-from-stable-to-beta+label%3AP-high+-label%3AT-infra+-label%3AT-libs+-label%3AT-libs-api+-label%3AT-release+-label%3AT-rustdoc+-label%3AT-core)
- "const-propagated `arithmetic_overflow` in unreachable code" [rust#109731](https://github.com/rust-lang/rust/issues/109731)
- "based on further discussion in today's triage meeting and follow-up ... we're going to let this ride the trains" ([comment](https://github.com/rust-lang/rust/issues/109731#issuecomment-1553521897))
- It's now on stable, so close it?
[Unassigned P-high nightly regressions](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Aregression-from-stable-to-nightly+label%3AP-high+no%3Aassignee+-label%3AT-infra+-label%3AT-libs+-label%3AT-libs-api+-label%3AT-release+-label%3AT-rustdoc+-label%3AT-core+)
- No unassigned `P-high` nightly regressions this time.
## Performance logs
> [triage logs for 2023-06-20](https://github.com/rust-lang/rustc-perf/blob/d9c55fb1800a1a32a73b8f1ff7e97b38047a7fc7/triage/2023-06-20.md)
Fairly positive week with very few regressions and some decent (albeit incremental) improvements. The most widespread gains came from some standard library improvements which are not a particularly common cause of large improvements in compiler performance. Overall a large chunk of the perf test suite showed an average of 0.6% improvement.
Triage done by **@rylev**.
Revision range: [4bd4e2e..b9d608c](https://perf.rust-lang.org/?start=4bd4e2ea824f4f458cae8917047ebb6b88853fe6&end=b9d608c979ad3c0700f9f0237a8c12feb0ba44fb&absolute=false&stat=instructions%3Au)
**Summary**:
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:---------------:|:-----:|
| Regressions (primary) | 1.4% | [0.5%, 3.6%] | 16 |
| Regressions (secondary) | 1.0% | [0.2%, 3.5%] | 29 |
| Improvements (primary) | -0.8% | [-7.8%, -0.2%] | 157 |
| Improvements (secondary) | -2.9% | [-48.3%, -0.3%] | 84 |
| All (primary) | -0.6% | [-7.8%, 3.6%] | 173 |
3 Regressions, 7 Improvements, 4 Mixed; 3 of them in rollups
51 artifact comparisons made in total
#### Regressions
Rollup of 7 pull requests [#112625](https://github.com/rust-lang/rust/pull/112625) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=0b475c705f36fb3b0a63994b92f2bbd2f5865b07&end=8c74a5d27c644a0f7a22bb2fa8dd3ff8257bc220&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:----:|:------------:|:-----:|
| Regressions (primary) | 0.3% | [0.2%, 0.4%] | 4 |
| Regressions (secondary) | 0.2% | [0.2%, 0.2%] | 1 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.3% | [0.2%, 0.4%] | 4 |
- Seems like this was a blip in the bitmaps test which corrected itself in the next run.
Add `AliasKind::Weak` for type aliases. [#108860](https://github.com/rust-lang/rust/pull/108860) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=670a0edaa9d80683df8db81554890710e79f8024&end=0cc541e4b2eb957e71490cf44df1ac09f6d18132&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:----:|:------------:|:-----:|
| Regressions (primary) | 0.3% | [0.2%, 0.5%] | 8 |
| Regressions (secondary) | 0.4% | [0.2%, 0.8%] | 7 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.3% | [0.2%, 0.5%] | 8 |
- Poked author and reviewer for thoughts on small regressions
CI: merge `mingw` test CI jobs [#112645](https://github.com/rust-lang/rust/pull/112645) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=939786223f2d36b1af62e27e9a7a54bae6e30f3f&end=2d0aa57684e10f7b3d3fe740ee18d431181583ad&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:----:|:------------:|:-----:|
| Regressions (primary) | 0.8% | [0.7%, 0.8%] | 3 |
| Regressions (secondary) | 0.7% | [0.6%, 0.7%] | 2 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.8% | [0.7%, 0.8%] | 3 |
- Noise as Linux was impacted
#### Improvements
Introduce a minimum CGU size in non-incremental builds. [#112448](https://github.com/rust-lang/rust/pull/112448) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6330daade9766bbf896495898c2347dc3be6da17&end=fa8762b7b6c2b75d6c83fb011ee8fa4874168829&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:---------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -2.1% | [-7.8%, -0.3%] | 19 |
| Improvements (secondary) | -8.5% | [-45.9%, -0.4%] | 22 |
| All (primary) | -2.1% | [-7.8%, -0.3%] | 19 |
Don't drain-on-drop in DrainFilter impls of various collections. [#104455](https://github.com/rust-lang/rust/pull/104455) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=8c74a5d27c644a0f7a22bb2fa8dd3ff8257bc220&end=6ee4265ca6a7f037237974eeb66e8303282c6a4c&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | 0.5% | [0.2%, 1.2%] | 3 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.5% | [-1.8%, -0.1%] | 35 |
| Improvements (secondary) | -0.5% | [-1.1%, -0.2%] | 14 |
| All (primary) | -0.4% | [-1.8%, 1.2%] | 38 |
optimize slice::Iter::fold [#106343](https://github.com/rust-lang/rust/pull/106343) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=5a65be815211a059b08ee3b786583308377372fa&end=4996b56ba9647d149265d03dcbd9ab837af3a1bb&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | 0.7% | [0.4%, 1.1%] | 5 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.2% | [-0.4%, -0.2%] | 87 |
| Improvements (secondary) | -0.3% | [-1.2%, -0.1%] | 24 |
| All (primary) | -0.2% | [-0.4%, 1.1%] | 92 |
Rollup of 7 pull requests [#112716](https://github.com/rust-lang/rust/pull/112716) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6bba061467f7c2cab04b262b95eb67bf89265587&end=670a0edaa9d80683df8db81554890710e79f8024&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.4% | [-0.4%, -0.4%] | 2 |
| Improvements (secondary) | -0.4% | [-0.4%, -0.2%] | 4 |
| All (primary) | -0.4% | [-0.4%, -0.4%] | 2 |
Rollup of 5 pull requests [#112755](https://github.com/rust-lang/rust/pull/112755) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=0c2c243342ec2a2427f0624fac5ac59f0ee6fbcd&end=76fb0e38087cb8fcc6de5fe2ce347e939dfdb0bd&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.8% | [-1.8%, -0.2%] | 16 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | -0.8% | [-1.8%, -0.2%] | 16 |
Rollup of 6 pull requests [#112774](https://github.com/rust-lang/rust/pull/112774) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=2d0aa57684e10f7b3d3fe740ee18d431181583ad&end=f217411bacbe943ead9dfca93a91dff0753c2a96&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.8% | [-0.8%, -0.7%] | 3 |
| Improvements (secondary) | -0.7% | [-0.7%, -0.7%] | 2 |
| All (primary) | -0.8% | [-0.8%, -0.7%] | 3 |
new solver proof tree generation [#112351](https://github.com/rust-lang/rust/pull/112351) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=3c9e0705ba0c1c845fe7cdbd0bdf4a914f49cc8e&end=18a6d911caba59605eb03db1452848a85d2e5879&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.5% | [-0.8%, -0.2%] | 9 |
| Improvements (secondary) | -1.2% | [-1.6%, -0.5%] | 8 |
| All (primary) | -0.5% | [-0.8%, -0.2%] | 9 |
#### Mixed
Add support for targets without unwinding in `mir-opt`, and improve `--bless` for it [#112418](https://github.com/rust-lang/rust/pull/112418) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7b0eac438ace0ba305b4633328b00474fbbf5120&end=afa9fef70904bee316d5a73275397d7c4e7c8c4b&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | 0.3% | [0.2%, 0.3%] | 3 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -1.3% | [-1.3%, -1.3%] | 1 |
| All (primary) | 0.3% | [0.2%, 0.3%] | 3 |
- Noise returning to a steady state
Ignore the always part of #[inline(always)] in MIR inlining [#112294](https://github.com/rust-lang/rust/pull/112294) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6a94e87a54ecf2df307c65af2dbc2effb3a525b8&end=6bba061467f7c2cab04b262b95eb67bf89265587&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | 1.7% | [1.2%, 2.5%] | 8 |
| Regressions (secondary) | 0.6% | [0.2%, 1.4%] | 7 |
| Improvements (primary) | -0.4% | [-3.0%, -0.2%] | 61 |
| Improvements (secondary) | -0.4% | [-1.0%, -0.2%] | 18 |
| All (primary) | -0.1% | [-3.0%, 2.5%] | 69 |
- From the author: "There are some notable regressions, and I think we might be able to claw those back by turning `#[inline(always)]` into a stronger hint. But I think this PR stands decently on its own as a tidy simplification."
Remove `box_free` lang item [#100036](https://github.com/rust-lang/rust/pull/100036) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e1c29d137dd779dcfce447d8d149ee6b8e9bdf78&end=a8a29070f07e47a244c8199ad582f93172019743&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | 1.2% | [1.0%, 1.7%] | 4 |
| Regressions (secondary) | 1.7% | [1.1%, 3.4%] | 5 |
| Improvements (primary) | -0.6% | [-0.6%, -0.6%] | 2 |
| Improvements (secondary) | -2.5% | [-4.4%, -1.4%] | 4 |
| All (primary) | 0.6% | [-0.6%, 1.7%] | 6 |
- Waiting on the author and reviewer to give their thoughts.
make mir dataflow graphviz dumps opt-in [#112617](https://github.com/rust-lang/rust/pull/112617) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f217411bacbe943ead9dfca93a91dff0753c2a96&end=c911e085144324110b4b51b333e71444861b0d17&stat=instructions:u)
| (instructions:u) | mean | range | count |
|:------------------------:|:-----:|:--------------:|:-----:|
| Regressions (primary) | 0.6% | [0.6%, 0.7%] | 3 |
| Regressions (secondary) | 0.6% | [0.6%, 0.6%] | 1 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.5% | [-0.6%, -0.4%] | 6 |
| All (primary) | 0.6% | [0.6%, 0.7%] | 3 |
- Regressions are noise
## PRs S-waiting-on-team
[T-compiler](https://github.com/rust-lang/rust/pulls?q=is%3Aopen+label%3AS-waiting-on-team+label%3AT-compiler)
- Issues [in progress or waiting on other teams](https://hackmd.io/XYr1BrOWSiqCrl8RCWXRaQ)
### Oldest PRs waiting for review
[T-compiler](https://github.com/rust-lang/rust/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-asc+label%3AS-waiting-on-review+draft%3Afalse+label%3AT-compiler)
- "Fixes LTO + build-std + Oz failed to resolve undefined symbols" [rust#109821](https://github.com/rust-lang/rust/pull/109821)
- discussed [here](https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bweekly.5D.202023-06-08/near/364589911) cc: @**pnkfelix**, switch over to you if it's fine?
- "Add armv8r-none-eabihf target for the Cortex-R52." [rust#110482](https://github.com/rust-lang/rust/pull/110482)
- cc: @**Wesley Wiser**
- "Add support for NetBSD/aarch64-be (big-endian arm64)." [rust#111326](https://github.com/rust-lang/rust/pull/111326) (last review activity: about 44 days ago)
- cc @**oli**
- "suggest `slice::swap` for `mem::swap(&mut x[0], &mut x[1])` borrowck error" [rust#111403](https://github.com/rust-lang/rust/pull/111403)
- cc: @**Matthew Jasper** (did last review)
## Nominated Issues
[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-compiler-nominated)
- No I-compiler-nominated issues
[RFC](https://github.com/rust-lang/rfcs/issues?q=is%3Aopen+label%3AI-compiler-nominated)
- No I-compiler-nominated RFCs this time.
## Next week's WG checkins
- @_*WG-rustc-dev-guide* by @**Santiago Pastorino** and @**Yuki Okushi|217081**
- Impl Trait initiative by @**oli**
Agenda draft: https://hackmd.io/0I_xYjKMSc6lYT655FpWbg