├── .github ├── ISSUE_TEMPLATE │ ├── major_change.md │ └── meeting-proposal.md └── workflows │ └── deploy.yml ├── .gitignore ├── .gitmodules ├── CODE_OF_CONDUCT.md ├── LICENSE-APACHE ├── LICENSE-MIT ├── README.md ├── config.toml ├── content ├── _index.md ├── about │ ├── CODE_OF_CONDUCT.md │ ├── _index.md │ ├── chat-platform.md │ ├── steering-meeting.md │ └── triage-meeting.md ├── menu │ └── index.md ├── minutes │ ├── _index.md │ ├── design-meeting │ │ ├── 2019-06-21-the-gcx-tcx-transition.md │ │ ├── 2019-07-08-triage-wg.md │ │ ├── 2019-09-13-rust-analyzer-and-libraryification.md │ │ ├── 2019-09-20-target-tier-policy.md │ │ ├── 2019-09-27-place-interning.md │ │ ├── 2019-10-04-Roadmap-2020-Goals.md │ │ ├── 2019-10-11-DepGraph-persistence-PR62038.md │ │ ├── 2019-10-18-debuginfo-meeting.md │ │ ├── 2019-11-01-streaming-dep-graph-proposal.md │ │ ├── 2019-11-09-unified-dataflow-framework.md │ │ ├── 2019-11-16-Working-Group-Retrospective.md │ │ ├── 2019-11-29-repl-meeting.md │ │ ├── 2019-12-06-end-to-end-query-PRs.md │ │ ├── 2019-12-20-major-change-process.md │ │ ├── 2020-02-28-focused-and-efficient-triage.md │ │ ├── 2020-03-12-shared-library-for-types.md │ │ ├── 2020-04-03-cranelift-backend-for-rustc.md │ │ ├── 2020-05-29-Roadmap-2020-2021.md │ │ ├── 2020-09-18-mcp-retrospective.md │ │ └── _index.md │ ├── steering-meeting │ │ ├── 2018-10-26.md │ │ ├── 2018-11-16.md │ │ ├── 2018-12-14.md │ │ ├── 2019-01-04.md │ │ ├── 2019-01-17.md │ │ ├── 2019-03-01.md │ │ ├── 2019-03-22.md │ │ ├── 2019-04-12.md │ │ └── _index.md │ └── triage-meeting │ │ ├── 2019-04-11.md │ │ ├── 2019-04-18.md │ │ ├── 2019-04-25.md │ │ ├── 2019-05-02.md │ │ ├── 2019-05-09.md │ │ ├── 2019-05-16.md │ │ ├── 2019-05-23.md │ │ ├── 2019-06-06.md │ │ ├── 2019-06-13.md │ │ ├── 2019-06-20.md │ │ ├── 2019-06-27.md │ │ ├── 2019-07-04.md │ │ ├── 2019-07-11.md │ │ ├── 2019-07-18.md │ │ ├── 2019-07-25.md │ │ ├── 2019-08-01.md │ │ ├── 2019-08-15.md │ │ ├── 2019-08-29.md │ │ ├── 2019-09-05.md │ │ ├── 2019-09-12.md │ │ ├── 2019-09-19.md │ │ ├── 2019-09-26.md │ │ ├── 2019-10-10.md │ │ ├── 2019-10-17.md │ │ ├── 2019-10-24.md │ │ ├── 2019-10-31.md │ │ ├── 2019-11-07.md │ │ ├── 2019-11-14.md │ │ ├── 2019-11-21.md │ │ ├── 2019-11-28.md │ │ ├── 2019-12-05.md │ │ ├── 2019-12-12.md │ │ ├── 2019-12-19.md │ │ ├── 2020-01-02.md │ │ ├── 2020-01-09.md │ │ ├── 2020-01-23.md │ │ ├── 2020-02-06.md │ │ ├── 2020-02-13.md │ │ ├── 2020-02-20.md │ │ ├── T-compiler Meeting Agenda 2020-03-12.md │ │ ├── T-compiler Meeting Agenda 2020-03-19.md │ │ ├── T-compiler Meeting Agenda 2020-03-26.md │ │ ├── T-compiler Meeting Agenda 2020-04-02.md │ │ ├── T-compiler Meeting Agenda 2020-04-09.md │ │ ├── T-compiler Meeting Agenda 2020-04-16.md │ │ ├── T-compiler Meeting Agenda 2020-04-23.md │ │ ├── T-compiler Meeting Agenda 2020-04-30.md │ │ ├── T-compiler Meeting Agenda 2020-05-07.md │ │ ├── T-compiler Meeting Agenda 2020-05-14.md │ │ ├── T-compiler Meeting Agenda 2020-05-21.md │ │ ├── T-compiler Meeting Agenda 2020-05-28.md │ │ ├── T-compiler Meeting Agenda 2020-06-04.md │ │ ├── T-compiler Meeting Agenda 2020-06-11.md │ │ ├── T-compiler Meeting Agenda 2020-06-18.md │ │ ├── T-compiler Meeting Agenda 2020-06-25.md │ │ ├── T-compiler Meeting Agenda 2020-07-02.md │ │ ├── T-compiler Meeting Agenda 2020-07-09.md │ │ ├── T-compiler Meeting Agenda 2020-07-16.md │ │ ├── T-compiler Meeting Agenda 2020-07-23.md │ │ ├── T-compiler Meeting Agenda 2020-07-30.md │ │ ├── T-compiler Meeting Agenda 2020-08-06.md │ │ ├── T-compiler Meeting Agenda 2020-08-13.md │ │ ├── T-compiler Meeting Agenda 2020-08-20.md │ │ ├── T-compiler Meeting Agenda 2020-08-27.md │ │ ├── T-compiler Meeting Agenda 2020-09-03.md │ │ ├── T-compiler Meeting Agenda 2020-09-10.md │ │ ├── T-compiler Meeting Agenda 2020-09-17.md │ │ ├── T-compiler Meeting Agenda 2020-09-24.md │ │ ├── T-compiler Meeting Agenda 2020-10-01.md │ │ ├── T-compiler Meeting Agenda 2020-10-08.md │ │ ├── T-compiler Meeting Agenda 2020-10-15.md │ │ ├── T-compiler Meeting Agenda 2020-10-22.md │ │ ├── T-compiler Meeting Agenda 2020-10-29.md │ │ ├── T-compiler Meeting Agenda 2020-11-05.md │ │ ├── T-compiler Meeting Agenda 2020-11-12.md │ │ ├── T-compiler Meeting Agenda 2020-11-19.md │ │ ├── T-compiler Meeting Agenda 2020-12-03.md │ │ ├── T-compiler Meeting Agenda 2020-12-10.md │ │ ├── T-compiler Meeting Agenda 2020-12-17.md │ │ ├── T-compiler Meeting Agenda 2020-12-24.md │ │ ├── T-compiler Meeting Agenda 2020-12-31.md │ │ ├── T-compiler Meeting Agenda 2021-01-07.md │ │ ├── T-compiler Meeting Agenda 2021-01-14.md │ │ ├── T-compiler Meeting Agenda 2021-01-21.md │ │ ├── T-compiler Meeting Agenda 2021-01-28.md │ │ ├── T-compiler Meeting Agenda 2021-02-04.md │ │ ├── T-compiler Meeting Agenda 2021-02-11.md │ │ ├── T-compiler Meeting Agenda 2021-02-18.md │ │ ├── T-compiler Meeting Agenda 2021-02-25.md │ │ ├── T-compiler Meeting Agenda 2021-03-04.md │ │ ├── T-compiler Meeting Agenda 2021-03-11.md │ │ ├── T-compiler Meeting Agenda 2021-03-18.md │ │ ├── T-compiler Meeting Agenda 2021-03-25.md │ │ ├── T-compiler Meeting Agenda 2021-04-01.md │ │ ├── T-compiler Meeting Agenda 2021-04-08.md │ │ ├── T-compiler Meeting Agenda 2021-04-15.md │ │ ├── T-compiler Meeting Agenda 2021-04-22.md │ │ ├── T-compiler Meeting Agenda 2021-04-29.md │ │ ├── T-compiler Meeting Agenda 2021-05-06.md │ │ ├── T-compiler Meeting Agenda 2021-05-13.md │ │ ├── T-compiler Meeting Agenda 2021-05-20.md │ │ ├── T-compiler Meeting Agenda 2021-05-27.md │ │ ├── T-compiler Meeting Agenda 2021-06-03.md │ │ ├── T-compiler Meeting Agenda 2021-06-10.md │ │ ├── T-compiler Meeting Agenda 2021-06-17.md │ │ ├── T-compiler Meeting Agenda 2021-06-24.md │ │ ├── T-compiler Meeting Agenda 2021-07-01.md │ │ ├── T-compiler Meeting Agenda 2021-07-08.md │ │ ├── T-compiler Meeting Agenda 2021-07-15.md │ │ ├── T-compiler Meeting Agenda 2021-07-22.md │ │ ├── T-compiler Meeting Agenda 2021-07-29.md │ │ ├── T-compiler Meeting Agenda 2021-08-05.md │ │ ├── T-compiler Meeting Agenda 2021-08-12.md │ │ ├── T-compiler Meeting Agenda 2021-08-19.md │ │ ├── T-compiler Meeting Agenda 2021-08-26.md │ │ ├── T-compiler Meeting Agenda 2021-09-02.md │ │ ├── T-compiler Meeting Agenda 2021-09-09.md │ │ ├── T-compiler Meeting Agenda 2021-09-16.md │ │ ├── T-compiler Meeting Agenda 2021-09-23.md │ │ ├── T-compiler Meeting Agenda 2021-09-30.md │ │ ├── T-compiler Meeting Agenda 2021-10-07.md │ │ ├── T-compiler Meeting Agenda 2021-10-14.md │ │ ├── T-compiler Meeting Agenda 2021-10-21.md │ │ ├── T-compiler Meeting Agenda 2021-10-28.md │ │ ├── T-compiler Meeting Agenda 2021-11-04.md │ │ ├── T-compiler Meeting Agenda 2021-11-11.md │ │ ├── T-compiler Meeting Agenda 2021-11-18.md │ │ ├── T-compiler Meeting Agenda 2021-11-24.md │ │ ├── T-compiler Meeting Agenda 2021-12-02.md │ │ ├── T-compiler Meeting Agenda 2021-12-09.md │ │ ├── T-compiler Meeting Agenda 2021-12-16.md │ │ ├── T-compiler Meeting Agenda 2021-12-23.md │ │ ├── T-compiler Meeting Agenda 2021-12-30.md │ │ ├── T-compiler Meeting Agenda 2022-01-06.md │ │ ├── T-compiler Meeting Agenda 2022-01-13.md │ │ ├── T-compiler Meeting Agenda 2022-01-20.md │ │ ├── T-compiler Meeting Agenda 2022-01-27.md │ │ ├── T-compiler Meeting Agenda 2022-02-03.md │ │ ├── T-compiler Meeting Agenda 2022-02-10.md │ │ ├── T-compiler Meeting Agenda 2022-02-17.md │ │ ├── T-compiler Meeting Agenda 2022-02-24.md │ │ ├── T-compiler Meeting Agenda 2022-03-03.md │ │ ├── T-compiler Meeting Agenda 2022-03-10.md │ │ ├── T-compiler Meeting Agenda 2022-03-17.md │ │ ├── T-compiler Meeting Agenda 2022-03-24.md │ │ ├── T-compiler Meeting Agenda 2022-03-31.md │ │ ├── T-compiler Meeting Agenda 2022-04-07.md │ │ ├── T-compiler Meeting Agenda 2022-04-14.md │ │ ├── T-compiler Meeting Agenda 2022-04-21.md │ │ ├── T-compiler Meeting Agenda 2022-04-28.md │ │ ├── T-compiler Meeting Agenda 2022-05-05.md │ │ ├── T-compiler Meeting Agenda 2022-05-12.md │ │ ├── T-compiler Meeting Agenda 2022-05-19.md │ │ ├── T-compiler Meeting Agenda 2022-05-26.md │ │ ├── T-compiler Meeting Agenda 2022-06-02.md │ │ ├── T-compiler Meeting Agenda 2022-06-09.md │ │ ├── T-compiler Meeting Agenda 2022-06-16.md │ │ ├── T-compiler Meeting Agenda 2022-06-23.md │ │ ├── T-compiler Meeting Agenda 2022-06-30.md │ │ ├── T-compiler Meeting Agenda 2022-07-07.md │ │ ├── T-compiler Meeting Agenda 2022-07-14.md │ │ ├── T-compiler Meeting Agenda 2022-07-21.md │ │ ├── T-compiler Meeting Agenda 2022-07-28.md │ │ ├── T-compiler Meeting Agenda 2022-08-04.md │ │ ├── T-compiler Meeting Agenda 2022-08-11.md │ │ ├── T-compiler Meeting Agenda 2022-08-18.md │ │ ├── T-compiler Meeting Agenda 2022-08-25.md │ │ ├── T-compiler Meeting Agenda 2022-09-01.md │ │ ├── T-compiler Meeting Agenda 2022-09-08.md │ │ ├── T-compiler Meeting Agenda 2022-09-15.md │ │ ├── T-compiler Meeting Agenda 2022-09-22.md │ │ ├── T-compiler Meeting Agenda 2022-09-29.md │ │ ├── T-compiler Meeting Agenda 2022-10-06.md │ │ ├── T-compiler Meeting Agenda 2022-10-13.md │ │ ├── T-compiler Meeting Agenda 2022-10-20.md │ │ ├── T-compiler Meeting Agenda 2022-10-27.md │ │ ├── T-compiler Meeting Agenda 2022-11-03.md │ │ ├── T-compiler Meeting Agenda 2022-11-10.md │ │ ├── T-compiler Meeting Agenda 2022-11-17.md │ │ ├── T-compiler Meeting Agenda 2022-11-24.md │ │ ├── T-compiler Meeting Agenda 2022-12-01.md │ │ ├── T-compiler Meeting Agenda 2022-12-08.md │ │ ├── T-compiler Meeting Agenda 2022-12-15.md │ │ ├── T-compiler Meeting Agenda 2022-12-22.md │ │ ├── T-compiler Meeting Agenda 2023-01-05.md │ │ ├── T-compiler Meeting Agenda 2023-01-12.md │ │ ├── T-compiler Meeting Agenda 2023-01-19.md │ │ ├── T-compiler Meeting Agenda 2023-01-26.md │ │ ├── T-compiler Meeting Agenda 2023-02-02.md │ │ ├── T-compiler Meeting Agenda 2023-02-09.md │ │ ├── T-compiler Meeting Agenda 2023-02-16.md │ │ ├── T-compiler Meeting Agenda 2023-02-23.md │ │ ├── T-compiler Meeting Agenda 2023-03-02.md │ │ ├── T-compiler Meeting Agenda 2023-03-09.md │ │ ├── T-compiler Meeting Agenda 2023-03-16.md │ │ ├── T-compiler Meeting Agenda 2023-03-23.md │ │ ├── T-compiler Meeting Agenda 2023-03-30.md │ │ ├── T-compiler Meeting Agenda 2023-04-06.md │ │ ├── T-compiler Meeting Agenda 2023-04-13.md │ │ ├── T-compiler Meeting Agenda 2023-04-20.md │ │ ├── T-compiler Meeting Agenda 2023-04-27.md │ │ ├── T-compiler Meeting Agenda 2023-05-04.md │ │ ├── T-compiler Meeting Agenda 2023-05-11.md │ │ ├── T-compiler Meeting Agenda 2023-05-18.md │ │ ├── T-compiler Meeting Agenda 2023-05-25.md │ │ ├── T-compiler Meeting Agenda 2023-06-01.md │ │ ├── T-compiler Meeting Agenda 2023-06-08.md │ │ ├── T-compiler Meeting Agenda 2023-06-15.md │ │ ├── T-compiler Meeting Agenda 2023-06-22.md │ │ ├── T-compiler Meeting Agenda 2023-06-29.md │ │ ├── T-compiler Meeting Agenda 2023-07-06.md │ │ ├── T-compiler Meeting Agenda 2023-07-13.md │ │ ├── T-compiler Meeting Agenda 2023-07-20.md │ │ ├── T-compiler Meeting Agenda 2023-07-27.md │ │ ├── T-compiler Meeting Agenda 2023-08-03.md │ │ ├── T-compiler Meeting Agenda 2023-08-09.md │ │ ├── T-compiler Meeting Agenda 2023-08-10.md │ │ ├── T-compiler Meeting Agenda 2023-08-17.md │ │ ├── T-compiler Meeting Agenda 2023-08-24.md │ │ ├── T-compiler Meeting Agenda 2023-08-31.md │ │ ├── T-compiler Meeting Agenda 2023-09-07.md │ │ ├── T-compiler Meeting Agenda 2023-09-14.md │ │ ├── T-compiler Meeting Agenda 2023-09-21.md │ │ ├── T-compiler Meeting Agenda 2023-09-28.md │ │ ├── T-compiler Meeting Agenda 2023-10-05.md │ │ ├── T-compiler Meeting Agenda 2023-10-12.md │ │ ├── T-compiler Meeting Agenda 2023-10-19.md │ │ ├── T-compiler Meeting Agenda 2023-10-26.md │ │ ├── T-compiler Meeting Agenda 2023-11-02.md │ │ ├── T-compiler Meeting Agenda 2023-11-09.md │ │ ├── T-compiler Meeting Agenda 2023-11-16.md │ │ ├── T-compiler Meeting Agenda 2023-11-30.md │ │ ├── T-compiler Meeting Agenda 2023-12-07.md │ │ ├── T-compiler Meeting Agenda 2023-12-14.md │ │ ├── T-compiler Meeting Agenda 2023-12-21.md │ │ ├── T-compiler Meeting Agenda 2023-12-28.md │ │ ├── T-compiler Meeting Agenda 2024-01-04.md │ │ ├── T-compiler Meeting Agenda 2024-01-11.md │ │ ├── T-compiler Meeting Agenda 2024-01-18.md │ │ ├── T-compiler Meeting Agenda 2024-01-25.md │ │ ├── T-compiler Meeting Agenda 2024-02-01.md │ │ ├── T-compiler Meeting Agenda 2024-02-08.md │ │ ├── T-compiler Meeting Agenda 2024-02-15.md │ │ ├── T-compiler Meeting Agenda 2024-02-22.md │ │ ├── T-compiler Meeting Agenda 2024-02-29.md │ │ ├── T-compiler Meeting Agenda 2024-03-07.md │ │ ├── T-compiler Meeting Agenda 2024-03-14.md │ │ ├── T-compiler Meeting Agenda 2024-03-21.md │ │ ├── T-compiler Meeting Agenda 2024-03-28.md │ │ ├── T-compiler Meeting Agenda 2024-04-04.md │ │ ├── T-compiler Meeting Agenda 2024-04-11.md │ │ ├── T-compiler Meeting Agenda 2024-04-18.md │ │ ├── T-compiler Meeting Agenda 2024-04-25.md │ │ ├── T-compiler Meeting Agenda 2024-05-02.md │ │ ├── T-compiler Meeting Agenda 2024-05-09.md │ │ ├── T-compiler Meeting Agenda 2024-05-16.md │ │ ├── T-compiler Meeting Agenda 2024-05-23.md │ │ ├── T-compiler Meeting Agenda 2024-05-30.md │ │ ├── T-compiler Meeting Agenda 2024-06-06.md │ │ ├── T-compiler Meeting Agenda 2024-06-13.md │ │ ├── T-compiler Meeting Agenda 2024-06-20.md │ │ ├── T-compiler Meeting Agenda 2024-06-27.md │ │ ├── T-compiler Meeting Agenda 2024-07-04.md │ │ ├── T-compiler Meeting Agenda 2024-07-11.md │ │ ├── T-compiler Meeting Agenda 2024-07-18.md │ │ ├── T-compiler Meeting Agenda 2024-07-25.md │ │ ├── T-compiler Meeting Agenda 2024-08-01.md │ │ ├── T-compiler Meeting Agenda 2024-08-08.md │ │ ├── T-compiler Meeting Agenda 2024-08-15.md │ │ ├── T-compiler Meeting Agenda 2024-08-22.md │ │ ├── T-compiler Meeting Agenda 2024-08-29.md │ │ ├── T-compiler Meeting Agenda 2024-09-05.md │ │ ├── T-compiler Meeting Agenda 2024-09-12.md │ │ ├── T-compiler Meeting Agenda 2024-09-19.md │ │ ├── T-compiler Meeting Agenda 2024-09-26.md │ │ ├── T-compiler Meeting Agenda 2024-10-03.md │ │ ├── T-compiler Meeting Agenda 2024-10-10.md │ │ ├── T-compiler Meeting Agenda 2024-10-17.md │ │ ├── T-compiler Meeting Agenda 2024-10-24.md │ │ ├── T-compiler Meeting Agenda 2024-10-31.md │ │ ├── T-compiler Meeting Agenda 2024-11-07.md │ │ ├── T-compiler Meeting Agenda 2024-11-14.md │ │ ├── T-compiler Meeting Agenda 2024-11-21.md │ │ ├── T-compiler Meeting Agenda 2024-11-28.md │ │ ├── T-compiler Meeting Agenda 2024-12-05.md │ │ ├── T-compiler Meeting Agenda 2024-12-12.md │ │ ├── T-compiler Meeting Agenda 2024-12-19.md │ │ ├── T-compiler Meeting Agenda 2024-12-26.md │ │ ├── T-compiler Meeting Agenda 2025-01-02.md │ │ ├── T-compiler Meeting Agenda 2025-01-09.md │ │ ├── T-compiler Meeting Agenda 2025-01-16.md │ │ ├── T-compiler Meeting Agenda 2025-01-23.md │ │ ├── T-compiler Meeting Agenda 2025-01-30.md │ │ ├── T-compiler Meeting Agenda 2025-02-06.md │ │ ├── T-compiler Meeting Agenda 2025-02-13.md │ │ ├── T-compiler Meeting Agenda 2025-02-20.md │ │ ├── T-compiler Meeting Agenda 2025-02-27.md │ │ └── _index.md ├── procedures │ ├── _index.md │ ├── call-for-participation.md │ ├── crates.md │ ├── form-new-working-group.md │ └── steering-meeting.md └── working-groups │ ├── _index.md │ ├── async-await │ └── _index.md │ ├── debugging │ └── _index.md │ ├── diagnostics │ ├── FAQ.md │ ├── NOTES.md │ ├── _index.md │ └── minutes │ │ └── 2019.07.09-meeting.md │ ├── llvm │ ├── FAQ.md │ ├── NOTES.md │ └── _index.md │ ├── meta │ ├── FAQ.md │ ├── NOTES.md │ ├── _index.md │ └── rfc-drafts │ │ ├── _index.md │ │ └── compiler-team-contributors.md │ ├── mir-opt │ ├── FAQ.md │ ├── NOTES.md │ └── _index.md │ ├── nll │ ├── FAQ.md │ ├── NOTES.md │ └── _index.md │ ├── parallel-rustc │ ├── FAQ.md │ ├── NOTES.md │ ├── _index.md │ └── minutes │ │ ├── 2019.05.10.md │ │ └── 2019.09.30-planning.md │ ├── parselib │ └── _index.md │ ├── pgo │ ├── FAQ.md │ ├── NOTES.md │ └── _index.md │ ├── pipelining │ ├── FAQ.md │ ├── NOTES.md │ └── _index.md │ ├── polonius │ ├── FAQ.md │ ├── _index.md │ └── minutes │ │ ├── 2019.03.07-meeting.md │ │ ├── 2019.04.23-meeting.md │ │ ├── 2019.04.30-meeting.md │ │ ├── 2019.05.07-meeting.md │ │ ├── 2019.05.14-meeting.md │ │ ├── 2019.05.28-meeting.md │ │ ├── 2019.06.04-meeting.md │ │ └── 2019.06.11-meeting.md │ ├── polymorphization │ └── _index.md │ ├── prioritization │ └── _index.md │ ├── rfc-2229 │ ├── FAQ.md │ ├── _index.md │ └── minutes │ │ └── 2019.03.05-roadmap-plan.md │ ├── rls-2.0 │ ├── FAQ.md │ ├── NOTES.md │ └── _index.md │ ├── rustc-dev-guide │ ├── FAQ.md │ ├── _index.md │ └── minutes │ │ ├── 2019.05.14-meeting.md │ │ ├── 2019.05.28-meeting.md │ │ ├── 2019.06.11-meeting.md │ │ ├── 2019.06.25-meeting.md │ │ ├── 2019.07.09-meeting.md │ │ ├── 2019.07.23-meeting.md │ │ ├── 2019.08.06-meeting.md │ │ ├── 2019.08.20-meeting.md │ │ ├── 2019.09.17-meeting.md │ │ ├── 2019.10.01-meeting.md │ │ ├── 2019.11.26-meeting.md │ │ └── agenda.md │ ├── self-profile │ ├── FAQ.md │ ├── NOTES.md │ └── _index.md │ ├── template │ ├── FAQ.md │ ├── NOTES.md │ └── _index.md │ └── traits │ ├── _index.md │ └── minutes │ ├── triage-2019-02-24.md │ ├── triage-2019-03-04.md │ └── triage-2019-03-11.md ├── layouts ├── partials │ └── docs │ │ └── html-head.html └── shortcodes │ ├── checkin-schedule.html │ └── list-files.html ├── templates ├── README.md ├── T-compiler Meeting Agenda YYYY-MM-DD.md ├── planning-meeting-blog-post.md └── steering-meeting-proposal.md └── triagebot.toml /.github/ISSUE_TEMPLATE/major_change.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Major change proposal (MCP) 3 | about: Propose a major change. 4 | title: '' 5 | labels: major-change, T-compiler 6 | assignees: '' 7 | 8 | --- 9 | 10 | # Proposal 11 | 12 | *Insert your proposal here, overwriting this text and the text under "Mentors or Reviewers", leaving the rest of the template untouched. Please include the complete proposal, rather than linking to a gist or other external document.* 13 | 14 | *Your proposal doesn't have to be long. It should however be in sufficient detail that people familiar with the code can clearly envision what you are planning to do. Be sure to link to any relevant issues, PRs, or other sources.* 15 | 16 | *When picking a title (that is, when replacing the "(My major change proposal)" text above), keep in mind that Zulip truncates text that extends beyond a certain length, replacing the truncated suffix with "…" in the topic name it creates. Therefore, consider keeping your title to <= 40 characters, if possible.* 17 | 18 | # Mentors or Reviewers 19 | 20 | *If you have a reviewer or mentor in mind for this work, mention them 21 | here. You can put your own name here if you are planning to mentor the 22 | work.* 23 | 24 | # Process 25 | 26 | The main points of the [Major Change Process][MCP] are as follows: 27 | 28 | * [x] File an issue describing the proposal. 29 | * [ ] A compiler team member or contributor who is knowledgeable in the area can **second** by writing `@rustbot second`. 30 | * Finding a "second" suffices for internal changes. If however, you are proposing a new public-facing feature, such as a `-C flag`, then full team check-off is required. 31 | * Compiler team members can initiate a check-off via `@rfcbot fcp merge` on either the MCP or the PR. 32 | * [ ] Once an MCP is seconded, the Final Comment Period begins. If no objections are raised after 10 days, the MCP is considered **approved**. 33 | 34 | You can read [more about Major Change Proposals on forge][MCP]. 35 | 36 | [MCP]: https://forge.rust-lang.org/compiler/proposals-and-stabilization.html#how-do-i-submit-an-mcp 37 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/meeting-proposal.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Steering meeting proposal 3 | about: Propose a topic for the steering meeting. 4 | title: "(My meeting proposal)" 5 | labels: meeting-proposal 6 | assignees: '' 7 | 8 | --- 9 | 10 | # Directions 11 | 12 | If you'd like to propose a topic for a future meeting, you've come to 13 | the right place! To do so, please write-up your proposal in a 14 | [hackmd], [gist], etc following [this template]. Then open this issue 15 | and replace the parenthesized text below as appropriate. We'll discuss 16 | your proposal in the next planning meeting! (And please do feel free 17 | to attend!) Thanks <3. 18 | 19 | Oh, and please delete this section before you open the issue -- but 20 | keep the others! 21 | 22 | # Meeting proposal info 23 | 24 | - **Title:** (insert title here) 25 | - **Type:** (technical | non-technical | it's complicated) 26 | 27 | # Summary 28 | 29 | XXX: Write about your idea here -- just a few sentences is enough! 30 | Better yet, add a link to a gist or hackmd document with more details. 31 | 32 | Note that once the meeting is scheduled, we may request that you 33 | prepare some more details by the time the meeting takes place 34 | (ideally, by some time before, if you would like folks to review 35 | them). 36 | 37 | # About this issue 38 | 39 | This issue corresponds to a meeting proposal for the compiler team 40 | [steering meeting][]. It corresponds to a possible topic of 41 | discussion. You can read more about the [steering meeting procedure 42 | here][proc]. 43 | 44 | # Comment policy 45 | 46 | These issues are meant to be used as an "announcements channel" 47 | regarding the proposal, and not as a place to discuss the technical 48 | details. Feel free to subscribe to updates. We'll post comments when 49 | reviewing the proposal in meetings or making a scheduling decision. 50 | In the meantime, if you have questions or ideas, ping the proposers 51 | on [Zulip] (or elsewhere). 52 | 53 | [Zulip]: https://github.com/rust-lang/compiler-team/blob/master/content/about/chat-platform.md 54 | [steering meeting]: https://github.com/rust-lang/compiler-team/blob/master/content/about/steering-meeting.md 55 | [proc]: https://forge.rust-lang.org/compiler/steering-meeting/submit.html 56 | [this template]: https://github.com/rust-lang/compiler-team/blob/master/templates/steering-meeting-proposal.md 57 | [hackmd]: https://hackmd.io/ 58 | [gist]: https://gist.github.com/ 59 | -------------------------------------------------------------------------------- /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- 1 | name: Deploy 2 | on: 3 | push: 4 | branches: 5 | - master 6 | jobs: 7 | deploy: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - name: Checkout repository code 11 | uses: actions/checkout@v2 12 | with: 13 | submodules: true 14 | - name: Install Hugo 15 | run: sudo apt install hugo 16 | - name: Minify HTML 17 | run: hugo --minify 18 | - name: Deploy 19 | run: | 20 | deploy_dir=public 21 | # Ensure GitHub doesn't mess around with the uploaded file. 22 | # Without the file, for example, files with an underscore in the name won't be 23 | # included in the pages. 24 | touch "${deploy_dir}/.nojekyll" 25 | # Push the website to GitHub pages 26 | cd "${deploy_dir}" 27 | rm -rf .git 28 | git init 29 | git config user.name "Deploy from CI" 30 | git config user.email "" 31 | git add . 32 | git commit -m "Deploy ${GITHUB_SHA} to gh-pages" 33 | git push -f "https://x-token:${github_token}@github.com/${GITHUB_REPOSITORY}" master:gh-pages 34 | env: 35 | github_token: ${{ secrets.GITHUB_TOKEN }} 36 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | public/ 2 | content/resources/ 3 | resources/ 4 | .DS_Store 5 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "themes/book"] 2 | path = themes/book 3 | url = https://github.com/alex-shpak/hugo-book 4 | -------------------------------------------------------------------------------- /LICENSE-MIT: -------------------------------------------------------------------------------- 1 | Permission is hereby granted, free of charge, to any 2 | person obtaining a copy of this software and associated 3 | documentation files (the "Software"), to deal in the 4 | Software without restriction, including without 5 | limitation the rights to use, copy, modify, merge, 6 | publish, distribute, sublicense, and/or sell copies of 7 | the Software, and to permit persons to whom the Software 8 | is furnished to do so, subject to the following 9 | conditions: 10 | 11 | The above copyright notice and this permission notice 12 | shall be included in all copies or substantial portions 13 | of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF 16 | ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 17 | TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 18 | PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT 19 | SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 20 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 21 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 22 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 23 | DEALINGS IN THE SOFTWARE. 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | **UPDATE 2025-04-01** 2 | 3 | The website has been retired. All content is now available on: 4 | https://forge.rust-lang.org/compiler/index.html 5 | 6 | # Compiler Team 7 | This repository contains a static site that details the procedures, policies, working groups, 8 | planning documents and minutes. 9 | 10 | You are probably looking [for the rendered website](https://rust-lang.github.io/compiler-team/) instead. 11 | 12 | ### Building the website 13 | You'll need to install [Hugo](https://github.com/gohugoio/hugo#choose-how-to-install) (ensure to get Hugo extended version for SCSS support) to build the website locally, you can then run the following commands to set the website up: 14 | 15 | ``` 16 | git clone git@github.com:rust-lang/compiler-team.git 17 | git submodule update --init 18 | hugo server --minify 19 | ``` 20 | 21 | To generate a version for distribution, run `hugo --minify` and use the `public` directory. 22 | -------------------------------------------------------------------------------- /config.toml: -------------------------------------------------------------------------------- 1 | baseURL = "https://rust-lang.github.io/compiler-team" 2 | languageCode = "en-us" 3 | title = "Rust Lang - Compiler Team" 4 | theme = "book" 5 | disablePathToLower = true 6 | 7 | [params] 8 | BookMenuBundle = '/menu' 9 | enableGitInfo = true 10 | -------------------------------------------------------------------------------- /content/about/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Compiler team 3 | type: docs 4 | --- 5 | # About Compiler Team # -------------------------------------------------------------------------------- /content/about/chat-platform.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Chat platform 3 | type: docs 4 | --- 5 | 6 | # Chat Platform 7 | 8 | The compiler team hangs out in [the rust-lang Zulip][z] these days. 9 | 10 | Feel free to introduce yourself and say hi in the [`#new-members`](https://rust-lang.zulipchat.com/#narrow/stream/122652-new-members) stream! 11 | 12 | The [`#t-compiler/help`](https://rust-lang.zulipchat.com/#narrow/stream/182449-t-compiler.2Fhelp) stream is also a great place to ask questions. 13 | 14 | In addition, each working group has one or more streams where they communicate. 15 | 16 | [z]: https://rust-lang.zulipchat.com 17 | -------------------------------------------------------------------------------- /content/about/steering-meeting.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Steering meeting 3 | type: docs 4 | --- 5 | # Steering Meeting 6 | 7 | The compiler **steering meeting** is the place for high-level 8 | discussion and planning. The meeting takes place weekly. The topics of 9 | the meeting are selected at periodic planning meetings. See the 10 | [steering meeting procedure][proc] for more details. See [#58850] for 11 | more information. 12 | 13 | [proc]: https://forge.rust-lang.org/compiler/steering-meeting.html 14 | 15 | See the [compiler team calendar](../../#meeting-calendar) for 16 | the topics of the next scheduled meetings. There is also a [dedicated 17 | internals thread][internals]. 18 | 19 | [#58850]: https://github.com/rust-lang/rust/issues/58850 20 | [internals]: https://internals.rust-lang.org/t/compiler-steering-meeting/8588 21 | 22 | The steering meeting takes place on [Zulip](../chat-platform/). Look 23 | for a topic like "steering meeting YYYY-MM-DD" (with today's date, of 24 | course). 25 | 26 | There are [minutes from previous steering 27 | meetings][minutes] available in this 28 | repository. These minutes summarize our conversations. 29 | 30 | [minutes]:https://github.com/rust-lang/compiler-team/tree/master/content/minutes 31 | -------------------------------------------------------------------------------- /content/about/triage-meeting.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Triage Meeting 3 | type: docs 4 | --- 5 | # Triage Meeting 6 | The compiler **triage meeting** is the place for tracking regressions, progress on urgent bugs and 7 | checking-in with the compiler team's working groups. Each meeting, two working groups (rotating) 8 | check-in with their progress and blockers. 9 | 10 | The meeting takes place every week. See the [compiler team calendar](../../#meeting-calendar) 11 | for the next scheduled meeting (normally weekly). 12 | 13 | The triage meeting takes place on [Zulip](../chat-platform/). Look for a topic like 14 | "#54818 weekly meeting YYYY-MM-DD" or "weekly meeting YYYY-MM-DD" (with the proper date, of course). 15 | The regular agenda (and process for pre-triage) is maintained on [Rust Issue 54818]. 16 | 17 | [Rust Issue 54818]: https://github.com/rust-lang/rust/issues/54818 18 | 19 | ## Working group check-in 20 | This section contains the scheduled check-ins for working groups: 21 | 22 | {{< checkin-schedule >}} 23 | -------------------------------------------------------------------------------- /content/menu/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | headless: true 3 | --- 4 | - **About** 5 | - [Code of Conduct]({{< relref "/about/CODE_OF_CONDUCT" >}}) 6 | - [Chat Platform]({{< relref "/about/chat-platform" >}}) 7 | - [Steering Meeting]({{< relref "/about/steering-meeting" >}}) 8 | - [Triage Meeting]({{< relref "/about/triage-meeting" >}}) 9 | - **Minutes** 10 | 11 | - [Design Meetings]({{< relref "/minutes/design-meeting" >}}) 12 | - [Steering Meetings]({{< relref "/minutes/steering-meeting" >}}) 13 | - [Triage Meetings]({{< relref "/minutes/triage-meeting" >}}) 14 | 15 | - **Procedures** 16 | 17 | - [Documentation]({{< relref "/procedures" >}}) 18 | - [Crates]({{< relref "/procedures/crates" >}}) 19 | - [Call for participation]({{< relref "/procedures/call-for-participation" >}}) 20 | - [Form new working group]({{< relref "/procedures/form-new-working-group" >}}) 21 | 22 | - [**Working Groups**]({{< relref "/working-groups" >}}) 23 | - [Async Await]({{< relref "/working-groups/async-await" >}}) 24 | - [Debugging]({{< relref "/working-groups/debugging" >}}) 25 | - [Diagnostics]({{< relref "/working-groups/diagnostics" >}}) 26 | - [Rustc Dev Guide]({{< relref "/working-groups/rustc-dev-guide" >}}) 27 | - [LLVM]({{< relref "/working-groups/llvm" >}}) 28 | - [Meta]({{< relref "/working-groups/meta" >}}) 29 | - [MIR-opt]({{< relref "/working-groups/mir-opt" >}}) 30 | - [NLL]({{< relref "/working-groups/nll" >}}) 31 | - [parallel rustc]({{< relref "/working-groups/parallel-rustc" >}}) 32 | - [PGO]({{< relref "/working-groups/pgo" >}}) 33 | - [pipelining]({{< relref "/working-groups/pipelining" >}}) 34 | - [polonius]({{< relref "/working-groups/polonius" >}}) 35 | - [polymorphization]({{< relref "/working-groups/polymorphization" >}}) 36 | - [Prioritization]({{< relref "/working-groups/prioritization" >}}) 37 | - [rfc-2229]({{< relref "/working-groups/rfc-2229" >}}) 38 | - [rls-2.0]({{< relref "/working-groups/rls-2.0" >}}) 39 | - [Self Profile]({{< relref "/working-groups/self-profile" >}}) 40 | - [Traits]({{< relref "/working-groups/traits" >}}) 41 | -------------------------------------------------------------------------------- /content/minutes/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Minutes 3 | type: docs 4 | --- 5 | -------------------------------------------------------------------------------- /content/minutes/design-meeting/2019-09-27-place-interning.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Place Interning 3 | type: docs 4 | --- 5 | 6 | # Place projection interning meeting 2019-09-27 7 | 8 | [Zulip stream](https://rust-lang.zulipchat.com/#narrow/stream/189540-t-compiler.2Fwg-mir-opt/topic/Place's.20projection.20interning.20design.20meeting.20.3F) 9 | 10 | ## Ideas to pursue at some later point or in parallel 11 | 12 | - removing the field from the projections 13 | - get rid of static from `PlaceBase` 14 | - I (oli-obk) think this would be good to pursue ealier than later since it'll just eliminate an annoying piece that we don't really care about most of the time 15 | - intern entire places at the MIR level 16 | - interning `(base, Vec)` means less re-use overall though 17 | - nice hack: rfirst 128 (eddyb suggests 2^16) locals or so can be mapped to themselves 18 | - could even be extended for whatever the most common projections are if that proves useful 19 | - insert gratuitous reference to random compression methods here 20 | 21 | ## Ideas rejected 22 | 23 | - intern the `Vec` to a `&[Projection]` 24 | - **Rejected:** List is better because it is smaller, and we can use a `PlaceRef` for cases where you want to do subslicing 25 | - Although `&[Projection]` would mean that `a.b.c` and `a.b.c.d` could sometimes share memory, if we were clever enough 26 | 27 | ## Candidates to pursue first 28 | 29 | - intern the `Vec` to a `List` (probably the right first step) 30 | - challenges: 31 | - construction 32 | - `MutVisitor` 33 | - intern the `Vec` to a per-MIR integer (unlikely to be the first first step) 34 | - maybe we can retain `MutVisitor` in its current design if MIR still owns the `Projection` arrays 35 | - maybe an interesting intermediate step to start from, as it removes one of the challenges, and just leaves us with construction 36 | - but it comes with its *own* challenges, like now you can't just take a `Place` and get its data without a MIR (you have to do `mir.projection_data(index)`) 37 | 38 | But both of these require tweaking construction. 39 | 40 | ## Construction 41 | 42 | General place for modifying MIR building is to convert to a `PlaceBuilder`, as outlined [in this Zulip comment](https://rust-lang.zulipchat.com/#narrow/stream/189540-t-compiler.2Fwg-mir-opt/topic/Place's.20projection.20interning.20design.20meeting.20.3F/near/176746025). 43 | 44 | We need to work out the precise steps to do this, and we may want to do some efficiency tweaks like `SmallVec` to avoid iterating in the common cases. 45 | 46 | This is also something [we can pursue before doing *any* interning](https://rust-lang.zulipchat.com/#narrow/stream/189540-t-compiler.2Fwg-mir-opt/topic/Place's.20projection.20interning.20design.20meeting.20.3F/near/176747691), so it's the logical next step. 47 | -------------------------------------------------------------------------------- /content/minutes/design-meeting/2019-10-18-debuginfo-meeting.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Debugging Support 3 | type: docs 4 | --- 5 | 6 | # Debugging Support in the Compiler 7 | 8 | * [Zulip stream][] or read on the [Zulip archive][] 9 | 10 | 11 | [Zulip stream]: https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/design.20meeting.202019-10-18/near/178475282 12 | [Zulip archive]: https://zulip-archive.rust-lang.org/131828tcompiler/13652designmeeting20191018.html 13 | 14 | ## The problems 15 | 16 | https://github.com/rust-lang/rust/issues/64343 17 | 18 | We have bugs with debuginfo that are causing broad pain for people who use x.py test, but we do not have dedicated developers who own maintenance of debugger support. 19 | 20 | https://github.com/rust-lang/rust/pull/60826 21 | 22 | We have Pull Requests to improve our debuginfo support, but we do not have dedicated developers who own maintenance of debugger support. 23 | 24 | Q: Are we willing/able to maintain debuginfo stuff Q: if we don't, then can we afford to keep these tests? 25 | 26 | In short, as Niko said: "we need help to maintain this or we may have to remove it" 27 | 28 | ---- 29 | 30 | The overarching goal was to discuss how we can get a sustainable story than the particular issues themselves, though that may also be a topic of discussion. 31 | 32 | * what steps can we do to recruit folks 33 | * what are some thresholds and timelines where upon we consider more drastic action 34 | * what might that drastic action be :) 35 | 36 | 37 | ## The meeting 38 | 39 | some of the main points from the discussion: 40 | 41 | * a common refrain: most of the compiler developers know next to nothing about how the debugger support scripts are implemented. So we are not in a good position to maintain the debugger support scripts. 42 | * @eddyb has ideas for how we might try to shift functionality out of the debugger support scripts and instead "handled it through traits and codegen" (?) 43 | * debuginfo tests are effectively unmaintained because everyone has their own ways of ignoring the failures 44 | * We should add // ignore to the problematic tests in the short term (but make sure to associate any such ignore with a rust-lang/rust issue). 45 | * we might want to split the tests into debuginfo and debugger-pretty or something; the debuginfo stuff we must keep working, while debugger-pretty are more "nice to have" bits of functionality 46 | -------------------------------------------------------------------------------- /content/minutes/design-meeting/2020-02-28-focused-and-efficient-triage.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2020-02-28 focused and efficient triage 3 | type: docs 4 | --- 5 | 6 | # Focused and Efficient Triage 7 | 8 | - [Meeting proposal](https://github.com/rust-lang/compiler-team/issues/247) 9 | - [Pre-meeting notes](https://hackmd.io/5theN85oRS6QvyYPZt-vew) 10 | - [Zulip meeting thread](https://zulip-archive.rust-lang.org/131828tcompiler/36846designmeeting20200228.html) 11 | 12 | The goal of the meeting was to discuss the idea of creating a 13 | **pre-triage working group**, the tasks we need to do and who should be 14 | doing them. The motivation is that (a) a lot of work for our current 15 | triage process is falling on @pnkfelix and (b) there is a kind of lack 16 | of clarity around our goals, how we use our labels, etc. 17 | 18 | ## Things we need to do 19 | 20 | - Monitor and identify "critical bugs" that are not making progress 21 | - For critical bugs not making progress, find someone to fix 22 | - Making general quality improvements and enhancements (i.e., "fixing non-critical bugs") 23 | - Ensuring deferred things are picked up again (e.g., future compatibility warnings) 24 | - Processing new issues, ensuring labels are up to date, identifying bugs that are out of date or have been fixed 25 | 26 | ## Typical flow for an issue 27 | 28 | * Issue gets filed 29 | * Release team applies labels 30 | * area labels, team labels 31 | * If bisection, mcve needed: 32 | * tag with needs-bisection, needs-mcve 33 | * cc "Cleanup crew" 34 | * In some cases: 35 | * directly prioritize or send to the right place if it seems clear 36 | * otherwise, nominate for compiler team meeting 37 | * Release team nominates for compiler team to further process 38 | * also cc folks to bisect 39 | * (usually ICE), usually includes needs-bisection and needs-mcve 40 | * Compiler team triage group analyzes and figures out which things apply 41 | * Critical bugs: 42 | * Tag with P-critical 43 | * Needs team discussion: 44 | * Delegation: 45 | * Should we cc 46 | 47 | ## Proposal 48 | 49 | - We should have two distinct triage groups compiler and release 50 | - T-release/triage does try to "classify" bugs before it goes to t-compiler 51 | - T-compiler/triage wg should be deciding if bugs are critical (potential release blocker) or not 52 | - We would need to tag critical bugs P-critical 53 | - That's a key area of focus 54 | - Those are potential release blockers 55 | 56 | ## T-compiler/triage WG scope 57 | 58 | - Process I-nominated issues and process those into categories, critical, needs team discussion, delegate) 59 | - The main focus should be to identify new P-critical bugs. 60 | - Revisit the set of all P-critical bugs to double check that they have logged progress. 61 | - Prepare key highlights to guide the main weekly meeting 62 | 63 | ## Charter for T-compiler/triage WG 64 | 65 | * Processing 'nominations' and routing bugs to folks who can fix them 66 | * Identifying *critical* bugs and monitoring them to ensure they are making progress 67 | * Identifying the agenda for compiler team triage meetings 68 | * Critical issues that are not making progress 69 | * Issues where bugs are nominated for needing wider discussion 70 | * Ideally, crystallize 71 | * Tracking deferred things and ensuring they are picked up again 72 | * Future compatibility warnings 73 | -------------------------------------------------------------------------------- /content/minutes/design-meeting/2020-04-03-cranelift-backend-for-rustc.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2020-04-03 Cranelift backend for rustc 3 | type: docs 4 | --- 5 | 6 | # Cranelift backend for rustc 7 | 8 | You can also read the [complete discussion in our zulip-archive](https://zulip-archive.rust-lang.org/131828tcompiler/01241designmeeting20200403compilerteam257.html). 9 | 10 | [Meeting Proposal](https://github.com/rust-lang/compiler-team/issues/257) 11 | 12 | [Pre-meeting details and agenda outline](https://hackmd.io/@bjorn3/HJL5ryFS8) 13 | 14 | ## Overview of the Cranelift backend 15 | 16 | [Cranelift](https://github.com/bytecodealliance/wasmtime/tree/master/cranelift) is a code generation backend written in Rust which is under development for use in WebAssembly compilers. 17 | As such, it could potentially improve compilation times in `rustc` because it is optimized for efficiently generating code rather than generating efficient code. 18 | 19 | Over the past ~1.5 years, [@bjorn3](https://github.com/bjorn3) has been working on writing a Cranelift-based code generation backend for `rustc`: [`rustc_codegen_cranelift`](https://github.com/bjorn3/rustc_codegen_cranelift) or `cg_cranelift` for short. 20 | It is currently complete enough to compile many programs and is usually faster at compiling them than the regular LLVM backend. 21 | 22 | The main goal of this project is to build an alternative codegen backend that can be used for faster, non-optimized (debug) builds. 23 | 24 | `rustc` has support for runtime-pluggable backends via the unstable `-Zcodegen-backend=/path/to/dylib` flag. 25 | `cg_cranelift` is developed in a separate repository from the Rust project, so it uses this flag to plug into `rustc`. 26 | `cg_cranelift` also takes advantage of an internal `rustc` library called `rustc_codegen_ssa` which tries to be a backend-agnostic code generation support library but some parts of it are still very LLVM-like. 27 | 28 | ## Next steps 29 | 30 | At this time, we want to help increase the support `cg_cranelift` gets but it isn't a top priority for us currently. 31 | The eventual goal seems to be first-class support for `cg_cranelift` alongside our existing LLVM backend but that won't happen for a while so we can afford to take small, measured steps in the meantime. 32 | 33 | A few things we would like to do now: 34 | 35 | - Continue refactoring `rustc_codegen_ssa` to be less LLVM-like and allow `cg_cranelift` to re-use more of the code. 36 | 37 | - Bring in `cg_cranelift` to the `rust` repo (probably via `git-subtree`) and require it to build during CI. 38 | - This is similar to the support we give to tools like clippy or miri. 39 | 40 | - Add a way in our testing infrastructure to mark tests as reliant on a specific codegen backend and annotate existing tests that require LLVM. 41 | 42 | - Add a way to manually run tests with `cg_cranelift` to Rustbuild (aka `x.py`). 43 | 44 | We may also want to do these soon but we need additional discussion: 45 | 46 | - Run tests in `cg_cranelift` mode and notify if they failed (but don't gate CI on it). 47 | 48 | - Form a working group related to `cg_cranelift`. 49 | -------------------------------------------------------------------------------- /content/minutes/design-meeting/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Design meeting 3 | type: docs 4 | --- 5 | 6 | # Design Meetings 7 | 8 | {{< list-files "content/minutes/design-meeting" >}} 9 | -------------------------------------------------------------------------------- /content/minutes/steering-meeting/2019-01-04.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.01.04 3 | type: docs 4 | --- 5 | # 2019.01.04 6 | 7 | [Zulip topic](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/steering.20meeting.202019-01-04) 8 | 9 | We discussed the upcoming Rust All Hands. We have a [HackMd 10 | document][doc] that lists a bunch of ideas for what to talk about, 11 | but mostly we talked about how to structure the meeting itself. 12 | 13 | [doc]: https://hackmd.io/Wbnday_dQxSy-iPWLm33Rg 14 | 15 | We summarized [how the All Hands was structured last 16 | year](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/steering.20meeting.202019-01-04/near/154414708): 17 | basically meetings focused around particular topics, with the team 18 | (and others) mostly in a kind of semi-circle or around a whiteboard. 19 | 20 | One of the ideas we had for this year is that we could have some 21 | sessions that are just focused on [explaining how a particular area of 22 | the code 23 | works](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/steering.20meeting.202019-01-04/near/154414981), 24 | which could [help people unfamiliar with an area get up to 25 | speed](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/steering.20meeting.202019-01-04/near/154415043). 26 | 27 | In general, we decided that each of our slots should begin with [some 28 | exposition of "how things work 29 | now"](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/steering.20meeting.202019-01-04/near/154415298), 30 | and then segway into "here are problems to resolve". We will try to 31 | take good notes on these expositions as well. 32 | 33 | We discussed how it might also be useful to [talk about some of the tools 34 | that are "adjacent" to the 35 | compiler](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/steering.20meeting.202019-01-04/near/154415252), 36 | e.g., rustdoc or RLS. 37 | 38 | We discussed some possibler areas for discussion: 39 | 40 | - [the rustc-dev-guide](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/steering.20meeting.202019-01-04/near/154415509) 41 | - [related work, like RLS, rustdoc,](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/steering.20meeting.202019-01-04/near/154415505) 42 | or [cranelift](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/steering.20meeting.202019-01-04/near/154415743) 43 | - [mentoring?](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/steering.20meeting.202019-01-04/near/154415632) 44 | - maybe, but we have to figure out specifically what 45 | - [salsa, polonius, chalk, etc](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/steering.20meeting.202019-01-04/near/154415977) 46 | - [diagnostics](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/steering.20meeting.202019-01-04/near/154416365) 47 | 48 | On the topic of IDEs, it would be useful to [hear from Matklad about 49 | rust-analyzer](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/steering.20meeting.202019-01-04/near/154415886). 50 | 51 | We also thought a bit about some more "radical" ideas that might be worth 52 | making a bit more concrete: 53 | 54 | - [downloading pre-compiled artifacts](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/steering.20meeting.202019-01-04/near/154416722) 55 | - [compiling all configurations at once for docs, IDE](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/steering.20meeting.202019-01-04/near/154416819) -------------------------------------------------------------------------------- /content/minutes/steering-meeting/2019-03-22.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.03.22 3 | type: docs 4 | --- 5 | # 2019.03.22 6 | 7 | [Zulip topic.](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/steering.20meeting.202019.2E03.2E22.20.2358850) 8 | 9 | ## Announcements 10 | 11 | - [oli-obk](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/steering.20meeting.202019.2E03.2E22.20.2358850/near/161450157) 12 | mentions that wg-diagnostics is planning [to use the annotate-snippets crate](https://github.com/rust-lang/rust/issues/59346) within rustc. 13 | - [nikomatsakis](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/steering.20meeting.202019.2E03.2E22.20.2358850/near/161450198) 14 | is planning, as part of the @*WG-meta* working group, an RFC that will propose more intermediate levels for the compiler team to recognize committed, regular contributors. 15 | - [Zoxc](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/steering.20meeting.202019.2E03.2E22.20.2358850/near/161450307) 16 | almost has a series of PRs pushing queries all the way back to parsing. 17 | - [davidtwco](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/steering.20meeting.202019.2E03.2E22.20.2358850/near/161450922) 18 | has, [after numerous attempts](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/steering.20meeting.202019.2E03.2E22.20.2358850/near/161451008), managed to produce a have a working branch 19 | that unblocks RFC 2008. 20 | - [pnkfelix](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/steering.20meeting.202019.2E03.2E22.20.2358850/near/161455043) 21 | applauds oli-obk's [fixmeh project](https://oli-obk.github.io/fixmeh/), which lists all the FIXME comments in the compiler. 22 | 23 | ## Main topic 24 | 25 | Our main topic of the day was **enumerating the needs of the compiler team**: 26 | 27 | > Can we try to enumerate what are some of things the compiler team needs to be tracking? What communication is (or should) be happening? I'd like us to be able to come up with a good list of all the things we think should be happening, so that we can compare against our existing processes, and try to ensure they are covered (or adjust the processes as needed). 28 | 29 | We produced a [paper document](https://paper.dropbox.com/doc/Compiler-team-tasks-and-roles--AZ3lQbJIE85P1R6~Xku6qL0RAg-TZxdEmmzMTD049QvEG4Li) that contains a pretty comprehensive listing, sorted into categories. 30 | 31 | After other topics that came up along the way: 32 | 33 | - [Ideas for how to have higher-level design meetings](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/steering.20meeting.202019.2E03.2E22.20.2358850/near/161452801) 34 | - [Thoughts about the "office hours" concept](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/steering.20meeting.202019.2E03.2E22.20.2358850/near/161453525) 35 | - [What we can do about status updates](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/steering.20meeting.202019.2E03.2E22.20.2358850/near/161454477) 36 | - [lolbench](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/steering.20meeting.202019.2E03.2E22.20.2358850/near/161461620), the project to measure and track the performance of generated code 37 | -------------------------------------------------------------------------------- /content/minutes/steering-meeting/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Steering Meeting 3 | type: docs 4 | --- 5 | 6 | # Steering Meetings 7 | 8 | {{< list-files "content/minutes/steering-meeting" >}} 9 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2019-04-11.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.04.11 3 | type: docs 4 | --- 5 | # 2019-04-11 6 | 7 | # Volunteers wanted 8 | 9 | - seeking help on resolving ["[firefox] error: relocation refers to local symbol "" [12], which is defined in a discarded section"](https://github.com/rust-lang/rust/issues/59652) 10 | 11 | - seeking help on resolving ["Compiler panic with generic-typed nested closures"](https://github.com/rust-lang/rust/issues/59494) 12 | 13 | # Backport decisions 14 | 15 | - No backport decisions were made at this meeting because there were no PRs nominated for backport. 16 | 17 | # Working group sync 18 | 19 | ## [wg-mir-opt](../../../working-groups/mir-opt/) 20 | 21 | - The current goal is to make the MIR `Place` data structure non-recursive ([Issue #52708](https://github.com/rust-lang/rust/issues/52708)). 22 | This should use less memory, be easier to work with, and probably faster as well. 23 | 24 | - After that is completed, there are a number of other `Place` related refactorings and other ideas from the All-Hands meeting that can be worked on. 25 | 26 | - [Link to full discussion](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-04-11.20.2354818/near/163105192) 27 | 28 | ## [wg-pipelining](../../../working-groups/pipelining/) 29 | 30 | - The goal is to allow Cargo to invoke rustc sooner letting downstream crates start compiling while upstream crates do LLVM work ([Issue #58465](https://github.com/rust-lang/rust/issues/58465)) 31 | 32 | - This working group is just getting started and had its initial meeting on 4/5. 33 | 34 | - [Link to full discussion](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-04-11.20.2354818/near/163106257) 35 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2019-04-18.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.04.18 3 | type: docs 4 | --- 5 | # 2019-04-18 6 | 7 | ## Volunteers wanted 8 | 9 | - No issues discussed this week. 10 | 11 | ## Backport decisions 12 | 13 | - There were no beta backport nominations this week. 14 | 15 | - "Use informational target machine for metadata" ([#58605](https://github.com/rust-lang/rust/pulls/58605)) was nominated for backport to stable. 16 | - [Nomination was declined](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-04-18.20.2354818/near/163655391) 17 | 18 | ## Working group sync 19 | 20 | ### [wg-llvm](../../../working-groups//llvm) 21 | 22 | - `wg-llvm` is working on optimizing `overflow` intrinsics with `add` and `sub` instructions. 23 | 24 | - A PR ([#59546](https://github.com/rust-lang/rust/pull/59546)) has also been opened to fix [a long standing unsoundness issue](https://github.com/rust-lang/rust/issues/28728). 25 | The PR is currently waiting for someone to run lolbench.rs to determine what impact the PR has on generated code performance. 26 | 27 | [Link to full discussion](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-04-18.20.2354818/near/163658733) 28 | 29 | ### [wg-async-await](../../../working-groups/async-await/) 30 | 31 | - `wg-async-await` is currently working though the list of [issues blocking stabilization](https://github.com/rust-lang/rust/labels/AsyncAwait-Blocking). 32 | - This includes: 33 | - [Async-await syntax](https://github.com/rust-lang/rust/issues/60016) 34 | - [Supporting async fns whose arguments have multiple lifetimes](https://github.com/rust-lang/rust/issues/56238) 35 | - [Shrinking the size of generators](https://github.com/rust-lang/rust/issues/52924) 36 | 37 | - The thorniest issue remaining is determining the drop order for unused async function arguments ([#54716](https://github.com/rust-lang/rust/issues/54716)) 38 | - While investigating this issue, some subtle inconsistencies regarding existing drop order for regular functions were discovered. 39 | - This issue is also not proving to be easy to resolve. 40 | 41 | [Link to full discussion](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-04-18.20.2354818/near/163658872) -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2019-04-25.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.04.25 3 | type: docs 4 | --- 5 | # 2019-04-25 6 | 7 | ## Volunteers wanted 8 | 9 | - Somebody needed to reduce [#60136](https://github.com/rust-lang/rust/issues/60136) 10 | - Somebody needed to write documentation [#60059](https://github.com/rust-lang/rust/issues/60059) 11 | 12 | ## Backport decisions 13 | 14 | - "Temporarily accept [i|u][32|size] suffixes on a tuple index and warn" [#60186](https://github.com/rust-lang/rust/issues/60186) 15 | - [Accepted](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-04-25.20.2354818/near/164176203) 16 | 17 | - "Revert "compile crates under test w/ -Zemit-stack-sizes" [#59911](https://github.com/rust-lang/rust/issues/59911) 18 | - [Accepted](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-04-25.20.2354818/near/164176203) 19 | 20 | ## Working group sync 21 | 22 | ### [wg-rfc-2229](../../../working-groups/rfc-2229/) 23 | 24 | - RFC 2229 is a proposal to change how closures capture variables. 25 | Instead of capturing the complete variable when a part of it is used (ie `foo.bar`), only the "path" will be captured by the closure. 26 | 27 | - This requires a large amount of refactoring in the compiler. 28 | 29 | - There is currently a PR open which implements part of this but it regresses compiler error messages in some situtations. 30 | 31 | - There's been ongoing discussion as to next steps and other refactorings some of which have issues with light mentoring steps available. 32 | 33 | - [Link to full discussion](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-04-25.20.2354818/near/164176279) 34 | 35 | ### [wg-self-profile](../../../working-groups/self-profile/) 36 | 37 | - wg-self-profile has been making progress toward the "minimum viable product" tracking issue [#58967](https://github.com/rust-lang/rust/issues/58967): 38 | - A crate called measureme has been created which handles serializing and deserializing profiler events to a compact binary format. 39 | - The crate has been integrated with the existing self-profile infrastructure in rustc. 40 | - There are now summarization and flamegraph tools for processing the profiler data in the repo as well. 41 | 42 | - The next step is to work on integrating the summarization tool with perf.rlo. 43 | 44 | - [Link to full discussion](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-04-25.20.2354818/near/164177123) 45 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2019-05-02.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.05.02 3 | type: docs 4 | --- 5 | # 2019-05-02 6 | 7 | ## Volunteers wanted 8 | 9 | - call for assistance: Does someone have an ARM (and maybe also MUSL?) host they could use to try to replicate ["Stable rustc always panics on arm/musl"](https://github.com/rust-lang/rust/issues/60297) 10 | 11 | ## Backport decisions 12 | 13 | - There were no beta- nor stable-nominations for backport. 14 | 15 | ## Working group sync 16 | 17 | ### [wg-meta](../../../working-groups/meta) 18 | 19 | - The compiler contributor RFC is in FCP and should be merged soon. 20 | 21 | - They are trying to get some sort of "design meeting" up and going. 22 | The plan is to discuss that initial proposal in more depth tomorrow at steering meeting, and then get started after that. 23 | 24 | - The compiler-team repo has a list of issues tracking things that wg-meta would like to get done. 25 | - call for assistance: [Convert the compiler-team repo to use GitHub pages](https://github.com/rust-lang/compiler-team/issues/73) 26 | 27 | ### [wg-rls-2.0](../../../working-groups/rls-2.0/) 28 | 29 | - Lots of progress happening! 30 | 31 | - Work is being done to expand macros by example so the analyser can understand the generated code. 32 | 33 | - Chalk is being integrated ([#1216](https://github.com/rust-analyzer/rust-analyzer/pull/1216)). 34 | 35 | - The rustc lexer code is being extracted into a separate crate ([#60261](https://github.com/rust-lang/rust/pull/60261)). 36 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2019-05-09.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.05.09 3 | type: docs 4 | --- 5 | # 2019-05-09 6 | 7 | ## Volunteers wanted 8 | 9 | - compiler panic "randomly" with incremental build [(#60629)](https://github.com/rust-lang/rust/issues/60629) 10 | - [Help is wanted to reproduce the issue](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-05-09.20.2354818/near/165255081) 11 | 12 | - Regression: Typemap type mismatch in 1.34.0+ [(#60375)](https://github.com/rust-lang/rust/issues/60375) 13 | - [Help is wanted to narrow down the problem](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-05-09.20.2354818/near/165255267) 14 | 15 | ## Backport decisions 16 | 17 | - save-analysis: Fix ICE when processing associated constant [(#60649)](https://github.com/rust-lang/rust/pull/60649) 18 | - Backport accepted 19 | 20 | ## Working group sync 21 | 22 | ### [wg-nll](../../../working-groups/nll/) 23 | 24 | - [NLL migration mode is enabled on Rust 2015](https://github.com/rust-lang/rust/pull/59114). 25 | 26 | - The next goal is to remove the old AST-based borrow checker. 27 | 28 | - [Link to full discussion](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-05-09.20.2354818/near/165259126) 29 | 30 | ### [wg-diagnostics](../../../working-groups/diagnostics/) 31 | 32 | - wg-diagnostic's current goal is to pull some of the diagnostic infrastructure out of the compiler and into a reusuable crate. 33 | 34 | - They are working on organizing their first meeting soon. 35 | 36 | - [Link to full discussion](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-05-09.20.2354818/near/165259007) 37 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2019-05-16.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.05.16 3 | type: docs 4 | --- 5 | # 2019-05-16 6 | 7 | ## Volunteers wanted 8 | 9 | - request for investigation: "Compiler panic with generic-typed nested closures" ([#59494](https://github.com/rust-lang/rust/issues/59494)) 10 | 11 | - request for investigation: "Exponential compile-time and type_length_limit blowup when nesting closure wrappers" ([#54540](https://github.com/rust-lang/rust/issues/54540)) 12 | - eddyb has excellent notes [here](https://github.com/rust-lang/rust/issues/54540#issuecomment-485240110) on the fundamental problem 13 | 14 | - request for investigation: "llvm lint: "Undefined behavior: Call argument type mismatches callee parameter type" with mixing debug and release" ([#48310](https://github.com/rust-lang/rust/issues/48310)) 15 | - specifically, we need to resolve whether this is in fact an LLVM bug 16 | 17 | - request for investigation: "ICE with unsized associated type" ([#60431](https://github.com/rust-lang/rust/issues/60431)) 18 | 19 | ## Backport decisions 20 | 21 | - save-analysis: Pull associated type definition using qpath_def" ([#59894](https://github.com/rust-lang/rust/pull/59894)) 22 | - Backport accepted 23 | 24 | - Use delay_span_bug for error cases when checking AnonConst parent ([#60710](https://github.com/rust-lang/rust/pull/60710)) 25 | - Backport accepted 26 | 27 | - Use delay_span_bug for "Failed to unify obligation" ([#60644](https://github.com/rust-lang/rust/pull/60644)) 28 | - Backport accepted 29 | 30 | - Instead of ICEing on incorrect pattern, use delay_span_bug ([#60641](https://github.com/rust-lang/rust/pull/60641)) 31 | - Backport accepted 32 | 33 | - conditionally modify darwin targets to macosx targets with versions ([#60378](https://github.com/rust-lang/rust/pull/60378)) 34 | - Backport declined 35 | 36 | - default to $ARCH-apple-macosx10.7.0 LLVM triple for darwin targets ([#60788](https://github.com/rust-lang/rust/pull/60788)) 37 | - Backport declined 38 | 39 | ## Working group sync 40 | 41 | - We ran out of time to hear from working groups in this meeting. 42 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2019-05-23.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.05.23 3 | type: docs 4 | --- 5 | # 2019-05-23 6 | 7 | ## Volunteers wanted 8 | 9 | - No issues discussed this week. 10 | 11 | ## Backport decisions 12 | 13 | - "Fix ICE with inconsistent macro matchers" ([#61046](https://github.com/rust-lang/rust/pull/61046)) 14 | - Backport accepted 15 | 16 | - "debuginfo: Revert to old/more verbose behavior for -Cdebuginfo=1" ([#61007](https://github.com/rust-lang/rust/pull/61007)) 17 | - Backport accepted 18 | 19 | ## Working group sync 20 | 21 | ### [wg-pgo](../../../working-groups/pgo/) 22 | 23 | - PGO stands for Profiler Guided Optimization. 24 | 25 | - Code is instrumented and then run. The profilng data gathered at runtime is then used in subsequent compilations to guide optimizations. 26 | 27 | - PGO support is almost complete! 28 | - The remaining work is mostly just around the UI side of things: documenting compiler flags, moving flags from `-Z` to `-C`. 29 | 30 | [Link to full discussion](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-05-23.20.2354818/near/166368190) 31 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2019-06-06.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.06.06 3 | type: docs 4 | --- 5 | # 2019-06-06 6 | 7 | ## Volunteers wanted 8 | 9 | - No issues discussed this week. 10 | 11 | ## Backport decisions 12 | 13 | - Fix regression 61475 [#61500](https://github.com/rust-lang/rust/pull/61500) 14 | - Backport approved 15 | - Turn turbo :fish: :ice_cream: into an error [#61189](https://github.com/rust-lang/rust/pull/61189) 16 | - Backport approved 17 | - Fix overflowing literal lint in loops [#61098](https://github.com/rust-lang/rust/pull/61098) 18 | - Backport approved 19 | - Fix more escaping ReScopes [#60765](https://github.com/rust-lang/rust/pull/60765) 20 | - Backport approved 21 | - Constrain all regions in the concrete type for an opaque type [#60449](https://github.com/rust-lang/rust/pull/60449) 22 | - Backport approved 23 | 24 | ## Working group sync 25 | 26 | ### [wg-mir-opt](../../../working-groups/mir-opt/) 27 | 28 | - const propagation (by Wesley Wiser) on mir opt level 2 29 | - some great compile-time speedups due to llvm and later MIR passes having less to do 30 | - [Perf](https://perf.rust-lang.org/compare.html?start=7cdaffd7962c4aae0cadd82baa241901b03f9458&end=78f9292a51479346f19ce2c71bdb0db551ce8fe5) (active PR) has some regressions (up to 4% though) 31 | 32 | - rewrite loads of recursive Place algorithms imperatively (by Santiago Pastorino) 33 | 34 | - WIP PR by Santiago Pastorino for making Place a struct instead of an enum (preliminary work for making projections a slice instead of a recursive enum) 35 | 36 | [Link to full discussion](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-06-06.20.2354818/near/167489269) 37 | 38 | ### [wg-pgo](../../../working-groups/pgo/) 39 | - Nothing new to report 40 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2019-06-13.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.06.13 3 | type: docs 4 | --- 5 | # 2019-06-13 6 | 7 | ## Volunteers wanted 8 | 9 | - No issues discussed this week. 10 | 11 | ## Backport decisions 12 | 13 | - Handle index out of bound errors during const eval without panic [#61598](https://github.com/rust-lang/rust/pull/61598) 14 | - Approved for beta backport. 15 | 16 | ## Working group sync 17 | 18 | ### [wg-llvm](../../../working-groups/llvm/) 19 | 20 | - Nikita Popov fixed a codegen issue with LLVM float min/max intrinsics on X86. 21 | 22 | - This allowed varkor to switch our min/max functions to use those intrinsics. 23 | 24 | - Nikita Popov is working on getting CVP nowrap inference reenabled in LLVM. 25 | 26 | [Link to full discussion](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-06-13.20.2354818/near/168041753) 27 | 28 | ### [wg-async-foundations](../../../working-groups/async-await/) 29 | 30 | - The [list of blocking issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+is%3Aissue+label%3AAsyncAwait-Blocking) is shrinking! 31 | 32 | - Two major issues have had signficant work done on them: 33 | - nikomatsakis posted a PR which closes a number of lifetime related issues. 34 | - tmandry is working on shrinking the size of futures. 35 | 36 | - Work is commencing on the "async book" which will help explain how async I/O works and the async-await feature in particular. 37 | 38 | - Many more tests need to be written around the feature. 39 | - This might be a good way to get involved with the working group! 40 | 41 | [Link to full discussion](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-06-13.20.2354818/near/168052951) 42 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2019-06-20.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.06.20 3 | type: docs 4 | --- 5 | # 2019-06-20 6 | 7 | ## Volunteers wanted 8 | 9 | - No issues discussed this week. 10 | 11 | ## Backport decisions 12 | 13 | - Beta: "resolve: Temporarily make panic available with no_implicit_prelude" [#61971](https://github.com/rust-lang/rust/pull/61971) 14 | - Backport accepted 15 | 16 | - Beta: "Fix ICE involving mut references" [#61947](https://github.com/rust-lang/rust/pull/61947) 17 | - Backport accepted 18 | 19 | - Beta: "rustc_typeck: correctly compute Substs for Res::SelfCtor." [#61896](https://github.com/rust-lang/rust/pull/61896) 20 | - Backport accepted 21 | 22 | - Beta: "Fix rust-lldb wrapper scripts." [#61827](https://github.com/rust-lang/rust/pull/61827) 23 | - Backport declined 24 | 25 | - Beta: "Fix cfg(test) build for x86_64-fortanix-unknown-sgx" [#61503](https://github.com/rust-lang/rust/pull/61503) 26 | - Backport accepted 27 | 28 | - Beta: "Dont ICE on an attempt to use GAT without feature gate" [#61118](https://github.com/rust-lang/rust/pull/61118) 29 | - Backport accepted 30 | 31 | - Beta: "Limit dylib symbols" [#59752](https://github.com/rust-lang/rust/pull/59752) 32 | - Backport accepted 33 | 34 | - Beta: "create a "provisional cache" to restore performance in the case of cycles" [#61754](https://github.com/rust-lang/rust/pull/61754) 35 | - We're going to wait a week and then revisit this 36 | 37 | - Beta: "Hygienize macros in the standard library" [#61629](https://github.com/rust-lang/rust/pull/61629) 38 | - Backport accepted 39 | 40 | ## Working group sync 41 | 42 | There wasn't time to check-in with the working groups this week. 43 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2019-06-27.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.06.27 3 | type: docs 4 | --- 5 | # 2019-06-27 6 | 7 | The meeting largely consisted of discussion of a few nominated issues: 8 | 9 | - [Rustdoc recursion limit issue](https://github.com/rust-lang/rust/issues/62059) 10 | - Assigned to @nagisa 11 | 12 | - [Incorrect span / broken rustfix: help: use dyn: dyn #[dom_struct]](https://github.com/rust-lang/rust/issues/61963) 13 | - @davidtwco is assigned and working on a fix. 14 | 15 | - [Soundness hole in pattern matching on enums with an uninhabited variant](https://github.com/rust-lang/rust/issues/61696) 16 | - Assigned to @eddyb. 17 | 18 | - [Self as default type isnt typechecked](https://github.com/rust-lang/rust/issues/61631) 19 | - Under discussion at a future T-Lang meeting. 20 | 21 | - [Incremental compilation results in linker error when method use is removed](https://github.com/rust-lang/rust/issues/59535) 22 | - Assigned to @Zoxc tentatively as @mw is on leave. 23 | 24 | - [Coherence can be bypassed by an indirect impl for a trait object](https://github.com/rust-lang/rust/issues/57893) 25 | - Assigned to @centril and it has a T-Lang meeting slot. 26 | 27 | - [The compiler should report publicly exported type names if possible](https://github.com/rust-lang/rust/issues/21934) 28 | - There was some discussion about why this is difficult currently and possible approaches to resolving this issue. 29 | - No firm conclusion was reached so the nomination label was left on the issue and it can be picked back up next week. 30 | 31 | - ["immutable field" errors are confusing when the handle is mutable, should describe why it is immutable](https://github.com/rust-lang/rust/issues/18150) 32 | - This issue is `P-high` for WG-diagnostics but not necessarily the entire compiler team. 33 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2019-07-04.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.07.04 3 | type: docs 4 | --- 5 | # 2019-07-04 6 | 7 | ## Volunteers wanted 8 | 9 | - No issues discussed this week. 10 | 11 | ## Backport decisions 12 | 13 | - There were no backport nominations this week. 14 | 15 | ## Working group sync 16 | 17 | [wg-meta](https://github.com/rust-lang/compiler-team/blob/master/content/working-groups/meta/_index.md) 18 | 19 | - Conferences, Mozilla All-Hands, and other activities have been keeping members of the group busy recently. 20 | So there's been a slight stall in activity. 21 | 22 | - The compiler team website is nearly completed thanks to @Federico Carrone and @catalinasy! 23 | 24 | [Link to full discussion](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-07-04.20.2354818/near/169654430) 25 | 26 | ## Meta 27 | 28 | A [poll was taken](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-07-04.20.2354818/near/169652882) to see if there was interest in moving the Friday Compiler Steering Meeting to another day or time. 29 | Most people didn't have a strong feeling one way or the other. 30 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2019-07-11.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.07.11 3 | type: docs 4 | --- 5 | # 2019-07-11 6 | 7 | ## Volunteers wanted 8 | 9 | - No issues discussed this week. 10 | 11 | ## Backport nominations 12 | 13 | - [Raise the default recursion limit to 128](https://github.com/rust-lang/rust/pull/62450) 14 | - Approved for beta backport 15 | 16 | - [Fix ICEs when Self is used in type aliases](https://github.com/rust-lang/rust/pull/62417) 17 | - Approved for beta backport 18 | 19 | - [Emit warning when trying to use PGO in conjunction with unwinding on Windows](https://github.com/rust-lang/rust/pull/61853) 20 | - On hold while @wesleywiser looks into alternative approaches 21 | 22 | ## Working group sync 23 | 24 | [wg-pipelining](https://github.com/rust-lang/compiler-team/blob/master/content/working-groups/pipelining/_index.md) 25 | 26 | - Tracking issue [#60988](https://github.com/rust-lang/rust/issues/60988) 27 | 28 | - @alexcrichton is proposing we stabilize the feature and turn it on for everyone by default. 29 | There are two main parts to this: 30 | - [A `--json` flag which will replace `--json-rendered`](https://github.com/rust-lang/rust/issues/60987#issuecomment-509310492) 31 | - [JSON notifications when artifacts are complete](https://github.com/rust-lang/rust/issues/60419#issuecomment-502228173) 32 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2019-07-18.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.07.18 3 | type: docs 4 | --- 5 | # 2019-07-18 6 | 7 | ## Volunteers wanted 8 | 9 | - No issues discussed this week. 10 | 11 | ## Backport nominations 12 | 13 | - [Fix #62660](https://github.com/rust-lang/rust/pull/62668) 14 | - Approved for beta backport 15 | - Declined for stable backport 16 | 17 | - [Cancel unemitted diagnostics during error recovery](https://github.com/rust-lang/rust/pull/62666) 18 | - Approved for beta backport 19 | 20 | - [Handle errors during error recovery gracefully](https://github.com/rust-lang/rust/pull/62604) 21 | - Approved for beta backport 22 | 23 | - [Correctly break out of recovery loop](https://github.com/rust-lang/rust/pull/62607) 24 | - Approved for beta backport 25 | - Declined for stable backport 26 | 27 | - [Emit warning when trying to use PGO in conjunction with unwinding on Windows](https://github.com/rust-lang/rust/pull/61853) 28 | - Declined because it's supersceeded by [#62615](https://github.com/rust-lang/rust/pull/62615) 29 | 30 | - [Only error about MSVC + PGO + unwind if we're generating code](https://github.com/rust-lang/rust/pull/62615) 31 | - Approved for beta backport 32 | 33 | - [rustc_target: avoid negative register counts in the SysV x86_64 ABI](https://github.com/rust-lang/rust/pull/62380) 34 | - Approved for beta backport 35 | 36 | ## Working group sync 37 | 38 | There wasn't time for a working group sync this week. 39 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2019-07-25.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.07.18 3 | type: docs 4 | --- 5 | # 2019-07-25 6 | 7 | ## Volunteers wanted 8 | 9 | - [#60297](https://github.com/rust-lang/rust/issues/60297) - we are looking for someone with access to ARM/musl to help debug this 10 | 11 | - [#62896](https://github.com/rust-lang/rust/issues/62896) and [#62932](https://github.com/rust-lang/rust/issues/62932) - there are some embedded failures, quite possibly related to LLVM, that could use bisection 12 | 13 | ## Backport nominations 14 | 15 | - [Make the parser TokenStream more resilient after mismatched delimiter recovery](https://github.com/rust-lang/rust/pull62887) 16 | - Approved for beta backport 17 | 18 | ## Working group sync 19 | 20 | No working group sync this week. 21 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2019-08-01.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.08.01 3 | type: docs 4 | --- 5 | 6 | # 2019-08-01 7 | 8 | ## Volunteers wanted 9 | 10 | No issues discussed this week. 11 | 12 | ## Backport decisions 13 | 14 | There were no pending backport decisions this week. 15 | 16 | ## Working group sync 17 | 18 | No working group sync this week. 19 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2019-08-15.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.08.15 3 | type: docs 4 | --- 5 | 6 | # 2019-08-15 7 | 8 | ## Volunteers wanted 9 | 10 | - [#60297](https://github.com/rust-lang/rust/issues/60297) - we are looking for someone with access to ARM/musl to help debug this 11 | 12 | ## Backport nominations 13 | 14 | - [#63508](https://github.com/rust-lang/rust/pull/63508) Do not ICE when synthesizing spans falling inside unicode chars 15 | - Beta backport accepted 16 | 17 | ## Working group sync 18 | 19 | ### [wg-rustc-dev-guide](https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/) 20 | 21 | wg-rustc-dev-guide's objective is to make the compiler easier to learn by ensuring that rustc-dev-guide is "complete". 22 | 23 | Currently they're working on: 24 | 25 | 1. Getting [video lectures](https://www.youtube.com/watch?v=mAUGvNgZYtw) about parts of the compiler from people who know them 26 | 2. Turning existing video lectures into content for the [rustc-dev-guide](https://github.com/rust-lang/rustc-dev-guide) 27 | 3. Triaging and working on issues and pull requests for rustc-dev-guide content 28 | 29 | Help is always wanted! 30 | 31 | [Link to full conversation](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-08-15.20.2354818/near/173295057) 32 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2019-08-29.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.08.29 3 | type: docs 4 | --- 5 | 6 | # 2019-08-29 7 | 8 | ## Volunteers wanted 9 | 10 | - We've had a few issues recently related to upgrading LLVM. 11 | We'd like to create a [new working group](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-08-29.20.2354818/near/174456953) which will focus on fixing ICEs and miscompilations caused by LLVM. 12 | 13 | ## Backport nominations 14 | 15 | - Account for doc comments coming from proc macros without spans [#63930](https://github.com/rust-lang/rust/pull/63930) 16 | - Accepted for beta backport 17 | 18 | - fix nounwind attribute logic [#63909](https://github.com/rust-lang/rust/pull/63909) 19 | - Declined for beta backport 20 | 21 | - Fix nested eager expansions in arguments of format_args [#63717](https://github.com/rust-lang/rust/pull/63717) 22 | - Accepted for beta backport 23 | 24 | - Don't access a static just for its size and alignment [#62982](https://github.com/rust-lang/rust/pull/62982) 25 | - Accepted for beta backport 26 | 27 | - debuginfo: give unique names to closure and generator types [#63875](https://github.com/rust-lang/rust/pull/63875) 28 | - Accepted for beta backport 29 | 30 | ## Working group sync 31 | 32 | ### [wg-mir-opt](https://rust-lang.github.io/compiler-team/working-groups/mir-opt/) 33 | 34 | - [@spastorino](https://github.com/spastorino) has gotten Place 2.0 (a reimagining of `mir::Place` using slices for projections) with only a slight regression in memory usage on one compiler benchmark. 35 | - They're currently working on fixing that regression. 36 | 37 | - [@wesleywiser](https://github.com/wesleywiser) split promoted items out of `mir::Body` to prevent cycles in the optimization pipeline. 38 | - They're continuing to work on making the `const_prop` pass more powerful. 39 | 40 | [Link to full conversation](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-08-29.20.2354818/near/174460086) 41 | 42 | ### [wg-nll](https://rust-lang.github.io/compiler-team/working-groups/nll/) 43 | 44 | - A few soundess "fixed-by-nll" issues were closed recently. 45 | 46 | - Work is ongoing to stabilize bind-by-move pattern guards. 47 | 48 | [Link to full conversation](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-08-29.20.2354818/near/174460730) 49 | 50 | ### [wg-parallel-rustc](https://rust-lang.github.io/compiler-team/working-groups/parallel-rustc/) 51 | 52 | - [@aturon](https://github.com/aturon) is doing an audit of related PRs (accepted and pending) with a focus on shared state and lock semantics with multithreaded rustc. 53 | 54 | - [@aturon](https://github.com/aturon) is also going to be working on reducing locking and shared mutable state that exists outside the query system. 55 | 56 | [Link to full conversation](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-08-29.20.2354818/near/174461122) 57 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2019-09-05.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.09.05 3 | type: docs 4 | --- 5 | # 2019-09-05 6 | 7 | ## Volunteers wanted 8 | 9 | ## Backport nominations 10 | 11 | - Update xLTO compatibility table in rustc book [#64092](https://github.com/rust-lang/rust/pull/64092) 12 | - Approved for beta backport 13 | 14 | - Support "soft" feature-gating using a lint [#64066](https://github.com/rust-lang/rust/pull/64066) 15 | - Approved for beta backport 16 | 17 | - pprust: Do not print spaces before some tokens [#63897](https://github.com/rust-lang/rust/pull/63897) 18 | - Approved for beta backport 19 | 20 | ## Working group sync 21 | 22 | No working group sync this week. 23 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2019-09-12.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.09.12 3 | type: docs 4 | --- 5 | 6 | # 2019-09-12 7 | 8 | ## Volunteers wanted 9 | 10 | - We are looking for someone with access to an `arm/musl` system to help troubleshoot [#60297](https://github.com/rust-lang/rust/pull/60297) 11 | 12 | ## Backport nominations 13 | 14 | - Update LLVM submodule [#64317](https://github.com/rust-lang/rust/pull/64317) 15 | - Approved for beta backport 16 | 17 | - fix nounwind attribute logic [#63909](https://github.com/rust-lang/rust/pull/63909) 18 | - No conclusion reached yet. We'll revisit next week. 19 | 20 | - pprust: Do not print spaces before some tokens [#63897](https://github.com/rust-lang/rust/pull/63897) 21 | - Approved for beta backport 22 | 23 | # Working group sync 24 | 25 | ## [wg-polonius](https://rust-lang.github.io/compiler-team/working-groups/polonius/) 26 | 27 | - After a long hiatus, this working group is being rebooted with a focus on expanding [Polonius](https://github.com/rust-lang/polonius) coverage to include initialization checking and region subtyping in addition to borrow checking. 28 | 29 | - Work is also proceceeding on a book which will document the rules for Polonius. The hope is this will both make it easier to understand Polonius and also help make it easier for new contributors to get involved. 30 | 31 | - [@Albin Stjerna](https://github.com/albins) is also working on a master's thesis which overlaps with the Polonius work. 32 | 33 | - [@Aaron Weiss](https://github.com/aatxe) and [@nikomatsakis](https://github.com/nikomatsakis) realized that there maybe opportunities to make Polonius more precise. [Related video chat](https://www.youtube.com/watch?v=mAUGvNgZYtw&list=PL85XCvVPmGQitE2CBzf-gERSqeXo59NQG&index=4&t=0s) 34 | 35 | - [@lqd](https://github.com/lqd) has been working on a rustc compare mode which will check Polonius against the current borrow checker. 36 | 37 | [@Matthew Jasper](https://github.com/matthewjasper) and [@lqd](https://github.com/lqd) have made a number of fixes and cleanups so nearly all of the rustc tests pass under the Polonius compare-mode. 38 | 39 | - Some general performance work has been done but there's more to do especially around large constants. 40 | 41 | - Some vocabularly is also being decided on. 42 | 43 | [Link to full discussion](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-09-12.20.2354818/near/175535951) 44 | 45 | ## [wg-rfc-2229](https://rust-lang.github.io/compiler-team/working-groups/rfc-2229/) 46 | 47 | - [RFC 2229](https://github.com/rust-lang/rfcs/blob/master/text/2229-capture-disjoint-fields.md) changes closures so they don't capture entire variables, but rather subpaths. 48 | 49 | - [@blitzerr](https://github.com/blitzerr) has been working on a refactoring related to how closure substitutions work. This is mostly done but it's hit some issues related to diagnostics and needs also needs to be rebased. 50 | 51 | - Work is ongoing. 52 | 53 | [Link to full discussion](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-09-12.20.2354818/near/175536581) 54 | 55 | 56 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2019-09-19.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.09.19 3 | type: docs 4 | --- 5 | 6 | # 2019-09-19 7 | 8 | ## Volunteers wanted 9 | 10 | - "Better error message when attempting to instantiate tuple structs with private fields" [#58017](https://github.com/rust-lang/rust/issues/58017) 11 | - Volunteer wanted to bisect this issue. 12 | 13 | ## Backport nominations 14 | 15 | - "fn ptr is structural match" [#64431](https://github.com/rust-lang/rust/pull/64431) 16 | - Accepted for beta backport 17 | 18 | - "fix nounwind attribute logic" [#63909](https://github.com/rust-lang/rust/pull/63909) 19 | - Declined for beta backport 20 | 21 | 22 | 23 | ## Working group sync 24 | 25 | ### [wg-self-profile](https://rust-lang.github.io/compiler-team/working-groups/self-profile/) 26 | 27 | Three main things being worked on: 28 | 29 | 1. Getting the "minimum viable product" done as planned [#58967](https://github.com/rust-lang/rust/issues/58967) 30 | 31 | 2. Improving the ergonomics of self-profiling 32 | - we want to collect use cases on [irlo](https://internals.rust-lang.org/t/compiler-profiling-survey/10969) and then try to come up with good, tooling assisted workflows for those use cases 33 | 34 | 3. Use self-profiling to implement a feature that allows to attribute compile time to specific parts of the source code 35 | - this feature is currently still in the brainstorming phase 36 | - comments welcome https://github.com/rust-lang/measureme/issues/51 37 | 38 | [Link to full discussion](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-09-19.20.2354818/near/176105683) 39 | 40 | ### [wg-rls-2.0](https://rust-lang.github.io/compiler-team/working-groups/rls-2.0/) 41 | 42 | - Chalk has been integrated, a number of performance problems have been fixed, and now it works great! 43 | 44 | - Macro by example and associated macro resolution work well enough to cover significant subset of the real world code 45 | 46 | - We added a simple hack to show compiler errors by just running cargo check 47 | 48 | - First win of librarification: rustc and rust-analyzer share the same lexer code! 49 | 50 | - After slowing down during August, they are starting the next sprint. The goal is to library-ify type-relating things: so, chalk + unification + a definition of Ty 51 | 52 | [Link to full discussion](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-09-19.20.2354818/near/176106397) 53 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2019-09-26.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.09.26 3 | type: docs 4 | --- 5 | 6 | # 2019-09-26 7 | 8 | ## Volunteers wanted 9 | 10 | - Help wanted: proc-macro param attrs dropping first attrs in impl fns [#64682](https://github.com/rust-lang/rust/issues/64682) 11 | 12 | - Help wanted: error: internal compiler error: unexpected panic: inconsistent resolution for a macro [#64803](https://github.com/rust-lang/rust/issues/64803) 13 | 14 | ## Backport nominations 15 | 16 | - Fix #64744. Account for the Zero sub-pattern case. [#64748](https://github.com/rust-lang/rust/pull/64744) 17 | - Approved for beta backport 18 | 19 | - Rustdoc render async function re-export [#64599](https://github.com/rust-lang/rust/pull/64599) 20 | - Approved for beta backport 21 | 22 | ## Working group sync 23 | 24 | ### [wg-traits](https://rust-lang.github.io/compiler-team/working-groups/traits/) 25 | 26 | `wg-traits` is spinning back up and has a number of projects currently being worked on: 27 | 28 | - More Chalk work 29 | - Investigating lazy normalization 30 | - Enabling trait upcasts 31 | - Resolving `dyn Trait` coherence and well-formedness issues 32 | - Work is progressing to allow stabilization of the `!` type 33 | 34 | [Link to full discussion](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-09-26.20.2354818/near/176664817) 35 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2019-10-10.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.10.10 3 | type: docs 4 | --- 5 | 6 | # 2019-10-10 7 | 8 | ## Announcements 9 | 10 | - @centril is splitting `libsyntax` into data and logic parts which will decrease the amount of code `librustc` depends on. 11 | 12 | - @nagisa a cross-platform version of stacker which will allow us to avoid stack overflows in rustc. 13 | 14 | - There is a compiler team design meeting scheduled for tomorrow (2019-10-11) to discuss some of @Zoxc's PRs. 15 | 16 | - @pnfelix is revising the code that handles structural match checking. 17 | 18 | - @nikomatsakis has a PR ([#65232](https://github.com/rust-lang/rust/issues/65232)) up which helps us get closer to lazy normalization. 19 | 20 | - `wg-traits` is going to start holding a weekly "office hours" video call to help answer questions and teach people about trait system internals. 21 | 22 | ## Volunteers wanted 23 | 24 | ## Backport nominations 25 | 26 | - Ensure that associated async fns have unique fresh param names [#65142](https://github.com/rust-lang/rust/pull/65142) 27 | - Approved for beta backport 28 | 29 | - Account for macro invocation in let mut $pat diagnostic. [#65123](https://github.com/rust-lang/rust/pull/65123) 30 | - Approved for beta backport 31 | 32 | - Fix the start/end byte positions in the compiler JSON output [#65074](https://github.com/rust-lang/rust/pull/65074) 33 | - Declined for beta backport 34 | 35 | - extract expected return type for async fn generators [#64999](https://github.com/rust-lang/rust/pull/64999) 36 | - Declined for beta backport 37 | 38 | ## Working group sync 39 | 40 | ### [wg-rustc-dev-guide](https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/) 41 | 42 | - `wg-rustc-dev-guide` has been working on transcribing videos from the [compiler lecture series](https://www.youtube.com/watch?v=elBxMRSNYr4&list=PL85XCvVPmGQhOL-J2Ng7qlPvDVOwYpGTN) into [rustc-dev-guide](https://rustc-dev-guide.rust-lang.org/) chapters. 43 | 44 | - Originally, individuals were assigned one or lectures to complete but that hasn't worked very well. 45 | 46 | - Recently, they're trying to work on one video at a time as a team with much better results. 47 | 48 | - There's [a PR](https://paper.dropbox.com/doc/Ty-lecture-summary--Almbjo_id6n8CKrOHlsTMG2dAg-4jFj9bVOLlW7uhIOWHITX) open for a new chapter based on the `ty` lecture. 49 | 50 | [Link to full discussion](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-10-10.20.2354818/near/177816515) 51 | 52 | ### [wg-llvm](https://rust-lang.github.io/compiler-team/working-groups/llvm/) 53 | 54 | - rustc has upgraded to the LLVM 9 release; 55 | - Which allows us to replace some the emscripten stuff with LLVM’s toolchain. The less emscripten we have to deal with, the better! 56 | - As part of these upgrades we will likely end up dropping support for the super old LLVM 6, which in turn allows us to stop building the unnecessary Go & OCaml bindings to LLVM, which in turn helps rustc build times slightly. 57 | - People are also working on enabling use of the new pass manager, which might give us some tangible code quality improvements over the status quo. 58 | 59 | [Link to full discussion](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-10-10.20.2354818/near/177817116) 60 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2019-10-17.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.10.17 3 | type: docs 4 | --- 5 | 6 | # 2017-10-17 7 | 8 | ## Announcements 9 | 10 | - Design meeting on [debuginfo strategy](https://github.com/rust-lang/compiler-team/issues/186) tomorrow (2019-10-18) on Zulip. 11 | 12 | - The traits working group had a [design meeting](https://github.com/rust-lang/wg-traits/tree/master/minutes) yesterday on lazy normalization. 13 | 14 | - [@nikomatsakis] has been looking into lazy normalization specifically for constants and hopes to have some notes to share soon. 15 | 16 | - The LLVM ICE-breakers working group is nearly ready to go live. 17 | 18 | - [@spastorino] has nearly finished interning `Place` projections. [PR 1](https://github.com/rust-lang/rust/pull/65197), [PR2](https://github.com/rust-lang/rust/pull/65315) 19 | 20 | - [@centril] is continuing to work on [splitting `libsyntax` apart](https://github.com/rust-lang/rust/pull/65324) 21 | 22 | ## Volunteers wanted 23 | 24 | - Segfault compiling libc on armv7-unknown-linux-gnueabihf [#62896](https://github.com/rust-lang/rust/issues/62896) 25 | 26 | - Couldn't load codegen backend on windows-gnu [#61561](https://github.com/rust-lang/rust/issues/61561) 27 | 28 | ## Backport nominations 29 | 30 | - Add troubleshooting section to PGO chapter in rustc book [#65402](https://github.com/rust-lang/rust/pull/65402) 31 | - Approved for beta backport 32 | 33 | - Optimize try_expand_impl_trait_type [#65293](https://github.com/rust-lang/rust/pull/65293) 34 | - Approved for beta backport 35 | 36 | - Use precalculated dominators in explain_borrow [#65172](https://github.com/rust-lang/rust/pull/65172) 37 | - Approved for beta backport 38 | 39 | ## Working group sync 40 | 41 | ### [wg-mir-opt](https://rust-lang.github.io/compiler-team/working-groups/mir-opt/) 42 | 43 | - [@wesleywiser] Moved promoted MIR out of `mir::Body` [#63580](https://github.com/rust-lang/rust/pull/63580) 44 | - [@wesleywiser] Reimplemented the `ConstProp` optimization pass on top of the existing const eval code [#64419](https://github.com/rust-lang/rust/pull/64419) 45 | - [@spastorino] Converted `mir::Place` to no longer be a recursive data structure [#63420](https://github.com/rust-lang/rust/pull/63420) 46 | - There is ongoing work in both const prop and place refactorings. 47 | - We've figured out a plan for "weird" place projections like dereferences (virtual locals). 48 | 49 | [Link to full conversation](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-10-17.20.2354818/near/178389131) 50 | 51 | ### [wg-meta](https://rust-lang.github.io/compiler-team/working-groups/meta/) 52 | 53 | - The [Inside Rust](https://blog.rust-lang.org/inside-rust/index.html) blog has launched. 54 | 55 | - The [ICE-Breaker group](https://rustc-dev-guide.rust-lang.org/ice-breaker/about.html) has been formed! 56 | 57 | - The [LLVM ICE-Breaker group](https://rustc-dev-guide.rust-lang.org/ice-breaker/llvm.html) is also being formed. 58 | 59 | [Link to full conversation](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-10-17.20.2354818/near/178389266) 60 | 61 | [@nikomatsakis]: https://github.com/nikomatsakis 62 | [@spastorino]: https://github.com/spastorino 63 | [@centril]: https://github.com/centril 64 | [@wesleywiser]: https://github.com/wesleywiser 65 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2019-10-24.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.10.24 3 | type: docs 4 | --- 5 | 6 | # 2019-10-24 7 | 8 | ## Announcments 9 | 10 | - [@simulacrum](https://github.com/Mark-Simulacrum) landed the rustc-dev split PR which decreases the size of the rustc-dev rustup component [#65474](https://github.com/rust-lang/rust/pull/65474) 11 | 12 | ## Backport nominations 13 | 14 | - Avoid ICE when adjusting bad self ty [#65755](https://github.com/rust-lang/rust/pull/65755) 15 | - Accepted for beta and stable backport 16 | 17 | - Avoid ICE when checking Destination of break inside a closure [#65518](https://github.com/rust-lang/rust/pull/65518) 18 | - Accepted for beta and stable backport 19 | 20 | - save-analysis: Nest tables when processing impl block definitions [#65511](https://github.com/rust-lang/rust/pull/65511) 21 | - Accepted for beta backport 22 | 23 | - save-analysis: Don't ICE when resolving qualified type paths in struct members [#65353](https://github.com/rust-lang/rust/pull/65353) 24 | - Accepted for beta backport 25 | 26 | ## Working group sync 27 | 28 | ### [wg-nll](https://rust-lang.github.io/compiler-team/working-groups/nll/) 29 | 30 | - Rust 1.40 (current nightly) will be the first stable release without the HIR borrow checker. 31 | This means Non Lexical Lifetimes will be available on Rust 2015. 32 | 33 | - At this point, wg-nll has completed its purpose and will be disbanded. 34 | - wg-polonius is still going strong though! 35 | 36 | [Link to full discussion](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-10-24.20.2354818/near/178960111) 37 | 38 | ### [wg-parallel-rustc](https://rust-lang.github.io/compiler-team/working-groups/parallel-rustc/) 39 | 40 | - Work is proceeding slowly but steadily. 41 | There are regular triage meetings every Monday on the compiler calendar. 42 | 43 | - The current goal is to refactor/audit compiler locks and other parts of the parallel query system and to investigate improving performance. 44 | 45 | - The current MVP is to do high-level parallelization in a few critical places such as typechecking & linting. 46 | 47 | - Currently, we're not seeing the speedups we want from parallelization but work is ongoing to remove locking and improve the jobserver integration. 48 | 49 | - [Video recording of last meeting](https://youtu.be/lVjW0Nw8N_g) 50 | 51 | [Link to full discussion](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-10-24.20.2354818/near/178960379) 52 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2019-10-31.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.10.31 3 | type: docs 4 | --- 5 | 6 | # 2019-10-31 7 | 8 | ## Announcments 9 | 10 | Rust 1.39 ships on Thursday! 11 | 12 | ## Backport nominations 13 | 14 | - "save-analysis: Account for async desugaring in async fn return types" [#65936](https://github.com/rust-lang/rust/pull/65936) 15 | - Accepted for beta backport 16 | 17 | - "resolve: Turn the "non-empty glob must import something" error into a lint" [#65539](https://github.com/rust-lang/rust/pull/65539) 18 | - Accepted for beta backport 19 | 20 | ## Working group sync 21 | 22 | ### [wg-pgo](https://rust-lang.github.io/compiler-team/working-groups/pgo/) 23 | 24 | - PGO is available in the stable compiler. Docs are in the rustc-dev-guide and the rustc-book 25 | 26 | - Unfortunately we don't observe significant performance gains from applying it (except for tiny synthetic test cases). 27 | 28 | - [@michaelwoerister] asked for people to try PGO on irlo but haven't gotten a lot of feedback. 29 | 30 | - There is one interesting theory that Rust doesn't profit as much as C++ because it defaults to having fewer compilation units and thus can make better inlining decisions in the non-PGO case. 31 | 32 | - The working group will probably wind down as [@michaelwoerister] don't have time to pursue further and there are no actual known issues in the implementation. 33 | 34 | [Link to full discussion](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-10-31.20.2354818/near/179539153) 35 | 36 | ### [wg-pipelining](https://rust-lang.github.io/compiler-team/working-groups/pipelining/) 37 | 38 | - Pipelining support has shipped in Rust 1.38. 39 | 40 | - The working group is winding down. 41 | 42 | [Link to full discussion](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-10-31.20.2354818/near/179539371) 43 | 44 | [@michaelwoerister]: https://github.com/michaelwoerister 45 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2019-11-07.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.11.07 3 | type: docs 4 | --- 5 | 6 | # 2019-11-07 7 | 8 | ## Announcments 9 | 10 | - [@pnkfelix] is moving to the US and will be working in the Eastern timezone. 11 | 12 | - [@wesleywiser] has been working on the constant propagation pass and wants to [turn it on][const_prop_on] for debug & release builds to improve compilation time. 13 | 14 | - Rust 1.39 has shipped with `async`/`await` support and other goodies. 15 | 16 | ## Backport nominations 17 | 18 | - Do not ICE with a precision flag in formatting str and no format arguments [#66093](https://github.com/rust-lang/rust/pull/66093) 19 | - Approved for beta & stable backport. 20 | 21 | ## Working group sync 22 | 23 | ### [wg-polonius] 24 | 25 | We ran out of time this week to have a check-in from this working group. 26 | 27 | ### [wg-rfc-2229] 28 | 29 | This working group is currently on a pause. 30 | 31 | [@pnkfelix]: https://github.com/pnkfelix 32 | [@wesleywiser]: https://github.com/wesleywiser 33 | [const_prop_on]: https://github.com/rust-lang/rust/pull/66074 34 | [wg-polonius]: https://rust-lang.github.io/compiler-team/working-groups/polonius/ 35 | [wg-rfc-2229]: https://rust-lang.github.io/compiler-team/working-groups/rfc-2229/ 36 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2019-11-21.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.11.21 3 | type: docs 4 | --- 5 | 6 | # 2019-11-21 7 | 8 | ## Announcements 9 | 10 | - perf.rust-lang.org is switching to a new benchmarking server so all of the old data is being removed to avoid skewed comparisons. 11 | 12 | - The constant propagation MIR optimization pass is [on by default][const_prop_on] which provides some improvements to debug and release compile times. 13 | 14 | - [@pnkfelix] wrote a blog post about [minimizing rustc bugs][minimizing_rustc_bugs]. 15 | 16 | ## Backport nominations 17 | 18 | - "Do not ICE on trait aliases with missing obligations” [#66392] 19 | - Accepted for stable backport 20 | 21 | - "Fix ICE when trying to suggest Type<> instead of Type()" [#66390] 22 | - Accepted for stable backport 23 | 24 | - “Do not ICE on recovery from unmet associated type bound obligation” [#66388] 25 | - Accepted for stable backport 26 | 27 | - “find_deprecation: deprecation attr may be ill-formed meta.” [#66381] 28 | - Accepted for stable backport 29 | 30 | - “parser: don’t use unreachable!() in fn unexpected.” [#66361] 31 | - Accepted for stable backport 32 | 33 | ## Working group sync 34 | 35 | ### [wg-traits] 36 | 37 | - [@Alexander Regueiro] is very close to landing support for trait object upcasts. 38 | 39 | - Chalk is being refactored with the goal of revamping how the rustc integration works so they share a lot more code. 40 | 41 | - [@Jack Huey] has been fixing the handling of coinduction logic and generally refactoring the chalk engine. 42 | 43 | - Work has been proceeding to fix a soundess hole related to `dyn Trait` ([#57893]) 44 | 45 | [@Alexander Regueiro]: https://github.com/alexreg 46 | [@Jack Huey]: https://github.com/jackh726 47 | [@pnkfelix]: https://github.com/pnkfelix 48 | [#57893]: https://github.com/rust-lang/rust/issues/57893 49 | [#66361]: https://github.com/rust-lang/rust/pull/66361 50 | [#66381]: https://github.com/rust-lang/rust/pull/66381 51 | [#66388]: https://github.com/rust-lang/rust/pull/66388 52 | [#66390]: https://github.com/rust-lang/rust/pull/66390 53 | [#66392]: https://github.com/rust-lang/rust/pull/66392 54 | [const_prop_on]: https://github.com/rust-lang/rust/pull/66074 55 | [minimizing_rustc_bugs]: http://blog.pnkfx.org/blog/2019/11/18/rust-bug-minimization-patterns 56 | [wg-traits]: https://rust-lang.github.io/compiler-team/working-groups/traits 57 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2019-11-28.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.11.28 3 | type: docs 4 | --- 5 | 6 | # 2019-11-28 7 | 8 | ## Announcements 9 | 10 | - perf.rust-lang.org has been fully migrated to the new server for benchmarking. 11 | 12 | - GitHub Actions is now running both Windows and Linux workloads! 13 | 14 | ## Backport nominations 15 | 16 | - "Handle non_exhaustive in borrow checking" [#66722] 17 | - Accepted for beta backport 18 | 19 | - "Fix some issues with attributes on unnamed fields" [#66669] 20 | - Accepted for beta backport 21 | 22 | ## Working group sync 23 | 24 | ### [wg-diagnostics] 25 | 26 | - Work is proceeding slowly on the [out-of-tree diagnostic rendering][diag_rendering]. 27 | 28 | [#66669]: https://github.com/rust-lang/rust/pull/66669 29 | [#66722]: https://github.com/rust-lang/rust/pull/66722 30 | [diag_rendering]: https://github.com/rust-lang/annotate-snippets-rs/ 31 | [wg-diagnostics]: https://rust-lang.github.io/compiler-team/working-groups/diagnostics/ 32 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2019-12-05.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.12.05 3 | type: docs 4 | --- 5 | 6 | # 2019-12-05 7 | 8 | ## Announcements 9 | 10 | - [@centril] is working on a major refactoring of the expression, statement, and item parsers in librustc_parse 11 | 12 | - [@eddyb] landed [#56231] which unblocks optimizing MIR while preserving debuginfo for variables. 13 | 14 | ## Backport nominations 15 | 16 | - "E0023: handle expected != tuple pattern type" [#67044] 17 | - Approved for beta backport 18 | 19 | - "Fix some issues with attributes on unnamed fields" [#66669] 20 | - Approved for beta & stable backport 21 | 22 | - "Do not ICE in if without else in async fn" [#66391] 23 | - Approved for stable backport 24 | 25 | ## Working group sync 26 | 27 | ### [wg-rustc-dev-guide] 28 | 29 | Accomplished: 30 | 31 | - We have a [chapter about Salsa][salsa_chapter], it was summarized from [this lecture][lecture_1]. 32 | 33 | - We have a [PR for the ty chapter][ty_chapter], it summarizes [this lecture][lecture_2]. 34 | 35 | - We had a [planning meeting][meeting], where we come up with a [document with ideas and next steps][doc] for the rustc-dev-guide. We've basically defined kind of a roadmap and a way to work towards those goals. 36 | 37 | Next-steps: 38 | 39 | - Start writing an Overview chapter 40 | 41 | - Organize a lecture about codegen mir -> llvm IR ([@nagisa], maybe?) 42 | 43 | - Organize a lecture about LLVM ([@alexcrichton], maybe?) 44 | 45 | - Organize a lecture about monomorphization/type memory layout ([@oli-obk], maybe?) 46 | 47 | [#66391]: https://github.com/rust-lang/rust/pull/66391 48 | [#66669]: https://github.com/rust-lang/rust/pull/66669 49 | [#67044]: https://github.com/rust-lang/rust/pull/67044 50 | [@alexcrichton]: https://github.com/alexcrichton 51 | [@centril]: https://github.com/centril 52 | [@eddyb]: https://github.com/eddyb 53 | [@nagisa]: https://github.com/nagisa 54 | [@oli-obk]: https://github.com/oli-obk 55 | [doc]: https://hackmd.io/iamkyR_QTdSIdGjYQX_XjQ 56 | [lecture_1]: https://www.youtube.com/watch?v=_muY4HjSqVw 57 | [lecture_2]: https://www.youtube.com/watch?v=c01TsOsr3-c 58 | [meeting]: https://rust-lang.zulipchat.com/#narrow/stream/196385-t-compiler.2Fwg-rustc-dev-guide/topic/planning.20meeting 59 | [salsa_chapter]: https://github.com/rust-lang/rustc-dev-guide/pull/529 60 | [ty_chapter]: https://github.com/rust-lang/rustc-dev-guide/pull/530 61 | [wg-rustc-dev-guide]: https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide 62 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2019-12-12.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.12.12 3 | type: docs 4 | --- 5 | 6 | # 2019-12-12 7 | 8 | ## Announcements 9 | 10 | - [@pnkfelix] posted an RFC about future-incompat lints [RFC 2834] 11 | 12 | - [@eddyb] landed some additional caching for trait selection which gives some nice speedups [#66821] 13 | 14 | - Const eval now has support for `if`/`match` and a PR for `loop`/`while` is open. 15 | 16 | - [@eddyb] is resurrecting their SROA MIR optimization [#48300] 17 | 18 | ## Backport nominations 19 | 20 | - resolve: Always resolve visibilities on impl items [#67236] 21 | - Approved for beta backport 22 | 23 | - resolve: Resolve visibilities on fields with non-builtin attributes [#67106] 24 | - Approved for beta backport 25 | 26 | ## Working group sync 27 | 28 | ### [wg-meta] 29 | 30 | - Work has generally slowed down since the launch of the ICE breakers group. 31 | 32 | - Some planning for a new "reducer" group has begun. 33 | 34 | ### [wg-mir-opt] 35 | 36 | - MIR does not know about static items anymore. 37 | Instead we just have a constant whose value is `&YOUR_STATIC`, `&raw mut YOUR_MUT_STATIC` or `&raw YOUR_EXTERN_STATIC`. 38 | This simplifies a lot of logic in the MIR and will (together with the next bullet point) allow `PlaceBase` to just be a `Local` (so a u32 index for a local to be accessed). [#66587] 39 | 40 | - [@spastorino] is about to finish a PR that removes promoteds from the list of things that are `Place`s in MIR 41 | 42 | - `mir::Body` does not contain interior mutability components anymore. 43 | It used to have a cache of some information on the MIR CFG that could get cleared and reinitialized as required. 44 | This is abstracted away in the `BodyCache` type. 45 | 46 | - Promoteds inside constants and statics are now actually separated from their constant's `mir::Body` instead of having a scheme around removing `StorageDead` statements [#66642] 47 | 48 | - Cross crate inlining now preserves debug info [#66789] 49 | 50 | - There is a new MIR optimization eliminating basic blocks that are unreachable because they are match arms of uninhabited variants [#65694] 51 | 52 | - There is a new MIR optimization to work around the problem that LLVM can't figure out trivial match arms like `Ok(x) => Ok(x)` [#66282] 53 | 54 | - The const prop optimization now runs on all builds (even debug builds) because this gives quite some nice build time improvements [#66074] 55 | 56 | - We had a mir-opt room at RustFest, which was a total success and people loved it. 57 | 58 | [@eddyb]: https://github.com/eddyb 59 | [@pnkfelix]: https://github.com/pnkfelix 60 | [@spastorino]: https://github.com/spastorino 61 | [#48300]: https://github.com/rust-lang/rust/pull/48300 62 | [#65694]: https://github.com/rust-lang/rust/pull/65694 63 | [#66074]: https://github.com/rust-lang/rust/pull/66074 64 | [#66282]: https://github.com/rust-lang/rust/pull/66282 65 | [#66587]: https://github.com/rust-lang/rust/pull/66587 66 | [#66642]: https://github.com/rust-lang/rust/pull/66642 67 | [#66789]: https://github.com/rust-lang/rust/pull/66789 68 | [#66821]: https://github.com/rust-lang/rust/pull/66821 69 | [#67106]: https://github.com/rust-lang/rust/pull/67106 70 | [#67236]: https://github.com/rust-lang/rust/pull/67236 71 | [RFC 2834]: https://github.com/rust-lang/rfcs/pull/2834 72 | [wg-meta]: https://rust-lang.github.io/compiler-team/working-groups/meta/ 73 | [wg-mir-opt]: https://rust-lang.github.io/compiler-team/working-groups/mir-opt/ 74 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2019-12-19.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.12.19 3 | type: docs 4 | --- 5 | 6 | # 2019-12-19 7 | 8 | ## Announcements 9 | 10 | - [@pnkfelix] has moved back to the USA 11 | 12 | - There will be a new [Rust release] by end-of-day 13 | 14 | - [@michaelwoerister] has a PR up that adds support for recording query-keys during a `-Z self-profile` session [#67397] 15 | 16 | - [@matthewjasper] and [@wesleywiser] have been asked to join the compiler team as full members and both have accepted 17 | 18 | - [@centril] is working on a stabilization report for sub-slice patterns 19 | 20 | ## Backport nominations 21 | 22 | - Don't suppress move errors for union fields [#67314] 23 | - Deferred until next week 24 | 25 | - Do not ICE on unnamed future [#67289] 26 | - Accepted for beta backport 27 | 28 | ## Working group sync 29 | 30 | ### [wg-parallel-rustc] 31 | 32 | - Posted an [Internals thread] to gather feedback from users trying out the parallel compiler build 33 | 34 | - [@joshtriplett] has done some profiling on a 72 core machine which may have revealed a deadlock and some scalability issues, which they'll be looking into 35 | 36 | - The current overall plan is to evaluate the performance and other reports on the internals thread, and then likely move forward on shipping the parallel compiler early in the new year with the default thread count still capped at 4 37 | 38 | [@centril]: https://github.com/centril 39 | [@joshtriplett]: https://github.com/joshtriplett 40 | [@matthewjasper]: https://github.com/matthewjasper 41 | [@michaelwoerister]: https://github.com/michaelwoerister 42 | [@pnkfelix]: https://github.com/pnkfelix 43 | [@wesleywiser]: https://github.com/wesleywiser 44 | [#67289]: https://github.com/rust-lang/rust/pull/67289 45 | [#67314]: https://github.com/rust-lang/rust/pull/67314 46 | [#67397]: https://github.com/rust-lang/rust/pull/67397 47 | [Internals thread]: https://internals.rust-lang.org/t/help-test-parallel-rustc/11503 48 | [Rust release]: https://blog.rust-lang.org/2019/12/19/Rust-1.40.0.html 49 | [wg-parallel-rustc]: https://rust-lang.github.io/compiler-team/working-groups/parallel-rustc/ 50 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2020-01-02.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2020.01.02 3 | type: docs 4 | --- 5 | 6 | # 2020-01-02 7 | 8 | ## Announcements 9 | 10 | - Happy new year! 11 | 12 | - [@centril] has a PR to extract `rustc_hir` from `rustc` [#67803] 13 | 14 | - [@centril] and [@matthewjasper] have written a stabilization report for `slice_patterns` [#67712] 15 | 16 | ## Backport nominations 17 | 18 | - Do not ICE on lifetime error involving closures [#67687] 19 | - Approved for beta backport 20 | 21 | - Treat extern statics just like statics in the “const pointer to static” representation [#67630] 22 | - Deferred until next week 23 | 24 | - Use the correct type for static qualifs [#67621] 25 | - Approved for beta backport 26 | 27 | - Don’t suppress move errors for union fields [#67314] 28 | - Approved for beta backport 29 | 30 | - Do not ICE on unnamed future [#67289] 31 | - Approved for beta backport 32 | 33 | - Do not ICE on lifetime error involving closures [#67687] 34 | - Stable backport declined 35 | 36 | ## Working group sync 37 | 38 | ### [wg-rustc-dev-guide] 39 | 40 | - The new chapter "Intro to `ty`" is nearly ready to merge! 41 | 42 | [#67687]: https://github.com/rust-lang/rust/pull/67687 43 | [#67289]: https://github.com/rust-lang/rust/pull/67289 44 | [#67314]: https://github.com/rust-lang/rust/pull/67314 45 | [#67621]: https://github.com/rust-lang/rust/pull/67621 46 | [#67630]: https://github.com/rust-lang/rust/pull/67630 47 | [#67712]: https://github.com/rust-lang/rust/pull/67712 48 | [#67803]: https://github.com/rust-lang/rust/pull/67803 49 | [@centril]: https://github.com/centril 50 | [@matthewjasper]: https://github.com/matthewjasper 51 | [wg-rustc-dev-guide]: https://rust-lang.github.io/compiler-team/working-groups/rustc-dev-guide/ 52 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2020-01-09.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2020.01.09 3 | type: docs 4 | --- 5 | 6 | # 2020-01-09 7 | 8 | ## Announcements 9 | 10 | - Lots of activity happening on const generics & lazy normalization 11 | - For example, [#67890] by [@benlewis] 12 | 13 | ## Beta nominations 14 | 15 | - Do not ICE on lifetime error involving closures [#67687] 16 | - Approved for stable & beta backport 17 | 18 | - Treat extern statics just like statics in the "const pointer to static" representation [#67630] 19 | - Approved for beta backport 20 | 21 | - Use the correct type for static qualifs [#67621] 22 | - Approved for beta backport 23 | 24 | - Don't suppress move errors for union fields [#67314] 25 | - Approved for beta backport 26 | 27 | ## Working group sync 28 | 29 | ### [wg-meta] 30 | 31 | - Work is staring on forming a new "bisection ICE-breaker" group and a process for large compiler changes 32 | 33 | ### [wg-mir-opt] 34 | 35 | - There's been [some discussion] on MIR 2.0 36 | 37 | - [#67000] will finally make mir::Place not be able to point to statics or promoteds anymore but just locals 38 | 39 | - [#67662] and [#67333] get us closer to bootstrapping rustc with mir inlining 40 | 41 | - Const prop can now propagate into the rhs of assignments to user defined variables [#67130] 42 | 43 | [#67000]: https://github.com/rust-lang/rust/pulls/67000 44 | [#67130]: https://github.com/rust-lang/rust/pulls/67130 45 | [#67314]: https://github.com/rust-lang/rust/pulls/67314 46 | [#67333]: https://github.com/rust-lang/rust/pulls/67333 47 | [#67621]: https://github.com/rust-lang/rust/pulls/67621 48 | [#67630]: https://github.com/rust-lang/rust/pulls/67630 49 | [#67662]: https://github.com/rust-lang/rust/pulls/67662 50 | [#67687]: https://github.com/rust-lang/rust/pulls/67687 51 | [#67890]: https://github.com/rust-lang/rust/pulls/67890 52 | [@benlewis]: https://github.com/skinny121 53 | [some discussion]: https://hackmd.io/aQ8y79EfS72VCUoEmzLQpg 54 | [wg-meta]: https://rust-lang.github.io/compiler-team/working-groups/meta/ 55 | [wg-mir-opt]: https://rust-lang.github.io/compiler-team/working-groups/mir-opt/ 56 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2020-01-23.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2020.01.23 3 | type: docs 4 | --- 5 | 6 | # 2020-01-23 7 | 8 | ## Announcements 9 | 10 | - No compiler team design meeting tomorrow, it has been rescheduled for Feb 7. 11 | We'll be discussing ["parser library-ification"][parser]. 12 | 13 | - The next Rust release is scheduled for Jan 30 (one week away). 14 | The tools "no breakage week" started yesterday in preperation for the release. 15 | 16 | ## Backport nominations 17 | 18 | - Do not ICE on malformed suggestion spans [#68256] 19 | - Approved for beta backport. 20 | 21 | - Revert parts of #66405 [#67471] 22 | - Approved for beta backport. 23 | 24 | [#67471]: https://github.com/rust-lang/rust/pull/67471 25 | [#68256]: https://github.com/rust-lang/rust/pull/68256 26 | [parser]: https://github.com/rust-lang/compiler-team/issues/237 27 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2020-02-06.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2020.02.06 3 | type: docs 4 | --- 5 | 6 | # 2020-02-06 7 | 8 | ## Announcements 9 | 10 | - There is a design meeting this Friday (2020-02-07) on [parser-librarification]. 11 | 12 | - [@davidtwco] has made progress on the polymorphization effort and has posted a [status update][polymorph_update]. 13 | 14 | - [@mw] has posted a major change proposal to make [incremental compilation respect the `-Ccodegen-units` setting][mw_change]. 15 | 16 | - Cargo report future-incompat [rfc#2834] is on track to get an FCP merge request from the cargo team in the near future. 17 | 18 | ## Backport nominations 19 | 20 | - Correct ICE caused by macros generating invalid spans [#68611] 21 | - Deferred until next week. 22 | 23 | - Do not ICE on multipart suggestions touching multiple files" [#68530] 24 | - Approved for beta backport. 25 | 26 | - Resolve long compile times when evaluating always valid constants [#67667] 27 | - Approved for stable backport. 28 | 29 | ## Working group sync 30 | 31 | ### [wg-rls-2.0] 32 | 33 | - The Chalk dependency has been updated which dramatically reduced crashes. 34 | 35 | - `cargo check` handling has been moved ino the server so all editors not just VS Code benefit. 36 | 37 | - [@matklad] and [@nikomatsakis] have been working on an RFC to merge RLS and Rust Analyzer officially. 38 | 39 | - Work is proceeding on "production readiness". 40 | - Binary releases are available on the project's GitHub page. 41 | - Planning to publish to VS Code extension marketplace "soon". 42 | 43 | ### [wg-self-profile] 44 | 45 | - The ["Minimum Viable Product"][sp_mvp] has been completed! 46 | - Self-profling is enabled for all perf.rust-lang.org runs and we automatically publish the data. ([Example][sp_example]) 47 | 48 | - [@mw] implemented query-key recording so queries can now be attributed to individual query invocations. 49 | 50 | - The [`crox`] utility, which generates Chromium profiler compatible trace data, can now generate profiles for entire Cargo invocations via the `--dir` flag. 51 | - This allows inspecting various rustc processes and their individual threads on a common timeline with full query data. 52 | 53 | - Quite a few people have tried `-Zself-profile` and have said they found it very useful! 54 | 55 | [#67667]: https://github.com/rust-lang/rust/pull/67667 56 | [#68530]: https://github.com/rust-lang/rust/pull/68530 57 | [#68611]: https://github.com/rust-lang/rust/pull/68611 58 | [@davidtwco]: https://github.com/davidtwco 59 | [@matklad]: https://github.com/matklad 60 | [@mw]: https://github.com/michaelwoerister 61 | [@nikomatsakis]: https://github.com/nikomatsakis 62 | [`crox`]: https://github.com/rust-lang/measureme/tree/master/crox 63 | [mw_change]: https://github.com/rust-lang/compiler-team/issues/245 64 | [parser-librarification]: https://github.com/rust-lang/compiler-team/issues/237 65 | [polymorph_update]: https://rust-lang.zulipchat.com/#narrow/stream/216091-t-compiler.2Fwg-polymorphization/topic/progress.20updates/near/187461928 66 | [rfc#2834]: https://github.com/rust-lang/rfcs/issues/2834 67 | [sp_example]: https://perf.rust-lang.org/detailed-query.html?commit=3761dcd3467441f78939ccb3b341b03b6a7558d7&base_commit=ac2f3fa41ac5ae8425b959f955bb7433b7c57aea&benchmark=await-call-tree-debug&run_name=clean 68 | [sp_mvp]: https://github.com/rust-lang/rust/issues/58967 69 | [wg-rls-2.0]: https://rust-lang.github.io/compiler-team/working-groups/rls-2.0/ 70 | [wg-self-profile]: https://rust-lang.github.io/compiler-team/working-groups/self-profile/ 71 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2020-02-13.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2020.02.13 3 | type: docs 4 | --- 5 | 6 | # 2020-02-13 7 | 8 | ## Backport nominations 9 | 10 | - Correct ICE caused by macros generating invalid spans [#68611] 11 | - Approved for stable & beta backport 12 | 13 | - Fix extra subslice lowering [#69128] 14 | - Approved for beta backport 15 | 16 | ## Working group sync 17 | 18 | ### [wg-polymorphization] 19 | 20 | [@davidtwco] writes: 21 | 22 | > Since this is the first update to the compiler team meeting, this working group is my work for my master's thesis - it aims to implement an analysis to detect when functions could remain polymorphic during code generation. Hopefully this will reduce the amount of LLVM IR generated and improve compilation times. 23 | 24 | > So far, I've got a basic analysis working and I've got it integrated into the compiler such that a codegen-unit test that I've written pass with the analysis turned on and working. For the last couple months, I've been working on getting the compiler to bootstrap with the analysis turned on, and fighting ICEs to do so. 25 | 26 | > I've not been able to spend much time on it recently due to other university/work drains on my time, but progress should pick up soon. 27 | 28 | ### [wg-traits] 29 | 30 | - Planning is beginning to do a new set of "sprints". 31 | 32 | - The current goal is to implement some of the ideas learned from Chalk into rustc and make it able to support GATs etc while still working on Chalk with the goal of eventual rustc integration. 33 | - We want to start getting value out of the Chalk ideas now rather than waiting until it can be fully integrated with rustc. 34 | 35 | [#68611]: https://github.com/rust-lang/rust/pull/68611 36 | [#69128]: https://github.com/rust-lang/rust/pull/69128 37 | [@davidtwco]: https://github.com/davidtwco 38 | [wg-polymorphization]: https://rust-lang.github.io/compiler-team/working-groups/polymorphization/ 39 | [wg-traits]: https://rust-lang.github.io/compiler-team/working-groups/traits/ 40 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/2020-02-20.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2020.02.20 3 | type: docs 4 | --- 5 | 6 | # 2020-02-20 7 | 8 | ## Announcements 9 | 10 | 11 | - On Feb 28th we will discuss our triage procedures and how we can make them more efficient. 12 | See [rust-lang/compiler-team#247] for more details. 13 | 14 | - On Mar 6th, we will discuss plans to extract rustc's representation of types and trait solving into a standalone library. 15 | See [rust-lang/compiler-team#234] for more details. 16 | 17 | - Please review the new [rollup guidance] if you haven't yet. 18 | 19 | - Triagebot now has [notification functionality] 20 | 21 | ## Backport nominations 22 | 23 | - Revert "Remove checked_add in Layout::repeat" [#69241] 24 | - Approved for stable and beta backport 25 | 26 | - Do not ICE when encountering yield inside async block [#69175] 27 | - Approved for stable & beta backport 28 | 29 | - Account for bounds and asociated items when denying _ [#69148] 30 | - Backport declined 31 | 32 | - Make conflicting_repr_hints a deny-by-default c-future-compat lint [#68586] 33 | - Approved for beta backport 34 | 35 | - Fix MIR typeck soundness holes [#69145] 36 | - Approved for stable backport 37 | 38 | ## Working group sync 39 | 40 | We ran out of time due to a large number of issues to triage and the related discussion. 41 | 42 | [#68586]: https://github.com/rust-lang/rust/pull/68586 43 | [#69145]: https://github.com/rust-lang/rust/pull/69145 44 | [#69148]: https://github.com/rust-lang/rust/pull/69148 45 | [#69175]: https://github.com/rust-lang/rust/pull/69175 46 | [#69241]: https://github.com/rust-lang/rust/pull/69241 47 | [rust-lang/compiler-team#234]: https://github.com/rust-lang/compiler-team/issues/234 48 | [rust-lang/compiler-team#247]: https://github.com/rust-lang/compiler-team/issues/247 49 | [rollup guidance]: https://internals.rust-lang.org/t/rollup-never-always-guidance/11827 50 | [notification functionality]: https://internals.rust-lang.org/t/triagebot-notifications/11857 51 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/T-compiler Meeting Agenda 2020-03-12.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: weekly, rustc 3 | --- 4 | 5 | # T-compiler Meeting Agenda 2020-03-12 6 | 7 | [Tracking Issue](https://github.com/rust-lang/rust/issues/54818) 8 | 9 | ## Announcements 10 | 11 | * [Planning meeting](https://forge.rust-lang.org/compiler/steering-meeting.html) tomorrow (March 13th) 12 | * Rust 1.42 is released today 13 | 14 | ## Beta-nominations 15 | 16 | [T-compiler beta noms](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=label%3Abeta-nominated+label%3AT-compiler) 17 | 18 | * Use TypeRelating for instantiating query responses [#69591][] :back: / :hand: 19 | 20 | [#69591]: https://github.com/rust-lang/rust/pull/69591 21 | 22 | ## Stable-nominations 23 | 24 | [T-compiler stable noms](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=label%3Astable-nominated+label%3AT-compiler+) 25 | 26 | No stable nominations this time. 27 | 28 | ## PR's S-waiting-on-team 29 | 30 | [T-compiler S-waiting-on-team](https://github.com/rust-lang/rust/pulls?utf8=%E2%9C%93&q=is%3Aopen+label%3AS-waiting-on-team+label%3AT-compiler+) 31 | 32 | No PR's S-waiting-on-team this time. 33 | 34 | ## Issues of Note 35 | 36 | - [52 P-high issues](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+label%3AT-compiler+label%3AP-high+) and [32 of those are unassigned](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+label%3AT-compiler+label%3AP-high+no%3Aassignee) 37 | - [2 P-medium regression-from-stable-to-beta](https://github.com/rust-lang/rust/labels/regression-from-stable-to-beta) 38 | - [3 P-high and 1 P-medium regression-from-stable-to-nightly](https://github.com/rust-lang/rust/labels/regression-from-stable-to-nightly) 39 | 40 | ## Nominated Issues 41 | 42 | [T-compiler I-nominated](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-nominated+label%3AT-compiler) 43 | 44 | - [ ] "Compiler incorrectly assumes int will never be one" [#69841][] 45 | - [ ] "ICE in collect_and_partition_mono_items" [#69785][] 46 | - [ ] "ICE: src/librustc/middle/region.rs:1037: Encountered greater count 28" [#69307][] 47 | - [ ] "Replace our fragile safety scheme around erroneous constants" [#67191][] 48 | - [ ] "ICE field: higher-rank trait bound (HRTB) `for<'a> ...` hits OutputTypeParameterMismatch in librustc/traits/codegen" [#62529][] 49 | 50 | [#69841]: https://github.com/rust-lang/rust/issues/69841 51 | [#69785]: https://github.com/rust-lang/rust/issues/69785 52 | [#69307]: https://github.com/rust-lang/rust/issues/69307 53 | [#67191]: https://github.com/rust-lang/rust/issues/67191 54 | [#62529]: https://github.com/rust-lang/rust/issues/62529 55 | 56 | ## WG checkins 57 | 58 | WG-nll: nothing to share and the wg should be removed from the rotation. 59 | WG-parallel-rustc: no updates. -------------------------------------------------------------------------------- /content/minutes/triage-meeting/T-compiler Meeting Agenda 2020-03-19.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: weekly, rustc 3 | --- 4 | 5 | # T-compiler Meeting Agenda 2020-03-19 6 | 7 | [Tracking Issue](https://github.com/rust-lang/rust/issues/54818) 8 | 9 | ## Announcements 10 | 11 | - We are in the process of forming a WG-prioritization working group. 12 | - Focus: mainly on deciding if bugs are critical (potential release blockers) or not. 13 | - There's a [new WG-prioritization stream](https://rust-lang.zulipchat.com/#narrow/stream/227806-t-compiler.2Fwg-prioritization) where pre-triage is going to happen from now on. 14 | - [Poll] Should we remove I-nominated on toolstate breakage issues?. 15 | 16 | ## Beta-nominations 17 | 18 | [T-compiler beta noms](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=label%3Abeta-nominated+label%3AT-compiler) 19 | 20 | - can_begin_literal_or_bool: `true` on `"-"? lit` NTs. [#70058](https://github.com/rust-lang/rust/pull/70058) :back: / :hand: 21 | 22 | 23 | Already beta accepted ... 24 | - Use TypeRelating for instantiating query responses [#69591](https://github.com/rust-lang/rust/pull/69591) 25 | 26 | 27 | ## Stable-nominations 28 | 29 | [T-compiler stable noms](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=label%3Astable-nominated+label%3AT-compiler+) 30 | 31 | No stable nominations this time. 32 | 33 | ## PR's S-waiting-on-team 34 | 35 | [T-compiler S-waiting-on-team](https://github.com/rust-lang/rust/pulls?utf8=%E2%9C%93&q=is%3Aopen+label%3AS-waiting-on-team+label%3AT-compiler+) 36 | 37 | No PR's S-waiting-on-team this time. 38 | 39 | ## Issues of Note 40 | 41 | - [54 P-high issues](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+label%3AT-compiler+label%3AP-high+) and [32 of those are unassigned](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+label%3AT-compiler+label%3AP-high+no%3Aassignee) 42 | - [1 P-high and 4 P-medium regression-from-stable-to-beta](https://github.com/rust-lang/rust/labels/regression-from-stable-to-beta) 43 | - [5 P-high and 1 P-medium regression-from-stable-to-nightly](https://github.com/rust-lang/rust/labels/regression-from-stable-to-nightly) 44 | 45 | ## Nominated Issues 46 | 47 | [T-compiler I-nominated](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-nominated+label%3AT-compiler) 48 | 49 | - [ ] "rustc segfault" [#70117](https://github.com/rust-lang/rust/issues/70117) 50 | - [ ] "ICE using associated type from higher ranked trait" [#70120](https://github.com/rust-lang/rust/issues/70120) 51 | 52 | ## WG checkins 53 | 54 | WG-PGO: working group is retired. 55 | WG-pipelining: working group is disbanded. 56 | 57 | We should remove both from rotation, also nll and probably check the status of all the working groups. -------------------------------------------------------------------------------- /content/minutes/triage-meeting/T-compiler Meeting Agenda 2020-03-26.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: weekly, rustc 3 | --- 4 | 5 | # T-compiler Meeting Agenda 2020-03-26 6 | 7 | [Tracking Issue](https://github.com/rust-lang/rust/issues/54818) 8 | 9 | ## Announcements 10 | 11 | - As per last week discussion, we are going to stop tagging as I-nominated on toolstate breakage [#70407](https://github.com/rust-lang/rust/pull/70407) 12 | - Please check if the conclusion stated on Santiago's comment there is what we want. 13 | 14 | ## Beta-nominations 15 | 16 | [T-compiler beta noms](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=label%3Abeta-nominated+label%3AT-compiler) 17 | 18 | - "Fix smaller issues with invalid placeholder type errors" [#70369] :back: / :hand: / :shrug: 19 | - "Account for bad placeholder types in where clauses" [#70294] :back: / :hand: / :shrug: 20 | - "Fix ICE caused by truncating a negative ZST enum discriminant" [#70126] :back: / :hand: / :shrug: 21 | - "Ensure HAS_FREE_LOCAL_NAMES is set for ReFree" [#69956] :back: / :hand: / :shrug: 22 | 23 | [#70369]: https://github.com/rust-lang/rust/pull/70369 24 | [#70294]: https://github.com/rust-lang/rust/pull/70294 25 | [#70126]: https://github.com/rust-lang/rust/pull/70126 26 | [#69956]: https://github.com/rust-lang/rust/pull/69956 27 | 28 | ## Stable-nominations 29 | 30 | [T-compiler stable noms](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=label%3Astable-nominated+label%3AT-compiler+) 31 | 32 | No stable nominations this time. :tada: 33 | 34 | ## PR's S-waiting-on-team 35 | 36 | [T-compiler S-waiting-on-team](https://github.com/rust-lang/rust/pulls?utf8=%E2%9C%93&q=is%3Aopen+label%3AS-waiting-on-team+label%3AT-compiler+) 37 | 38 | No PR’s S-waiting-on-team this time. :tada: 39 | 40 | ## P-high Issues of Note 41 | 42 | - [50 P-high issues](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+label%3AT-compiler+label%3AP-high+) (4 less than last week) 43 | - [30 of those are unassigned](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+label%3AT-compiler+label%3AP-high+no%3Aassignee) (2 less than last week) 44 | - [3 P-medium regression-from-stable-to-beta](https://github.com/rust-lang/rust/labels/regression-from-stable-to-beta) 45 | - [1 P-high and 3 P-medium regression-from-stable-to-nightly](https://github.com/rust-lang/rust/labels/regression-from-stable-to-nightly) 46 | 47 | ## Nominated Issues 48 | 49 | [T-compiler I-nominated](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-nominated+label%3AT-compiler) 50 | 51 | - [x] "Compiler incorrectly assumes int will never be one" [#69841](https://github.com/rust-lang/rust/issues/69841) 52 | - [ ] "Add cryptographic hash of source files in debug info" [#69718](https://github.com/rust-lang/rust/pull/69718) 53 | - [ ] "Box doesn't respect self alignment" [#68304](https://github.com/rust-lang/rust/pull/68304) 54 | 55 | ## WG checkins 56 | 57 | WG-learning and WG-LLVM. -------------------------------------------------------------------------------- /content/minutes/triage-meeting/T-compiler Meeting Agenda 2020-04-16.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: weekly, rustc 3 | --- 4 | 5 | # T-compiler Meeting Agenda 2020-04-16 6 | 7 | [Tracking Issue](https://github.com/rust-lang/rust/issues/54818) 8 | 9 | ## Announcements 10 | 11 | - Next Thursday, April 23rd we are releasing 1.43 12 | - [MCP RFC is pending](https://github.com/rust-lang/rfcs/pull/2904) 13 | - Automate compiler development [#272](https://github.com/rust-lang/compiler-team/issues/272) 14 | - We have `@rustbot seconded` support 15 | 16 | ## Beta-nominations 17 | 18 | [T-compiler beta noms](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=label%3Abeta-nominated+label%3AT-compiler) 19 | 20 | - "Do not reuse post LTO products when exports change" [#71131](https://github.com/rust-lang/rust/pull/71131) :back: / :hand: 21 | 22 | ## Stable-nominations 23 | 24 | [T-compiler stable noms](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=label%3Astable-nominated+label%3AT-compiler+) 25 | 26 | No stable nominations this time. 27 | 28 | ## PR's S-waiting-on-team 29 | 30 | [T-compiler S-waiting-on-team](https://github.com/rust-lang/rust/pulls?utf8=%E2%9C%93&q=is%3Aopen+label%3AS-waiting-on-team+label%3AT-compiler+) 31 | 32 | - "Add Option to Force Unwind Tables" [#69984](https://github.com/rust-lang/rust/pull/69984) 33 | - In FCP, Disposition to merge. 34 | - "A big options clean-up" [#70729](https://github.com/rust-lang/rust/pull/70729) 35 | - In FCP, disposition to merge. 36 | - "Remove -Z no-landing-pads flag" [#70175](https://github.com/rust-lang/rust/pull/70175) 37 | - FCP finished, disposition to merge. 38 | - "Move LLVM bitcode destination" [#70458](https://github.com/rust-lang/rust/pull/70458) 39 | - FCP finished, disposition to merge and needs a reviewer. 40 | 41 | ## Issues of Note 42 | 43 | - [1 P-critical issues](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+label%3AT-compiler+label%3AP-critical+) (1 more than last week) 44 | - [45 P-high issues](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+label%3AT-compiler+label%3AP-high+) (4 less than last week) 45 | - [26 of those are unassigned](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+label%3AT-compiler+label%3AP-high+no%3Aassignee) (1 less than last week) 46 | - [2 P-high and 2 P-medium regression-from-stable-to-beta](https://github.com/rust-lang/rust/labels/regression-from-stable-to-beta) 47 | - The 2 P-medium are unassigned 48 | - [2 P-high, 2 P-medium and 1 T-rustdoc regression-from-stable-to-nightly](https://github.com/rust-lang/rust/labels/regression-from-stable-to-nightly) 49 | - All of them are unassigned 50 | 51 | 52 | ### P-critical 53 | 54 | - "`static FOO:Foo=FOO;` doesn't cause cycle error for zero-sized-type with no public constructor." [#71078](https://github.com/rust-lang/rust/pull/71078) 55 | - This issue is assigned to @oli 56 | 57 | 58 | ## Nominated Issues 59 | 60 | [T-compiler I-nominated](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-nominated+label%3AT-compiler) 61 | 62 | - [ ] "[WIP] Rename mir::Rvalue to Op." [#70928](https://github.com/rust-lang/rust/issues/70928) 63 | - In FCP, disposition to close. 64 | - [ ] "Should enum discriminants have generics in scope?" [#70453](https://github.com/rust-lang/rust/issues/70453) 65 | - In FCP, disposition to merge. 66 | - [ ] "Add support for parsing with rust-analyzer instead of librustc_parse #70761" [#70761](https://github.com/rust-lang/rust/pull/70761) 67 | - Nominated for discussion, maybe needs an MCP. 68 | 69 | 70 | ## WG checkins 71 | 72 | WG-meta: let's check with @nikomatsakis to see if he wants to mention something but we had a checkin recently. 73 | WG-Mir-Opt: Mir Opt skips this time. -------------------------------------------------------------------------------- /content/minutes/triage-meeting/T-compiler Meeting Agenda 2023-08-09.md: -------------------------------------------------------------------------------- 1 | --- 2 | tags: weekly, rustc 3 | type: docs 4 | --- 5 | 6 | # T-compiler Meeting Agenda 2023-08-09 7 | 8 | ## Add notes asynchronously here 9 | 10 | Please feel free to add notes for the next meeting 11 | 12 | ## Autogenerated agenda will be added below 13 | -------------------------------------------------------------------------------- /content/minutes/triage-meeting/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Triage meeting 3 | type: docs 4 | --- 5 | 6 | # Triage Meetings 7 | 8 | {{< list-files "content/minutes/triage-meeting" >}} 9 | -------------------------------------------------------------------------------- /content/procedures/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Procedures 3 | type: docs 4 | --- 5 | # Procedures of the Compiler Team # 6 | 7 | Compiler team procedures are documented on the [Rust forge](https://forge.rust-lang.org/compiler/index.html). -------------------------------------------------------------------------------- /content/procedures/call-for-participation.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Call for participation 3 | type: docs 4 | --- 5 | # Call for participation 6 | 7 | One way to get help with a project is to issue a **call for 8 | participation** on the dedicated internals thread. 9 | 10 | Such calls should follow this (very simple) template, so as to help 11 | clarify what's going on: 12 | 13 | ``` 14 | - **Title:** Investigate #123141 15 | - **Experience level expected:** (Newcomer | Contributor | Experienced) 16 | - **Urgency:** (ASAP | over next few months | whenever) 17 | - **Contact:** @your-name-here in [the #your-stream-here stream on Zulip][z] 18 | 19 | [z]: https://rust-lang.zulipchat.com/ 20 | 21 | Longer description goes here. 22 | ``` 23 | 24 | You should feel free to substitute other text for Experience Level 25 | Expected and Urgency, but the idea is to convey our expectations to 26 | people. In particular, the Urgency field is supposed to indicate how 27 | *quickly* people would need to work on this. -------------------------------------------------------------------------------- /content/procedures/steering-meeting.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Steering meeting 3 | type: docs 4 | --- 5 | # Steering meeting 6 | 7 | This content has moved to the [Rust forge](https://forge.rust-lang.org/compiler/steering-meeting.html). 8 | -------------------------------------------------------------------------------- /content/working-groups/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Working Groups 3 | type: docs 4 | --- 5 | # Working Groups 6 | This directory contains the notes for each of the active working groups. Each folder contains a few 7 | files, along with files specific to that working group: 8 | 9 | - `README.md` -- describes the basic details of the working group and how to get involved 10 | - `NOTES.md` -- updated regularly with the latest news 11 | - `FAQ.md` -- a place to document the answer to frequently asked questions 12 | 13 | An exhaustive list of working groups can be found [at the root of this repository](../). 14 | 15 | ## Guidelines 16 | These guidelines exist to serve team members who are about to start a new working group. 17 | 18 | ### Mentoring Issues 19 | [Mentored issues] are a great way for new contributors to get involved without needing to ask for 20 | a good first issue and wait for a response. When creating mentored issues, open a topic in the 21 | Zulip stream and link to it from the mentoring instructions for people to leave a message in if 22 | they are interested. 23 | 24 | [Mentored issues]: https://github.com/rust-lang/rust/issues?q=is%3Aopen+is%3Aissue+label%3AE-mentor+no%3Aassignee 25 | 26 | ### Compiler Team Check-in 27 | Each week, a rotating set of working groups will check-in with the compiler team at the end of the 28 | compiler team's weekly triage meeting. By default, the working group's leads will handle this 29 | however a designated liaison can be sent instead - as long as whomever is running the meeting is 30 | informed. 31 | Consider scheduling any meetings before the compiler team check-in and encourage each contributor 32 | to add status updates to a shared document. This can make it easier to write notes for this 33 | repository and to check-in. 34 | 35 | ### Meetings 36 | The working group itself is not required to hold meetings, however should the group feel it would 37 | be helpful then they are free to. Any meetings should be added to the compiler team calendar so 38 | that other interested parties can find out about the meeting. If meetings are not held, then it 39 | would still be desirable to keep the `NOTES.md` in the working group's directory 40 | up-to-date. 41 | 42 | ### Membership 43 | Typically working groups don't have formal members outside of the specified leads. Those interested 44 | in participating in a working group can instead subscribe to the working group in order to be added 45 | to relevant groups for notification purposes. 46 | 47 | #### Explanation 48 | Membership would be useful for recognizing regular participants of a working group and providing a 49 | team lead with a group of people distribute work amongst. However, as it is desirable to enable 50 | anyone to easily add themself as a member of a working group they are interested in participating 51 | in - so they can receive notifications and assigned tasks - this has the effect of limiting the 52 | extent to which working group membership can be used to recognize regular participants. Therefore, 53 | formal membership is typically not pursued. 54 | -------------------------------------------------------------------------------- /content/working-groups/async-await/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Async Foundations working group 3 | type: docs 4 | --- 5 | # Async Foundations Working Group 6 | ![working group status: active][status] 7 | 8 | This working group is focused around implementation/design of the "foundations" for Async I/O. 9 | This includes the `async-await` language feature but also the core `Future` trait and adapters. 10 | 11 | - **Team:** [wg-async-foundations on rust-lang/team](https://github.com/rust-lang/team/blob/master/teams/wg-async-foundations.toml). 12 | - **Zulip stream:** [#wg-async-foundations][zulip] on Zulip 13 | 14 | **See the [wg-async-foundations repo][repo] for more information and how to get involved.** 15 | 16 | [repo]: https://github.com/rust-lang/wg-async-foundations 17 | [zulip]: https://rust-lang.zulipchat.com/#narrow/stream/187312-wg-async-foundations 18 | [nikomatsakis]: https://github.com/nikomatsakis 19 | [tmandry]: https://github.com/tmandry 20 | 21 | [status]: https://img.shields.io/badge/status-active-brightgreen.svg?style=for-the-badge 22 | -------------------------------------------------------------------------------- /content/working-groups/debugging/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Debugging Working Group 3 | type: docs 4 | --- 5 | # Debugging Working Group 6 | ![working group status: active][status] 7 | 8 | This working group's focus is to provide users with a good experience when debugging Rust code. 9 | 10 | - **Team:** [wg-debugging on rust-lang/team](https://github.com/rust-lang/team/blob/master/teams/wg-debugging.toml) 11 | 12 | [status]: https://img.shields.io/badge/status-active-brightgreen.svg?style=for-the-badge 13 | 14 | ## What is the goal of this working group? 15 | This working group aims to accomplish the following: 16 | 17 | - Improve the debuginfo generated by rustc so that it is accurate and useful to debuggers 18 | - Support efforts to split debuginfo from binary artifacts 19 | - Better integrate with trace-based debuggers 20 | - Triage the backlog of `A-debuginfo` issues 21 | - Increase the size of the debuginfo test suite and ensure we have good test coverage 22 | 23 | ## How can I get involved? 24 | If you are interested in getting involved in this working group, you should stop by the Zulip stream and introduce yourself! 25 | 26 | - **Desired experience level:** Any 27 | - **Relevant repositories:** [`rust-lang/rust`][repo] 28 | - **Zulip stream:** [`#t-compiler/wg-debugging`][zulip] on Zulip 29 | 30 | [repo]: https://github.com/rust-lang/rust 31 | [zulip]: https://rust-lang.zulipchat.com 32 | 33 | ## What if I don't have much time? 34 | Consider re-testing issues in the `rust` repository and leaving a comment to confirm if it is still an issue or not. 35 | Resolved issues should also have regression tests added. 36 | 37 | ## Are there any resources so I can get up to speed? 38 | 39 | The rustc-dev-guide has a chapter on [debugging support in the Rust compiler](https://rustc-dev-guide.rust-lang.org/debugging-support-in-rustc.html). 40 | 41 | ## Do I need to attend any meetings? 42 | We don't have regularly scheduled meetings yet. 43 | -------------------------------------------------------------------------------- /content/working-groups/diagnostics/FAQ.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: FAQs 3 | type: docs 4 | --- 5 | # Frequently Asked Questions (FAQ) 6 | 7 | If you have a question, feel free to file an issue or ask in the working group's Zulip stream. 8 | 9 | There are no FAQs so far. Please ask us more questions. -------------------------------------------------------------------------------- /content/working-groups/diagnostics/NOTES.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Notes 3 | type: docs 4 | --- 5 | # Diagnostics Meeting Notes 6 | 7 | # 2019-05-24 8 | * [zulip link](https://rust-lang.zulipchat.com/#narrow/stream/147480-t-compiler.2Fwg-diagnostics/topic/meeting.202019-05-24) 9 | * We triaged all `P-medium` `A-diagnostics` issues 10 | * We figured out a first action for getting `annotate-snippets` into rustc: https://github.com/rust-lang/rust/issues/59346 11 | * We have a plan to reduce the boilerplate needed at the diagnostic emitter site: https://github.com/rust-lang/rust/issues/61132 -------------------------------------------------------------------------------- /content/working-groups/diagnostics/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Diagnostics Working Group 3 | type: docs 4 | --- 5 | # Diagnostics Working Group 6 | ![working group status: active][status] 7 | 8 | This working group aims to make rustc better at telling the user 9 | why the compiler isn’t smart enough to understand their code yet. 10 | 11 | - **Team:** [wg-diagnostics on rust-lang/team](https://github.com/rust-lang/team/blob/master/teams/wg-diagnostics.toml) 12 | - **Meeting Notes:** [All]({{< relref "/working-groups/diagnostics/NOTES" >}}) 13 | - **Meeting Driver Plan:** [On Hackmd](https://hackmd.io/T9yQwLQ0SIOguR1auo3SHQ) 14 | - **FAQ:** [All]({{< relref "/working-groups/diagnostics/FAQ" >}}) 15 | 16 | [oli-obk]: https://github.com/oli-obk 17 | [estebank]: https://github.com/estebank 18 | [status]: https://img.shields.io/badge/status-active-brightgreen.svg?style=for-the-badge 19 | 20 | ## What is the goal of this working group? 21 | This working group aims to accomplish the following: 22 | 23 | - Make diagnostics emitting independent of the happy code path 24 | - Separate the diagnostics rendering from the compiler so it can be reused by others. 25 | 26 | # How can I get involved? 27 | If you are interested in getting involved in this working group, you should introduce yourself 28 | in the Zulip stream. You can be added to the GitHub and Zulip 29 | group for the working group if you are interested in being pinged when there are available tasks. 30 | 31 | - **Desired experience level:** Any 32 | - **Relevant repositories:** [`rust-lang/rust`][repo] 33 | - https://github.com/rust-lang/rust/tree/master/src/librustc_errors 34 | - https://github.com/rust-lang/rust/blob/master/src/librustc_errors/json.rs 35 | - https://github.com/rust-lang/rust/tree/master/src/librustc_lint 36 | - https://crates.io/crates/annotate-snippets 37 | - https://crates.io/crates/codemap-diagnostic 38 | - **Zulip stream:** [`#t-compiler/diagnostics`][zulip] on Zulip 39 | 40 | [repo]: https://github.com/rust-lang/rust 41 | [zulip]: https://rust-lang.zulipchat.com/#narrow/stream/147480-t-compiler.2Fwg-diagnostics 42 | 43 | ## What if I don't have much time? 44 | If you don't have time to contribute code, consider setting up meetings and frequently pinging 45 | working group members on related issues to discuss or fix them. 46 | 47 | ## Are there any resources so I can get up to speed? 48 | Not yet. 49 | 50 | ## Do I need to attend any meetings? 51 | We don't have any meetings yet. -------------------------------------------------------------------------------- /content/working-groups/diagnostics/minutes/2019.07.09-meeting.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Rustc Dev Guide WG 2019-07-09 sync meeting 3 | type: docs 4 | --- 5 | # Rustc Dev Guide WG 2019-07-09 sync meeting 6 | 7 | 8 | - some discussion about organizing lectures on missing topics 9 | - it's hard because the preparation may put off potential lecturers 10 | - maybe instead go for more informal zulip-based "explain everything you know about X" 11 | - can then summarize zulip log 12 | 13 | - agreed to change terminology from "transcribe" -> "summarize" 14 | 15 | - mark-i-m volunteers to try to organize meeting with petrochenkov about macros 16 | - amanjeev volunteers to try to organize meeting with nagisa or alexchricton about codegen 17 | 18 | - some discussion of how to assign work, organize lectures, etc, but not super conclusive 19 | - spastorino suggested making the next meeting 1 hour, instead of 30 minutes. 20 | -------------------------------------------------------------------------------- /content/working-groups/llvm/FAQ.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: FAQs 3 | type: docs 4 | --- 5 | # Frequently Asked Questions (FAQ) 6 | 7 | Looks like no questions have been asked yet! If you have a question, feel free to file an issue or 8 | ask in the working group's Zulip stream. 9 | -------------------------------------------------------------------------------- /content/working-groups/llvm/NOTES.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Notes 3 | type: docs 4 | --- 5 | # LLVM Meeting Notes 6 | 7 | No meetings have been held yet. -------------------------------------------------------------------------------- /content/working-groups/llvm/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: LLVM working group 3 | type: docs 4 | --- 5 | # LLVM Working Group 6 | 7 | ![working group status: incubating][status] 8 | 9 | [status]: https://img.shields.io/badge/status-incubating-yellow.svg?style=for-the-badge 10 | 11 | This working group encompasses work in LLVM upstream fixing the issues and implementing features 12 | that matter to Rust: 13 | 14 | - **Team:** [wg-llvm on rust-lang/team](https://github.com/rust-lang/team/blob/master/teams/wg-llvm.toml) 15 | - **Meeting Notes:** [All]({{< relref "/working-groups/llvm/NOTES" >}}) 16 | - **FAQ:**[All]({{< relref "/working-groups/llvm/FAQ" >}}) 17 | 18 | [nagisa]: https://github.com/nagisa 19 | 20 | # How can I get involved? 21 | If you are interested in getting involved in this working group, you should introduce yourself or 22 | send a message in the Zulip stream. You can be added to the GitHub and Zulip group for the working 23 | group if you are interested in being pinged when there are available tasks. 24 | 25 | - **Desired experience level:** Any 26 | - **Relevant repositories:** [`rust-lang/rust`][repo], [`rust-lang/llvm-project`][llvm-downstream] 27 | - **Zulip stream:** [`#t-compiler/wg-llvm`][zulip] on Zulip 28 | 29 | [repo]: https://github.com/rust-lang/rust 30 | [llvm-downstream]: https://github.com/rust-lang/llvm-project 31 | [zulip]: https://rust-lang.zulipchat.com/#narrow/stream/187780-t-compiler.2Fwg-llvm 32 | 33 | ## Are there any resources so I can get up to speed? 34 | 35 | ### LLVM Specific Documentation: 36 | 37 | - You can find documentation on LLVM at the [LLVM documentation index]. Some cherry picked resources 38 | are listed below: 39 | - [Getting Started with the LLVM System] describes how to configure and build LLVM from source. 40 | - The [Intro to LLVM] chapter of "The Architecture of Open Source Applications" provides a 41 | great introduction to LLVM. 42 | - The [LLVM Language Reference] describes the LLVM intermediate representation in great detail, 43 | but remains quite readable. 44 | - Before submitting your first patch upstream to LLVM, consider reading [Contributing to LLVM] and 45 | [LLVM GitHub User Guide]. 46 | 47 | ### Rust Specific Documentation: 48 | 49 | - You might want to read the [codegen section] of the [rustc-dev-guide] for more information on codegen 50 | and debugging LLVM in `rustc`. 51 | 52 | ## Do I need to attend any meetings? 53 | 54 | Currently the working group is incubating, pending more time available from the people spearheading 55 | the effort, and no meetings are being held in the meantime. 56 | 57 | ## How to find things to do? 58 | 59 | [A-LLVM][a-llvm] label in the `rust-lang/rust` repository categorises the issues which have 60 | something to do with how LLVM works. For the time being this is the best place to start. 61 | 62 | [a-llvm]: https://github.com/rust-lang/rust/issues?q=is%3Aopen+is%3Aissue+label%3AA-LLVM 63 | [LLVM documentation index]: https://llvm.org/docs/ 64 | [LLVM Language Reference]: https://llvm.org/docs/LangRef.html 65 | [Contributing to LLVM]: https://www.llvm.org/docs/Contributing.html 66 | [LLVM GitHub User Guide]: https://llvm.org/docs/GitHub.html 67 | [Getting Started with the LLVM System]: https://www.llvm.org/docs/GettingStarted.html 68 | [Intro to LLVM]: http://www.aosabook.org/en/llvm.html 69 | [codegen section]: https://rustc-dev-guide.rust-lang.org/backend/codegen.html 70 | [rustc-dev-guide]: https://rustc-dev-guide.rust-lang.org/ 71 | -------------------------------------------------------------------------------- /content/working-groups/meta/FAQ.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: FAQs 3 | type: docs 4 | --- 5 | # Frequently Asked Questions (FAQ) 6 | 7 | Looks like no questions have been asked yet! If you have a question, feel free to file an issue or ask in the working group's Zulip stream. 8 | -------------------------------------------------------------------------------- /content/working-groups/meta/NOTES.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Notes 3 | type: docs 4 | --- 5 | # Meta Meeting Notes 6 | This document contains meeting notes from the Meta working group. 7 | 8 | ## 2019-02-28: [Meeting][meeting20190228] 9 | **Written by:** [@spastorino][spastorino] 10 | 11 | - What problems do we want to solve from a compiler team member perspective and from a contributor perspective? 12 | - Help to grow the team by ensuring that we engage people who've started to get active in rustc? 13 | - Provide a source of people who can help implement things without needing as much mentoring? 14 | - What does it mean to be a journeyperson? 15 | - You know something about the compiler? 16 | - People willing to commit some time to help run things 17 | - What is the role of a journeyperson in onboarding new compiler contributors? 18 | - r+ rights? 19 | - Start to do reviews? 20 | - What responsibilities should a journeyperson have? 21 | - Are journeypeople members of the team or is a journeyperson role considered a stepping stone toward being a member of the team? 22 | - What are the qualifications and expectations for a member of the compiler team? 23 | - What's the difference between journeypeople and team members? 24 | - Full members know >1 area? 25 | - Or full members know enough to independently lead a WG in some area? 26 | - What is the process for becoming a journeyperson? 27 | - Should compiler team members nominate new journeypeople and then confirm it with the rest of the team? 28 | - Is there some formal mechanism for that? 29 | - Should compiler team members have a responsibility to mentor their proposed journeypersons through their new responsibilities? 30 | - What is the process for transitioning from a journeyperson role to full membership? 31 | - Same process as already exists for becoming a full member? 32 | - Is there an ettiquette for journeypeople? 33 | - What about team members? 34 | 35 | ## 2019-02-21: [Meeting][meeting20190221] 36 | **Written by:** [@nikomatsakis][nikomatsakis] 37 | 38 | **Purpose of meeting**: 39 | 40 | - Clarify the “scope” of the meta working group. 41 | - What problems does the meta working group aim to solve? 42 | - What problems do we want to avoid creating? (e.g. bureaucracy, administrative overhead) 43 | - Discuss working group “bootstrap process” 44 | - What should each working group define? 45 | - What structure should a WG “check-in” have? 46 | - Can we produce a “WG Template” that I can then pass around to folks to fill out? 47 | - What are the most actionable ideas and can we rank those? 48 | - Which ideas would be better suited for more “discussion meetings”? 49 | - Steering meetings? Or should we use those for something else 50 | 51 | **Working Group Components**: 52 | 53 | - Zulip Stream(s) 54 | - Zulip User Group (`WG-compiler-foo`) 55 | - GitHub Team? Someway for people to get notifications 56 | - GitHub Labels 57 | - Contact points: 58 | - Leads 59 | - Compiler team liason — who will present 60 | - Maybe others that you can ping on Zulip to ask questions 61 | - Across team: 62 | - Some kind of table summarizing WGs 63 | - Membership (default): 64 | - We want to avoid any sort of formal membership to a working group. Instead a wg has leads and interested folk can subscribe to it to receive notifications on GitHub issues and in Zulip. 65 | 66 | [meeting20190228]: https://rust-lang.zulipchat.com/#narrow/stream/185694-t-compiler.2Fwg-meta/topic/meeting.202019.2E02.2E28 67 | [meeting20190221]: https://rust-lang.zulipchat.com/#narrow/stream/185694-t-compiler.2Fwg-meta/topic/meeting.202019.2E02.2E21 68 | [spastorino]: https://github.com/spastorino 69 | [nikomatsakis]: https://github.com/nikomatsakis -------------------------------------------------------------------------------- /content/working-groups/meta/rfc-drafts/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: rfc Drafts 3 | type: docs 4 | --- 5 | This direction contains drafts of "Meta WG"-related RFCs. These are 6 | RFCs that pertain to compiler team process and which are being jointly 7 | written as part of the Meta working group. 8 | 9 | - [Compiler Team Contributors]({{< relref "/working-groups/meta/rfc-drafts/compiler-team-contributors" >}}) -------------------------------------------------------------------------------- /content/working-groups/mir-opt/FAQ.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: FAQs 3 | type: docs 4 | --- 5 | # Frequently Asked Questions (FAQ) 6 | 7 | If you have a question, feel free to file an issue or ask in the working group's Zulip stream. 8 | 9 | ## Is this working group optimizing the MIR of functions or the MIR-datastructures? 10 | 11 | Yes 12 | 13 | ## Why is the above answer so short? 14 | 15 | We're doing both. MIR-datastructures are mostly restructured 16 | where necessary to make more optimizations possible. 17 | -------------------------------------------------------------------------------- /content/working-groups/mir-opt/NOTES.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Notes 3 | type: docs 4 | --- 5 | # Mir Optimizations (mir-opt) Meeting Notes 6 | This document will contain meeting notes from the mir-opt working group. -------------------------------------------------------------------------------- /content/working-groups/mir-opt/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MIR Optimizations (mir-opt) Working Group 3 | type: docs 4 | --- 5 | # MIR Optimizations (mir-opt) Working Group 6 | ![working group status: active][status] 7 | 8 | This working group aims to implement MIR optimizations and do the groundwork necessary to enable 9 | writing MIR optimizations. 10 | 11 | - **Team:** [wg-mir-opt on rust-lang/team](https://github.com/rust-lang/team/blob/master/teams/wg-mir-opt.toml) 12 | - **Meeting Notes:** [All]({{< relref "/working-groups/mir-opt/NOTES" >}}) 13 | - **FAQ:** [FAQ]({{< relref "/working-groups/mir-opt/FAQ" >}}) 14 | 15 | [status]: https://img.shields.io/badge/status-active-brightgreen.svg?style=for-the-badge 16 | [oli-obk]: https://github.com/oli-obk 17 | 18 | ## What is the goal of this working group? 19 | This working group aims to accomplish the following: 20 | 21 | - Implement new MIR optimizations 22 | - Refactor the MIR to be more optimizeable 23 | 24 | # How can I get involved? 25 | If you are interested in getting involved in this working group, you should introduce yourself 26 | in the Zulip stream. You can be added to the GitHub and Zulip 27 | group for the working group if you are interested in being pinged when there are available tasks. 28 | 29 | - **Desired experience level:** Any 30 | - **Relevant repositories:** [`rust-lang/rust`][repo] (specifically `src/librustc_mir/transform`) 31 | - **Zulip stream:** [`#t-compiler/mir-opt`][zulip] on Zulip 32 | 33 | [repo]: https://github.com/rust-lang/rust 34 | [zulip]: https://rust-lang.zulipchat.com/#narrow/stream/189540-t-compiler.2Fwg-mir-opt 35 | 36 | ## What if I don't have much time? 37 | If you don't have time to contribute code, consider tagging issues in the `rust` repository so 38 | the team can find them. 39 | 40 | ## Are there any resources so I can get up to speed? 41 | There are some resources available for those interested in contributing to get some background 42 | and context: 43 | 44 | - MIR is an intermediate representation used within the compiler. We are looking to transform 45 | instances of MIR into "better" instances. You can read about the MIR in 46 | the [relevant rustc-dev-guide chapter](https://rustc-dev-guide.rust-lang.org/mir/index.html). 47 | 48 | ## Do I need to attend any meetings? 49 | We don't have any meetings yet. -------------------------------------------------------------------------------- /content/working-groups/nll/FAQ.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: FAQs 3 | type: docs 4 | --- 5 | # Frequently Asked Questions (FAQ) 6 | If you have a question, feel free to file an issue or ask in the working group's Zulip stream. 7 | 8 | ## What is the relationship to Polonius? 9 | Polonius is an experimental, "next generation" NLL implementation, initially described in 10 | [this blog post][polonius]. Enabling the use of Polonius is **not** in scope for the NLL working 11 | group -- see [the polonius working group][../polonius]. 12 | -------------------------------------------------------------------------------- /content/working-groups/nll/NOTES.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Notes 3 | type: docs 4 | --- 5 | # Non-Lexical Lifetimes (NLL) Meeting Notes 6 | This document contains meeting notes from the NLL working group. 7 | 8 | ## 2019-02-19: 9 | - Agenda: 10 | - Meta: What should this meeting be for? 11 | - Sync-up regarding Place 2.0 ([#52708][]) 12 | - Status Updates (TBD) 13 | 14 | ## 2019-02-13: 15 | - Status updates 16 | - matthewjasper 17 | - Opened [#58347][] to fix issues around closures 18 | - Got [#57609][] (match rework) ready for review 19 | - Opened [#58353][] 20 | - spastorino 21 | - Worked on [#52708][] 22 | - pnkfelix 23 | - Looked a bit at [#52708][] after assisting spastorino with it 24 | - lqd: 25 | - continued on [#57374][] 26 | - davidtwco: 27 | - merged [#58161][] 28 | 29 | [#52708]: https://github.com/rust-lang/rust/issues/52708 30 | [#57374]: https://github.com/rust-lang/rust/issues/57374 31 | [#57609]: https://github.com/rust-lang/rust/issues/57609 32 | [#58161]: https://github.com/rust-lang/rust/issues/58161 33 | [#58347]: https://github.com/rust-lang/rust/issues/58347 34 | [#58353]: https://github.com/rust-lang/rust/issues/58353 35 | -------------------------------------------------------------------------------- /content/working-groups/parallel-rustc/FAQ.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: FAQs 3 | type: docs 4 | --- 5 | # Frequently Asked Questions (FAQ) 6 | 7 | Looks like no questions have been asked yet! If you have a question, feel free to file an issue or ask in the working group's Zulip stream. 8 | -------------------------------------------------------------------------------- /content/working-groups/parallel-rustc/NOTES.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Notes 3 | type: docs 4 | --- 5 | #### *

This working group hasn't had any meetings yet.

* 6 | 7 | # parallel-rustc Meeting Notes 8 | This document contains meeting notes from the parallel-rustc working group. 9 | -------------------------------------------------------------------------------- /content/working-groups/parallel-rustc/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Parallel-rustc Working Group 3 | type: docs 4 | --- 5 | # parallel-rustc Working Group 6 | ![working group status: paused][status] 7 | 8 | - **Team:** [wg-parallel-rustc on rust-lang/team](https://github.com/rust-lang/team/blob/master/teams/wg-parallel-rustc.toml) 9 | - **Meeting Notes:** [All]({{< relref "/working-groups/parallel-rustc/NOTES" >}}) 10 | - **Minutes:** 11 | - [2019.05.10]({{< relref "/working-groups/parallel-rustc/minutes/2019.05.10.md" >}}) 12 | - **FAQ:** [FAQ]({{< relref "/working-groups/parallel-rustc/FAQ" >}}) 13 | 14 | [Zoxc]: https://github.com/Zoxc 15 | [aturon]: https://github.com/aturon 16 | [status]: https://img.shields.io/badge/status-paused-yellow.svg?style=for-the-badge 17 | 18 | ## What is the goal of this working group? 19 | This working group aims to accomplish the following: 20 | 21 | - Finish, optimize, and test the implementation of parallel compilation to an extent 22 | that allows making it the default. 23 | - Produce solid documentation of how parallel evaluation works, how it is 24 | implementated, and what things it might affect in the [rustc-dev-guide][rustc-dev-guide]. 25 | 26 | [rustc-dev-guide]: https://rustc-dev-guide.rust-lang.org/ 27 | 28 | # How can I get involved? 29 | If you are interested in getting involved in this working group, you are welcome to 30 | introduce yourself in the Zulip stream. You can be added to the GitHub and Zulip 31 | group for the working group if you are interested in being pinged when there are available tasks. 32 | 33 | - **Desired experience level:** Any 34 | - **Relevant repositories:** [`rust-lang/rust`][repo] 35 | - **Zulip stream:** [`#t-compiler/wg-parallel-rustc`][zulip] on Zulip 36 | 37 | [repo]: https://github.com/rust-lang/rust 38 | [zulip]: https://rust-lang.zulipchat.com/#narrow/stream/187679-t-compiler.2Fwg-parallel-rustc 39 | 40 | ## What if I don't have much time? 41 | If you don't have time to contribute code but you do compile your own compiler, 42 | the consider setting `parallel-compiler = true` in your `config.toml`. If you 43 | find a bug, we'd love it if you could file an issue. 44 | 45 | ## Are there any resources so I can get up to speed? 46 | There are some resources available for those interested in contributing to get some background 47 | and context: 48 | 49 | - Zoxc's [introductory post][zoxc-internals-post] in the _internals_ forum. 50 | - More to come... 51 | 52 | [zoxc-internals-post]: https://internals.rust-lang.org/t/parallelizing-rustc-using-rayon/6606 53 | -------------------------------------------------------------------------------- /content/working-groups/parallel-rustc/minutes/2019.05.10.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.05.10 3 | type: docs 4 | --- 5 | # 2019.05.10 6 | 7 | [Zulip topic.](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/planning.20meeting.202019.2E05.2E10/near/165339223) 8 | 9 | ## Plan for parallel-rustc 10 | 11 | 1. Gather the performance data of the feature internally 12 | 2. Make a "go/no-go" decision based on the data 13 | 14 | ## Overall conclusions 15 | 16 | The [overall conclusions](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17/near/165907247) was that before shipping we should improve the documentation. To that end, we are trying to [gather major design questions in a hackmd document](https://hackmd.io/XDC24IlWT4OIxYdmIxH4Xg). Here is a link to the start of a [discussion about documentation](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17/near/165905977). 17 | 18 | ## Gathered data 19 | 20 | The most important data on our plan are recorded on [hackmd](https://hackmd.io/KmHulVmISKu7L2HmNgbPgg?both). 21 | 22 | Experiments on other work-load are also welcome. The data are reported in the following topics on `Zulip#t-compiler/wg-parallel-rustc`: 23 | 24 | * [Gathering parallel data](https://rust-lang.zulipchat.com/#narrow/stream/187679-t-compiler.2Fwg-parallel-rustc/topic/Gathering.20parallel.20data) 25 | * [effect on firefox](https://rust-lang.zulipchat.com/#narrow/stream/187679-t-compiler.2Fwg-parallel-rustc/topic/effect.20on.20firefox) 26 | 27 | We also discussed performance tradeoffs. Towards the end of the meeting, we noted some research on [what sorts of compilation time hits are noticebale to users](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/design.20meeting.202019.2E05.2E17/near/165918020), which is relevant to the "single core overhead" we are willing to tolerate from using locks. 28 | -------------------------------------------------------------------------------- /content/working-groups/parallel-rustc/minutes/2019.09.30-planning.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.09.30-planning 3 | type: docs 4 | --- 5 | # 2019.09.30 Planning Meeting 6 | 7 | [Zulip topic.](https://rust-lang.zulipchat.com/#narrow/stream/187679-t-compiler.2Fwg-parallel-rustc/topic/planning.20meeting) 8 | 9 | ## Roadmap 10 | 11 | * Sequential overhead 12 | * Rerun perf benchmark with `-j1` (but not limiting parallel codegen) and identify hotspots 13 | * Identify cases one by one and optimize 14 | * Overly fine-grained locking risks subtle ordering or dead-lock bugs 15 | * Solution: audit 16 | * Poor jobserver integration leading to overall poor scaling 17 | * Little public testing of correctness and performance 18 | * Call for permance testing, asking for data with `-Ztimings` 19 | * requires us to have easy builds available, perhaps? At least useful for correctness 20 | * Rayon fork 21 | * Do we feel the need to eliminate it? 22 | * Let's update it at least 23 | * Solution: Review the patches 24 | * Documentation of key components 25 | * What are the major sources of shared state and where is each documented? 26 | * How does jobserver integration work and can we improve on that? 27 | * Why do we have the Rayon fork? 28 | * How does thread-local state work -- how does it get communicated to the workers? 29 | * How to handle multiple threads competing for a single query 30 | * Unify parallel type-check and parallel code-gen into one framework 31 | * Idea: alexcrichton can explain 32 | 33 | ## Another view on the above, categorized by "next step" 34 | 35 | * measure performance 36 | * initial focus: seq overhead 37 | * produce binary builds 38 | * we as developers should be able to easily test out changes 39 | * document this for other developers too, not time to get everyone else involved! 40 | * audit and document fine-grained locking 41 | * produce a list of things to be audited 42 | * schedule a weekly meeting, recorded Zoom calls 43 | * meetings with the "explain, discuss, document" format 44 | * rayon fork features -- do we need them? 45 | * parallel code-gen: how does it work, can it be unified? 46 | * jobserver integration 47 | * major sources of shared state 48 | * [pre-existing questions doc](https://hackmd.io/XDC24IlWT4OIxYdmIxH4Xg) 49 | * user involvement: start getting people using it 50 | * create instructions on how to use alt builds for correctness checking 51 | * or to roll your own build for perf testing 52 | * how to gather data, where to submit 53 | 54 | ## Scenarios to profile and measure 55 | 56 | * Whole crate graph builds with full parallelism. Should see significant wins in build time as well as CPU usage. 57 | * Cargo 58 | * Rustc 59 | * sccache 60 | * `script` from Servo 61 | * ... this is also what the post on internals would ask for 62 | * Run the `perf` suite with full parallelism enabled. Gets an idea for single-crate what is the benefit, when we have full parallelism, across a suite of scenarios (incremental, warm cache, cold cache, etc) 63 | * What is the impact of "`-j1`" w.r.t. non-codegen threads 64 | * Run perf suite and look at `*-check` benchmarks 65 | -------------------------------------------------------------------------------- /content/working-groups/parselib/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Parselib Working Group 3 | type: docs 4 | --- 5 | # Parselib Working Group 6 | ![working group status: active][status] 7 | 8 | The goal of the working group is to librarify rustc parser and share it between 9 | rustc and rust-analyzer. 10 | 11 | - **Team:** [wg-parselib on rust-lang/team][team] 12 | 13 | [status]: https://img.shields.io/badge/status-active-brightgreen.svg?style=for-the-badge 14 | 15 | ## What is the goal of this working group? 16 | This working group aims to accomplish the following: 17 | 18 | - Core goal: rust-analyzer and rustc use the same code for parsing Rust -- a 19 | shared parser which is production ready (like rustc) and can build 20 | full-fidelity syntax trees for code with syntax errors (like rust-analyzer). 21 | 22 | - Stretch goal: produce a "nice enough" parser library which can be used even 23 | outside of rustc or rust-analyzer. 24 | 25 | - Non goal: produce a shared syntax tree representation. 26 | 27 | # How can I get involved? 28 | At the moment, there list of action items is pretty short -- we are still 29 | figuring out what to do, concretely. If you're interested in getting involved 30 | then feel free to pop into the Zulip stream. 31 | 32 | - **Desired experience level:** Familiarity with rustc and rust-analyzer parsers. 33 | - **Relevant repositories:** [`rust-lang/rust`][rust], [`rust-lang/wg-grammar`][wg-grammar], [`rust-analyzer/rust-analyzer`][rust-analyzer], [`rust-analyzer/ungrammar`][ungrammar]. 34 | - **Zulip stream:** [`#t-compiler/wg-parselib`][zulip] on Zulip 35 | 36 | [rust]: https://github.com/rust-lang/rust 37 | [wg-grammar]: https://github.com/rust-lang/wg-grammar 38 | [rust-analyzer]: https://github.com/rust-analyzer/rust-analyzer 39 | [ungrammar]: https://github.com/rust-analyzer/ungrammar 40 | [team]: https://github.com/rust-lang/team/blob/master/teams/wg-parselib.toml 41 | 42 | [zulip]: https://rust-lang.zulipchat.com/#narrow/stream/254930-t-compiler.2Fwg-parselib 43 | -------------------------------------------------------------------------------- /content/working-groups/pgo/FAQ.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: FAQs 3 | type: docs 4 | --- 5 | # Frequently Asked Questions (FAQ) 6 | 7 | Looks like no questions have been asked yet! If you have a question, feel free to file an issue or ask in the working group's Zulip stream. 8 | -------------------------------------------------------------------------------- /content/working-groups/pgo/NOTES.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Notes 3 | type: docs 4 | --- 5 | # Profile-Guided Optimization Meeting Notes 6 | This document contains meeting notes from the PGO working group. 7 | 8 | ## WG Status Update - 2019/03/28 9 | https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-03-28.20.2354818/near/161957622 10 | -------------------------------------------------------------------------------- /content/working-groups/pgo/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Profile-Guided Optimization (PGO) Working Group 3 | type: docs 4 | --- 5 | # Profile-Guided Optimization (PGO) Working Group 6 | ![working group status: retired][status] 7 | 8 | This working group aims to implement profile-guided optimization (PGO) in the 9 | Rust compiler. 10 | 11 | - **Team:** [wg-pgo on rust-lang/team](https://github.com/rust-lang/team/blob/master/teams/wg-pgo.toml) 12 | - **Meeting Notes:** [All]({{< relref "/working-groups/pgo/NOTES" >}}) 13 | - **FAQ:** [FAQ]({{< relref "/working-groups/pgo/FAQ" >}}) 14 | 15 | *THIS WORKING GROUP HAS REACHED ITS GOALS AND IS IN RETIRED STATE. 16 | [PGO IS AVAILABLE](https://doc.rust-lang.org/rustc/profile-guided-optimization.html) 17 | IN THE STABLE RUST COMPILER.* 18 | 19 | [status]: https://img.shields.io/badge/status-retired-cacaca.svg?style=for-the-badge 20 | 21 | 22 | ## What is the goal of this working group? 23 | This working group aims to accomplish the following: 24 | 25 | - Implement and stabilize profile-guided optimization in `rustc` (https://github.com/rust-lang/rust/issues/59913) 26 | 27 | # How can I get involved? 28 | If you are interested in getting involved in this working group, send a message in the Zulip 29 | stream. 30 | 31 | - **Desired experience level:** LLVM + PGO expert `;)` 32 | - **Relevant repositories:** [`rust-lang/rust`][repo] 33 | - **Zulip stream:** [`#t-compiler/wg-profile-guided-optimization`][zulip] on Zulip 34 | 35 | [repo]: https://github.com/rust-lang/rust 36 | [zulip]: https://rust-lang.zulipchat.com/#narrow/stream/187830-t-compiler.2Fwg-profile-guided-optimization 37 | 38 | ## Are there any resources so I can get up to speed? 39 | There are some resources available for those interested in contributing to get some background 40 | and context: 41 | 42 | - Tracking issue: https://github.com/rust-lang/rust/issues/59913 43 | - Clang's [documentation on PGO](https://clang.llvm.org/docs/UsersManual.html#profile-guided-optimization). 44 | Contains lots of useful information on PGO in LLVM. 45 | - @emilio's [initial PR](https://github.com/rust-lang/rust/pull/48346) for adding experimental 46 | support for PGO. 47 | - A presentation on [Profile-based Indirect Call Promotion in LLVM](https://llvm.org/devmtg/2015-10/slides/Baev-IndirectCallPromotion.pdf), an optimization enabled by PGO 48 | 49 | ## Do I need to attend any meetings? 50 | No. 51 | 52 | [michaelwoerister]: https://github.com/michaelwoerister 53 | -------------------------------------------------------------------------------- /content/working-groups/pipelining/FAQ.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: FAQs 3 | type: docs 4 | --- 5 | # Frequently Asked Questions (FAQ) 6 | 7 | Looks like no questions have been asked yet! If you have a question, feel free to file an issue or ask in the working group's Zulip stream. 8 | -------------------------------------------------------------------------------- /content/working-groups/pipelining/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Pipelining Working Group 3 | type: docs 4 | --- 5 | # Pipelining Working Group 6 | ![working group status: retired][status] 7 | 8 | - **Leads:** [@alexcrichton][alexcrichton], [@nnethercote][nnethercote] 9 | - **Meeting Notes:** [All]({{< relref "/working-groups/pipelining/NOTES" >}}) 10 | - **FAQ:** [FAQ]({{< relref "/working-groups/pipelining/FAQ" >}}) 11 | 12 | [nnethercote]: https://github.com/nnethercote 13 | [alexcrichton]: https://github.com/alexcrichton 14 | [status]: https://img.shields.io/badge/status-retired-cacaca.svg?style=for-the-badge 15 | 16 | ## What is the goal of this working group? 17 | This working group aims to accomplish the following: 18 | 19 | - Enable Cargo to invoke rustc in a pipelined fashion. Specifically enabling 20 | Cargo to start compiling dependants of a crate as soon as metadata becomes 21 | available, rather than waiting until the entire compilation is done before 22 | proceeding. 23 | 24 | # How can I get involved? 25 | 26 | If you are interested in getting involved in this working group, you are welcome 27 | to introduce yourself in the Zulip stream. This working group is relatively 28 | small in scope, though, so we may not have work for everyone to take on! 29 | 30 | - **Desired experience level:** Experienced 31 | - **Relevant repositories:** [`rust-lang/rust`][repo] 32 | - **Zulip stream:** [`#t-compiler/wg-pipelining`][zulip] on Zulip 33 | 34 | [repo]: https://github.com/rust-lang/rust 35 | [zulip]: https://rust-lang.zulipchat.com/#narrow/stream/195180-t-compiler.2Fwg-pipelining 36 | 37 | ## What if I don't have much time? 38 | 39 | We're not quite at the point where we can test out support in rustc, but when 40 | that's ready we can fill in some instructions here! 41 | 42 | ## Are there any resources so I can get up to speed? 43 | 44 | There are some resources available for those interested in contributing to get 45 | some background and context: 46 | 47 | - [Initial Cargo issue](https://github.com/rust-lang/cargo/issues/6660) 48 | - [Tracking issue on rustc side of things](https://github.com/rust-lang/rust/issues/58465) 49 | - [Old cargo tracking issue](https://github.com/rust-lang/cargo/issues/4831) 50 | -------------------------------------------------------------------------------- /content/working-groups/polonius/FAQ.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: FAQs 3 | type: docs 4 | --- 5 | # Frequently Asked Questions (FAQ) 6 | 7 | Looks like no questions have been asked yet! If you have a question, 8 | feel free to file an issue or ask in the working group's Zulip stream. -------------------------------------------------------------------------------- /content/working-groups/polonius/minutes/2019.03.07-meeting.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: WG-Polonius meeting minutes, 2019.03.07 3 | type: docs 4 | --- 5 | # WG-Polonius meeting minutes: 2019/03/07 6 | --- 7 | 8 | Relevant links: 9 | 10 | - The meeting happened in this [Zulip thread](https://rust-lang.zulipchat.com/#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/meeting.202019.2E03.2E07) 11 | - A [Paper document](https://paper.dropbox.com/doc/Polonius-Roadmap--AY6C806s~AZK~e7wagmys2_wAg-hk3a9ynduUN2gk1A0NNTF) for the WIP roadmap 12 | 13 | --- 14 | 15 | The first meeting of the WG Polonius was dedicated to finding concrete next steps, both as part of working on the roadmap, and as onboarding [@albins][Albin] into the group. Since [Albin] will do a masters related to Polonius, we also worked out other areas they could tackle as time progressed. 16 | 17 | Ultimately, a good starter issue was found in creating a new Polonius "hybrid" variant, bridging the location insensitive and complete analyses: a realistic way for rustc to use Polonius. 18 | 19 | We then described a possible follow-up task, focusing on Polonius completeness: incorporating rustc's move/overwrite analysis, in a way similar to how it was done in [Lark]. 20 | 21 | We also spent time talking about next steps in documentation, whether in talks ([Niko]) or written docs ([Rémy]). 22 | 23 | Possible talks: 24 | 25 | - a walkthrough of a more complex theoretical example. 26 | - a more practical walkthrough with a focus on the concrete parts of the Polonius computation: interfacing with rustc and transferring data, computing the analysis' datalog rules, how datafrog works, etc. 27 | 28 | Following those, we also mentioned a longer term task: the more complicated analysis handling higher-ranked regions described in [this blog post](http://smallcultfollowing.com/babysteps/blog/2019/01/21/hereditary-harrop-region-constraints/). 29 | 30 | The final points were more about cross-cutting concerns applicable to all WGs: how would Github permissions work, and setting up the polonius and datafrog crates and repositories to follow the soon-to-be finalized "crate conformance policy". 31 | 32 | ---- 33 | The major next steps we decided on were: 34 | 35 | - [Matthew] will write mentoring instructions for the [hybrid algorithm task](https://github.com/rust-lang/polonius/issues/100). 36 | - [Niko] and [Albin] will prepare the follow-up walkthrough of Polonius (the specific time, and contents). 37 | - [Niko] will review the [subset relation PR](https://github.com/rust-lang/polonius/pull/99). 38 | 39 | [Albin]: https://github.com/albins 40 | [Niko]: https://github.com/nikomatsakis 41 | [Matthew]: https://github.com/matthewjasper 42 | [Rémy]: https://github.com/lqd 43 | [Lark]: https://github.com/lark-exploration/lark/blob/master/components/lark-type-check/src/full_inference/analysis/initialization.rs 44 | -------------------------------------------------------------------------------- /content/working-groups/polonius/minutes/2019.04.23-meeting.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: WG-Polonius meeting minutes 2019.04.23 3 | type: docs 4 | --- 5 | # WG-Polonius meeting minutes: 2019/04/23 6 | --- 7 | 8 | Relevant links: 9 | 10 | - The meeting happened in this [Zulip thread](https://rust-lang.zulipchat.com/#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/meeting.202019.2E04.2E23) 11 | - A [Paper document](https://paper.dropbox.com/doc/Polonius-Roadmap--AY6C806s~AZK~e7wagmys2_wAg-hk3a9ynduUN2gk1A0NNTF) for the WIP roadmap 12 | 13 | --- 14 | 15 | In this meeting, we started with a short review of the previous week's work: 16 | 17 | - [Albin] continued work on implementing liveness in Polonius, and finalized [#105](https://github.com/rust-lang/polonius/pull/105), which is now ready to be merged into a new `polonius-engine` release. 18 | - [Niko] wrote up [notes](https://github.com/rust-lang/polonius/issues/104#issuecomment-485011791) describing the second part of the liveness effort: modifying rustc to emit `var_used` and `var_defined` facts for the previous PR. [Albin] has already started working on these rustc steps. 19 | - [Rémy] landed the tiny [#106](https://github.com/rust-lang/polonius/pull/106). 20 | - As part of the `Hybrid` variant, [Rémy] started prototyping a low-hanging performance task: using the `LocationInsensitive` potential errors results to filter some of the input relations of the `DatafrogOpt` pass. 21 | 22 | We then welcomed a new contributor, [@lokalmatador], and spent some time discussing a good first task: using `rustc-perf`'s benchmarks, and [Albin]'s microbenchmarks, continuing the work towards an extended performance test suite. The goal would be to find crates, and functions, which would be representative along different dimensions, and incorporate their facts files in the Polonius repo to be used for tests and benchmarks. [Niko] described the basic steps in the [Paper document](https://paper.dropbox.com/doc/Polonius-Roadmap--Abw5txE2EuUEhL3E1CMrnzuWAg-hk3a9ynduUN2gk1A0NNTF#:uid=627651028890979090145392&h2=Benchmarking-suite). 23 | [Link to full discussion](https://rust-lang.zulipchat.com/#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/meeting.202019.2E04.2E23/near/164021731). 24 | 25 | A useful task was mentioned for the near future: going through the Polonius failures in rustc's test suite (using the `--compare-mode polonius` test mode), categorizing the failures, and possibly making the tests pass, by `--bless`ing the expected polonius test output files. 26 | 27 | ---- 28 | For the following week: 29 | 30 | - [Albin] will continue on the liveness fact generation in rustc. 31 | - [Rémy] will continue work on the `Hybrid` variant optimization. 32 | - [@lokalmatador] will familiarize with the steps [Niko] wrote, with available help from the rest of the WG. 33 | 34 | [Albin]: https://github.com/albins 35 | [Niko]: https://github.com/nikomatsakis 36 | [Rémy]: https://github.com/lqd 37 | [@lokalmatador]: https://github.com/lokalmatador 38 | -------------------------------------------------------------------------------- /content/working-groups/polonius/minutes/2019.04.30-meeting.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: WG-Polonius meeting minutes 2019.04.30 3 | type: docs 4 | --- 5 | # WG-Polonius meeting minutes: 2019/04/30 6 | --- 7 | 8 | Relevant links: 9 | 10 | - The meeting happened in this [Zulip thread](https://rust-lang.zulipchat.com/#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/meeting.202019.2E04.2E30). 11 | - The [WIP Roadmap](https://paper.dropbox.com/doc/Polonius-Roadmap--AY6C806s~AZK~e7wagmys2_wAg-hk3a9ynduUN2gk1A0NNTF) Paper. 12 | 13 | --- 14 | 15 | In this meeting, we started with a short review of the previous week's work: 16 | 17 | - [Albin] continued work on implementing liveness in [Polonius](https://github.com/rust-lang/polonius/pull/105), and opened the [rustc](https://github.com/rust-lang/rust/pull/60266) part of this work: generating the facts needed by the Polonius computation. 18 | - [Niko] wrote up some more [notes](https://github.com/rust-lang/polonius/issues/104#issuecomment-488076424) on continuing the liveness work: the next major part being computing the `region_live_at` facts in Polonius analyses instead of rustc. 19 | - [Rémy] continued the previous week's work of using the results of `LocInsensitive` in `DatafrogOpt` via the `Hybrid` analysis, especially looking for changes in behaviour using polonius and rustc's tests, and ran into the task mentioned the week before: the rustc ui test suite under polonius has more failures than expected. 20 | - [@lokalmatador] looked into building rustc and the various bits they would need for profiling. 21 | 22 | Since the liveness work is a bit complex, has many moving parts, and is generally hard to test, we [talked](https://rust-lang.zulipchat.com/#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/meeting.202019.2E04.2E30/near/164566587) about correctness, testing, rustc's test suite and the need to have a reasonable test suite in general. A first step will be to look into rustc's test suite failures, `ignore`ing irrelevant tests or add `bless`ed output, at the very least to track changes and regressions more easily. 23 | 24 | The WIP plan about polonius features and rustc integration/subsumption looks clear: 25 | 26 | - liveness, which we are actively working on now. 27 | - moves, which should hopefully be smaller, has precedent in the work on Lark, and could be partially/possibly applicable to rustc. 28 | - regions and region logic, for which we have started working on the easier parts, but also crosses paths with the [traits WG and chalk effort](https://rust-lang.zulipchat.com/#narrow/stream/144729-wg-traits/topic/meeting.202019.2E04.2E29/near/164478317) for the more complex ones. 29 | 30 | Useful future tasks we mentioned: 31 | 32 | - after the inaugural talk, it'd be useful to continue the "explaining Polonius" series of videos/talks, focusing on the analysis rules and examples to learn, or remember, why they are the way they are. 33 | 34 | ---- 35 | For the following week: 36 | 37 | - [Albin] will continue on liveness. 38 | - [Rémy] will look at the rustc tests in more detail. 39 | - [Niko] will prepare the next steps in the liveness, to stay ahead of [Albin]'s progress. 40 | - [@lokalmatador] will familiarize with the steps [Niko] wrote, with available help from the rest of the WG. 41 | 42 | [Albin]: https://github.com/albins 43 | [Niko]: https://github.com/nikomatsakis 44 | [Rémy]: https://github.com/lqd 45 | [@lokalmatador]: https://github.com/lokalmatador 46 | -------------------------------------------------------------------------------- /content/working-groups/polonius/minutes/2019.05.07-meeting.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: WG-Polonius meeting minutes 2019.05.07 3 | type: docs 4 | --- 5 | # WG-Polonius meeting minutes: 2019/05/07 6 | --- 7 | 8 | Relevant links: 9 | 10 | - The meeting happened in this [Zulip thread](https://rust-lang.zulipchat.com/#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/meeting.202019.2E05.2E07). 11 | - The [WIP Roadmap](https://paper.dropbox.com/doc/Polonius-Roadmap--AY6C806s~AZK~e7wagmys2_wAg-hk3a9ynduUN2gk1A0NNTF) Paper. 12 | 13 | --- 14 | 15 | In this shorter meeting, we spent most of the time on the previous week's work: 16 | 17 | - [Niko] has written more [notes](https://github.com/rust-lang/polonius/issues/104#issuecomment-489681898) and [steps](https://github.com/rust-lang/polonius/issues/104#issuecomment-489691804) for implementing liveness. With these, most of liveness is described (modulo the specifics of `drop`) :tada:. 18 | - [Albin] smoothly continued work on computing liveness in Polonius in [#105](https://github.com/rust-lang/polonius/pull/105), and rustc's [#60266](https://github.com/rust-lang/rust/pull/60266): finishing up last week's steps about the beginning of fact generation, and preparing to emit the ones needed to compute the `region_live_at` relation. 19 | - [Rémy] started looking at rustc's test suite behaviour under `--compare-mode polonius` in more detail. While initially the number of failures looked [big](https://github.com/rust-lang/rust/compare/master...lqd:polonius_tests), [Matthew] mentioned their in-review PR [#60171](https://github.com/rust-lang/rust/pull/60171), which would contain most of the differences seen in these initial runs, as it unifies the NLL mode under which both of these test modes are ran. 20 | - [@lokalmatador] successfully got rustc building and prepared for profiling. 21 | 22 | Useful future tasks we mentioned: 23 | 24 | - even though we always think about the topic, we noticed analyzing the test suite, tests and correctness, are tasks which should actually be mentioned in the Roadmap. 25 | - the polonius compare-mode likely has little or no documentation, fixing that would be important as part of the general documentation effort needed by the project. 26 | 27 | ---- 28 | For the following week: 29 | 30 | - [Albin] will continue on liveness. 31 | - To get ahead of the liveness game, [Niko] will look at and describe more of the `drop` specifics. 32 | - [Rémy] will continue on the rustc test suite results, especially on top of [#60171](https://github.com/rust-lang/rust/pull/60171). But also write the previous meetings' notes they forgot to do (but as you can attest, dear reader/reviewer, got done eventually). 33 | - [@lokalmatador] will have a bit less time in the immediate future but will afterwards be able to start profiling and looking at the [benchmarking tasks from the Roadmap](https://paper.dropbox.com/doc/Polonius-Roadmap--AdGLuHfuHXoGGL0vCLwXgtysAg-hk3a9ynduUN2gk1A0NNTF#:uid=627651028890979090145392&h2=Benchmarking-suite). 34 | 35 | [Albin]: https://github.com/albins 36 | [Niko]: https://github.com/nikomatsakis 37 | [Rémy]: https://github.com/lqd 38 | [@lokalmatador]: https://github.com/lokalmatador 39 | [Matthew]: https://github.com/matthewjasper 40 | -------------------------------------------------------------------------------- /content/working-groups/polymorphization/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Polymorphization Working Group 3 | type: docs 4 | --- 5 | # Polymorphization Working Group 6 | ![working group status: paused][status] 7 | 8 | [status]: https://img.shields.io/badge/status-paused-yellow.svg?style=for-the-badge 9 | 10 | This working group aims to implement an analysis to detect when functions could remain polymorphic 11 | during code generation. 12 | 13 | - **Team:** [wg-polymorphization on rust-lang/team][team] 14 | 15 | ## What is the goal of this working group? 16 | This working group aims to accomplish the following: 17 | 18 | - Initially, implement an analysis to detect when type parameters are unused in functions, closures 19 | and methods; and integrate this analysis into the monomorphization infrastructure so that less 20 | copies of functions are redundantly made (this addresses rust-lang/rust#46477). 21 | - Experiment and investigate extending the analysis to more advanced cases where functions could 22 | be kept polymorphic. For example, if a function only uses the size of a type parameter, rustc 23 | could create a copy for each distinct size of type (rather than each type). 24 | 25 | # How can I get involved? 26 | There isn't a massive amount of work to be done in parallel relating to polymorphization, but if 27 | you're interested in getting involved then feel free to pop into the Zulip stream. 28 | 29 | - **Desired experience level:** Some familiarity with the MIR and substitutions 30 | - **Relevant repositories:** [`rust-lang/rust`][repo] 31 | - **Zulip stream:** [`#t-compiler/wg-polymorphization`][zulip] on Zulip 32 | 33 | [repo]: https://github.com/rust-lang/rust 34 | [zulip]: https://rust-lang.zulipchat.com/#narrow/stream/216091-t-compiler.2Fwg-polymorphization 35 | 36 | [nikomatsakis]: https://github.com/nikomatsakis 37 | [davidtwco]: https://github.com/davidtwco 38 | [team]: https://github.com/rust-lang/team/blob/master/teams/wg-polymorphization.toml 39 | -------------------------------------------------------------------------------- /content/working-groups/prioritization/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Prioritization Working Group 3 | type: docs 4 | --- 5 | 6 | # Prioritization Working Group 7 | ![working group status: active][status] 8 | 9 | Triaging bugs, mainly deciding if bugs are critical (potential release blockers) or not. 10 | 11 | - **Team:** [wg-prioritization on rust-lang/team](https://github.com/rust-lang/team/blob/master/teams/wg-prioritization.toml) 12 | 13 | [status]: https://img.shields.io/badge/status-active-brightgreen.svg?style=for-the-badge 14 | [spastorino]: https://github.com/spastorino 15 | [wesleywiser]: https://github.com/wesleywiser 16 | 17 | ## What is the goal of this working group? 18 | 19 | This working group aims to accomplish the following: 20 | 21 | - Processing 'nominations' and routing bugs to folks who can fix them 22 | - Identifying *critical* bugs and monitoring them to ensure they are 23 | making progress 24 | - Identifying the agenda for compiler team triage meetings 25 | - Critical issues that are not making progress 26 | - Beta/Stable nominations to be backported 27 | - Issues where bugs are nominated for needing wider discussion 28 | - Tracking deferred things and ensuring they are picked up again 29 | - Future compatibility warnings 30 | 31 | ## How do people bring things to the working group's attention? 32 | 33 | If the issue priority seems obvious, people can label it accordingly, 34 | example an obviously "critical" issue can be labelled as 35 | `P-critical`. But if unclear, use the `I-prioritize` label to 36 | bring it to the group's attention. 37 | 38 | ## How can I get involved? 39 | 40 | If you are interested in getting involved in this working group, come 41 | and say hi [in our Zulip stream][zulip]. Also check out the [Rust compiler 42 | calendar](https://rust-lang.github.io/compiler-team/#meeting-calendar). 43 | You can also be added to the Zulip group for the working group if you 44 | are interested in being pinged when there are things that you may want 45 | to be involved with. 46 | 47 | ## Process 48 | 49 | Our workflow is detailed on [Rust Forge](https://forge.rust-lang.org/compiler/prioritization/procedure.html). 50 | 51 | - **Desired experience level:** Any 52 | - **Relevant repositories:** [`rust-lang/rust`][rust-repo], [rust-lang/compiler-team-prioritization][rust-prio], [rust-lang/triagebot][rust-triagebot] 53 | - **Zulip stream:** [`#t-compiler/wg-prioritization`][zulip] on Zulip 54 | 55 | [rust-repo]: https://github.com/rust-lang/rust 56 | [rust-prio]: https://github.com/rust-lang/compiler-team-prioritization 57 | [rust-triagebot]: https://github.com/rust-lang/triagebot 58 | [zulip]: https://rust-lang.zulipchat.com/#narrow/stream/227806-t-compiler.2Fwg-prioritization 59 | -------------------------------------------------------------------------------- /content/working-groups/rfc-2229/FAQ.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: FAQs 3 | type: docs 4 | --- 5 | # Frequently Asked Questions (FAQ) 6 | 7 | Looks like no questions have been asked yet! If you have a question, feel free to file an issue or 8 | ask in the working group's Zulip stream. 9 | -------------------------------------------------------------------------------- /content/working-groups/rfc-2229/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: rfc-2229 Working Group 3 | type: docs 4 | --- 5 | # rfc-2229 Working Group 6 | ![working group status: retired][status] 7 | 8 | - **Team:** [wg-rfc-2229 on rust-lang/team](https://github.com/rust-lang/team/blob/master/teams/wg-rfc-2229.toml) 9 | - **Meeting Notes:** 10 | - Check [meetings.md](https://github.com/rust-lang/project-rfc-2229/blob/master/meetings.md) for latest meetings notes and video recordings. 11 | - Old: [2019.03.05 Roadmap Plan]({{< relref "/working-groups/rfc-2229/minutes/2019.03.05-roadmap-plan.md" >}}) 12 | - **Project Repository:** https://github.com/rust-lang/project-rfc-2229 13 | - **FAQ:** [FAQ]({{< relref "/working-groups/rfc-2229/FAQ" >}}) 14 | 15 | ## Status 16 | 17 | Check the [project board](https://github.com/rust-lang/project-rfc-2229/projects/1). 18 | 19 | ## What is the goal of this working group? 20 | This working group aims to accomplish the following: 21 | 22 | - Finish, optimize, and test the implementation of [RFC-2229]. 23 | RFC 2229 changes the way closure-capture works so that we no longer capture 24 | entire individual variables, instead capture the actual path to fields of the 25 | variable, that is used. This helps to eliminate borrow check errors. 26 | - Produce documentation of how the closures in Rust are implemented in the 27 | [rustc-dev-guide] along the way. Currently, the rustc-dev-guide does not have a 28 | section on closures. We would like to change it. 29 | 30 | # How can I get involved? 31 | If you are interested in getting involved in this working group, you are welcome to 32 | introduce yourself in the Zulip stream. You can be added to the GitHub and Zulip 33 | group for the working group if you are interested in being pinged when there are available tasks. 34 | 35 | - **Desired experience level:** Any 36 | - **Relevant repositories:** [`rust-lang/rust`][repo] 37 | - **Zulip stream:** [`#t-compiler/wg-rfc-2229`][zulip] on Zulip 38 | 39 | ## Are there any resources to get up to speed? 40 | There are a few videos recorded by [niko][Niko] that give an excellent overview 41 | of how rustc implements closures and a detailed code walk-through. The videos 42 | can be found [here][playlist]. 43 | 44 | ## Can I contribute in ways other than code ? 45 | Definitely, you can. If you would like to have a deep understanding of closures 46 | but don't intend to write any code, help us add a section to the [rustc-dev-guide]. 47 | One way to do that will be to watch these [videos][playlist] and to summarize 48 | the closure implementation details discussed there in a new closure section of 49 | the rustc-dev-guide. 50 | 51 | # Roadmap 52 | The project roadmap can be found [here][roadmap]. 53 | 54 | [Niko]: https://github.com/nikomatsakis 55 | [Blitzerr]: https://github.com/blitzerr 56 | [rustc-dev-guide]: https://rustc-dev-guide.rust-lang.org/ 57 | [repo]: https://github.com/rust-lang/rust 58 | [zulip]: https://rust-lang.zulipchat.com/#narrow/stream/189812-t-compiler.2Fwg-rfc-2229 59 | [RFC-2229]: https://github.com/rust-lang/rfcs/blob/master/text/2229-capture-disjoint-fields.md 60 | [NOTES]: minutes/ 61 | [status]: https://img.shields.io/badge/status-retired-cacaca.svg?style=for-the-badge 62 | [roadmap]: https://paper.dropbox.com/doc/RFC-2229-Roadmap--AYuUod8hbXrktRttb95fprjHAg-cJKrePDCZR54T5kVbuoQk 63 | [playlist]: https://www.youtube.com/playlist?list=PL85XCvVPmGQh__bxYIxaVifbIOajnrNcQ&disable_polymer=true 64 | -------------------------------------------------------------------------------- /content/working-groups/rfc-2229/minutes/2019.03.05-roadmap-plan.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019.03.05 - Roadmap plan 3 | type: docs 4 | --- 5 | - We chalked out the detailed [roadmap][roadmap] for the working group. 6 | - We also discussed how to addressed the test failures caused by the PRs [this][pr1] and [this][pr2]. The solution for the same can he found under the section *Error Message* [here][solution]. 7 | - The recording for the entire meeting can be found [here][video]. 8 | 9 | [roadmap]: https://paper.dropbox.com/doc/RFC-2229-Roadmap--AYuUod8hbXrktRttb95fprjHAg-cJKrePDCZR54T5kVbuoQk 10 | [pr1]: https://github.com/blitzerr/rust/commit/4a02c5b487dd7cf1973208e32af22397122e67f4 11 | [pr2]: https://github.com/blitzerr/rust/commit/64d0145d19e5eeed73d877186ccf12345ba02f95 12 | [solution]: https://paper.dropbox.com/doc/RFC-2229-Roadmap--AYwi6_4~admWUd2_wspjZx8ZAg-cJKrePDCZR54T5kVbuoQk#:uid=916240896182703889444600&h2=Error-message 13 | [video]: https://www.youtube.com/watch?v=UTXOptVMuIc 14 | -------------------------------------------------------------------------------- /content/working-groups/rls-2.0/FAQ.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: FAQs 3 | type: docs 4 | --- 5 | # Frequently asked questions 6 | 7 | -------------------------------------------------------------------------------- /content/working-groups/rls-2.0/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: rls-2.0 Working Group 3 | type: docs 4 | --- 5 | # rls-2.0 Working Group 6 | ![working group status: retired][status] 7 | 8 | [status]: https://img.shields.io/badge/status-active-green.svg?style=for-the-badge 9 | 10 | - **Team:** [wg-rls-2 on rust-lang/team](https://github.com/rust-lang/team/blob/master/teams/wg-rls-2.toml) 11 | - **Notes:** [All]({{< relref "/working-groups/rls-2.0/NOTES" >}}) 12 | - **FAQs:** [FAQ]({{< relref "/working-groups/rls-2.0/FAQ" >}}) 13 | 14 | # Scope and purpose 15 | 16 | Discover ideal architecture for IDE-compiler by starting a "from scratch" implementation. Especially, how to handle the two hardest things: 17 | 18 | * name resolution/macro expansion 19 | * trait resolution 20 | 21 | Quantify how hard would be to port existing rustc to the IDE architecture. 22 | 23 | ## Secondary Goals 24 | 25 | * provide better RLS experience by making a "better racer" 26 | * facilitate rustc librarification by discovering and prototyping separable libraries 27 | * facilitate specification of the language, by producing "more declarative" implementation 28 | 29 | ## Deliverables 30 | 31 | * a language server which provides compiler-based code completion for a subset of the Rust language. 32 | * "design knowledge": which approaches do and do not work in IDE contexts. 33 | * (optional) improvements to existing tooling, like replacing racer in RLS with something more powerful, or making rustfmt capable of dealing with incomplete code. 34 | 35 | # Current status 36 | 37 | An initial language-server is implemented in the [rust-analyzer]. 38 | 39 | [rust-analyzer]: https://github.com/rust-analyzer/rust-analyzer 40 | 41 | # How to participate 42 | 43 | ## Chat forum 44 | 45 | On [the rust-lang Zulip][z], in [the `#t-compiler/rust-analyzer` stream][s]. 46 | 47 | [z]: https://rust-lang.zulipchat.com/ 48 | [s]: https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Frust-analyzer 49 | 50 | ## Meetings 51 | 52 | We don't have a regular meeting schedule yet, check [Zulip][s] to learn about 53 | the next one. However, we maintain [work list] -- a paper document that shows 54 | what everyone is working on right now. If you want to (this is not mandatory), 55 | add yourself to the list! 56 | 57 | [work list]: https://paper.dropbox.com/doc/RLS-2.0-work-list--AZ3BgHKKCtqszbsi3gi6sjchAQ-42vbnxzuKq2lKwW0mkn8Y 58 | 59 | ## rust-analyzer 60 | 61 | Currently the bulk of work is happening in the [rust-analyzer] repository. 62 | It has [E-mentor] issues and a [guide]. 63 | 64 | [E-mentor]: https://github.com/rust-analyzer/rust-analyzer/issues?q=is%3Aissue+is%3Aopen+label%3AE-mentor 65 | [guide]: https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/dev/guide.md 66 | 67 | ## Getting up to speed 68 | 69 | There's some documentation in rust-analyzer repository which should be useful. 70 | There's a YouTube [playlist] with videos which cover various subsystems of the 71 | analyzer. 72 | 73 | [playlist]: https://www.youtube.com/playlist?list=PL85XCvVPmGQho7MZkdW-wtPtuJcFpzycE 74 | -------------------------------------------------------------------------------- /content/working-groups/rustc-dev-guide/FAQ.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: FAQs 3 | type: docs 4 | --- 5 | # Frequently Asked Questions (FAQ) 6 | 7 | If you have a question, feel free to file an issue or ask in the working group's Zulip stream. 8 | 9 | There are no FAQs so far. Please ask us more questions. -------------------------------------------------------------------------------- /content/working-groups/rustc-dev-guide/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Rustc Dev Guide Working Group 3 | type: docs 4 | --- 5 | # Rustc Dev Guide Working Group 6 | ![working group status: active][status] 7 | 8 | This working group aims to make the compiler easier to learn by ensuring that rustc-dev-guide and api docs are "complete". 9 | 10 | - **Team:** [wg-rustc-dev-guide on rust-lang/team](https://github.com/rust-lang/team/blob/master/teams/wg-rustc-dev-guide.toml) 11 | - **Meeting Notes:** 12 | - [2019.05.14 Meeting]({{< relref "/working-groups/rustc-dev-guide/minutes/2019.05.14-meeting.md" >}}) 13 | - [2019.05.28 Meeting]({{< relref "/working-groups/rustc-dev-guide/minutes/2019.05.28-meeting.md" >}}) 14 | - [2019.06.11 Meeting]({{< relref "/working-groups/rustc-dev-guide/minutes/2019.06.11-meeting.md" >}}) 15 | - [2019.06.25 Meeting]({{< relref "/working-groups/rustc-dev-guide/minutes/2019.06.25-meeting.md" >}}) 16 | - [2019.07.09 Meeting]({{< relref "/working-groups/rustc-dev-guide/minutes/2019.07.09-meeting.md" >}}) 17 | - [2019.07.23 Meeting]({{< relref "/working-groups/rustc-dev-guide/minutes/2019.07.23-meeting.md" >}}) 18 | - [2019.08.06 Meeting]({{< relref "/working-groups/rustc-dev-guide/minutes/2019.08.06-meeting.md" >}}) 19 | - [2019.08.20 Meeting]({{< relref "/working-groups/rustc-dev-guide/minutes/2019.08.20-meeting.md" >}}) 20 | - [2019.09.17 Meeting]({{< relref "/working-groups/rustc-dev-guide/minutes/2019.09.17-meeting.md" >}}) 21 | - [2019.10.01 Meeting]({{< relref "/working-groups/rustc-dev-guide/minutes/2019.10.01-meeting.md" >}}) 22 | - **Agenda:** [Agenda]({{< relref "/working-groups/rustc-dev-guide/minutes/agenda" >}}) 23 | - **FAQ:** [FAQ]({{< relref "/working-groups/rustc-dev-guide/FAQ" >}}) 24 | 25 | [status]: https://img.shields.io/badge/status-active-brightgreen.svg?style=for-the-badge 26 | [spastorino]: https://github.com/spastorino 27 | [markim]: https://github.com/mark-i-m 28 | 29 | ## What is the goal of this working group? 30 | This working group aims to accomplish the following: 31 | 32 | - Ensure that major components of rustc are covered in rustc-dev-guide 33 | - Ensure that API doc coverage is at least 90% 34 | 35 | # How can I get involved? 36 | If you are interested in getting involved in this working group, come and say hi in the Zulip 37 | stream. You can be added to the Zulip group for the working group if you are interested in being 38 | pinged when there are available tasks. 39 | 40 | ## Process 41 | We are trying to follow a "sprint-like" structure where on each "sprint" cycle we start with a planning and then 42 | work towards the goals defined on that plan. Our current plan is to work for 2 months on a couple of goals, with a few meetings to sync up during that period. We are working towards filling out missing parts of the rustc-dev-guide and building some chapters that help gain an overall understanding of what the compiler does to code to produce its output. 43 | 44 | - **Desired experience level:** Any 45 | - **Relevant repositories:** [`rust-lang/rust`][rust-repo] and [`rust-lang/rustc-dev-guide`][rustc-dev-guide-repo] 46 | - **Zulip stream:** [`#t-compiler/wg-rustc-dev-guide`][zulip] on Zulip 47 | 48 | [rust-repo]: https://github.com/rust-lang/rust 49 | [rustc-dev-guide-repo]: https://github.com/rust-lang/rustc-dev-guide 50 | [zulip]: https://rust-lang.zulipchat.com/#narrow/stream/196385-t-compiler.2Fwg-rustc-dev-guide 51 | -------------------------------------------------------------------------------- /content/working-groups/rustc-dev-guide/minutes/2019.05.14-meeting.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Rustc Dev Guide WG 2019-05-14 sync meeting 3 | type: docs 4 | --- 5 | # Rustc Dev Guide WG 2019-05-14 sync meeting 6 | 7 | ## Topics discussed: 8 | 9 | - Define what’s the walkthrough section we want to add 10 | - Triage missing rustc-dev-guide chapters 11 | - How do we want to keep track of who is doing what? Does github Projects works 12 | nice for this? 13 | 14 | ## Plan for walkthrough/overview chapter 15 | 16 | - Goal is to have a chapter which will walk through compilation of simple program 17 | - Links to other chapters for details 18 | - This overview differs from the existing queries chapter in that the latter is 19 | more focused on how to create your own queries. 20 | 21 | Status: 22 | - lokalmatador is giving this a try & will open a PR at some point 23 | 24 | ## rustc-dev-guide missing chapters 25 | 26 | Topics that need to be added 27 | 28 | - Monomorphization, Type Memory Layout, Codegen, LLVM 29 | - Macros, hygiene, proc macros, custom derives, etc. 30 | - Lexing and Parsing 31 | - Walkthrough of a typical contribution 32 | - The rest of 33 | - Name Resolution 34 | - Traits 35 | - Region Constraints 36 | - SLG solver 37 | - Type checking 38 | - MIR 39 | - Constants, Promoted Constants in MIR 40 | - Construction of MIR 41 | - Optimizations 42 | - Borrow Check: Moves and initialization 43 | - MIR Type check 44 | - Various parts of NLL 45 | - A large collection of potential improvements in the form of issues on the repo 46 | 47 | Status: 48 | 49 | - Would be good to schedule a lecture on each missing topic 50 | - less work for the experts 51 | - Can then transcribe into a chapter 52 | - @spastorino will arrange lectures, nikomatsakis will create zoom 53 | 54 | ## How do we want to keep track of who is doing what? Does github Projects works nice for this? 55 | 56 | - planning to use github issues. 57 | - Two issues were created to track existing work: 58 | - https://github.com/rust-lang/rustc-dev-guide/issues/319 59 | - https://github.com/rust-lang/rustc-dev-guide/issues/320 60 | - discussed possible use of GH projects 61 | - for now we will move TODO list to GH issues from dropbox -------------------------------------------------------------------------------- /content/working-groups/rustc-dev-guide/minutes/2019.05.28-meeting.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Rustc Dev Guide WG 2019-05-28 sync meeting 3 | type: docs 4 | --- 5 | # Rustc Dev Guide WG 2019-05-28 sync meeting 6 | 7 | ## Triaging rustc-dev-guide repo 8 | 9 | - Some discussion about how to assign issues on the rust-lang/rustc-dev-guide repo 10 | - Problem: can't assign issues to non-members 11 | - Possible solutions: 12 | - Add WG-rustc-dev-guide members to repo so they can be assigned 13 | - use `triagebot` model: bot is assigned the issue and edits the OP to mention the current owner. 14 | 15 | ## Forge 16 | 17 | - Discussed purpose of the forge and how it differs from rustc-dev-guide 18 | - Niko feels that most of the content in the forge doesn't obviously belong in the guide and that the stuff currently in the guide feels like it belongs in the guide 19 | - Forge is for team procedures, infra stuff 20 | - would also be good to add craterbot and rustc-timer links to forge (probably link to READMEs of their repos) 21 | - link forge from main page 22 | 23 | > my rule of thumb [for what to put in the guide] is sort of "is this something you would do while fixing a compiler bug or implementing a compiler feature" -niko 24 | 25 | ## Lectures 26 | 27 | - Do one on MIR and HAIR construction -------------------------------------------------------------------------------- /content/working-groups/rustc-dev-guide/minutes/2019.06.11-meeting.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Rustc Dev Guide WG 2019-06-11 sync meeting 3 | type: docs 4 | --- 5 | # Rustc Dev Guide WG 2019-06-11 sync meeting 6 | 7 | ## WIP stuff 8 | 9 | - Write an overview chapter (lokalmatador) 10 | - Steady progress, about to finish up the part on HIR and moving on to MIR 11 | - Changed the example to bubblesort in the meantime using some mutable borrows 12 | - Stick to old trait solver for now, according to Niko 13 | - Draft/WIP: https://paper.dropbox.com/doc/A-first-glance-at-rustc--AexZRkGI1D_0C_eqE5ZBqmgjAQ-Mk45wFbBKBT9C8e9rPaCd 14 | 15 | - Transcribe the Compiler Lecture Series into chapters 16 | - amanjeev: debugging support 17 | - Merge what we have and iterate 18 | - Needs to be reviewed 19 | - juanbono: coherence in chalk 20 | - Working with igaray 21 | - igaray: representing types in rustc 22 | - No progress, but have not dropped it 23 | 24 | - Add rustc guide to toolstate (mark-i-m) 25 | - https://github.com/rust-lang/rust/pull/59772 26 | - libssl dependency is annoying (need to investigate) 27 | 28 | - Closure desugaring work (mark-i-m) 29 | - https://github.com/blitzerr/rustc-dev-guide/pull/1 30 | - waiting on author who seems busy... will probably just merge and iterate later 31 | 32 | - Organizing MIR and HAIR talks (spastorino) 33 | - oli-obk is going to do something this month, needs time 34 | 35 | ## Triaging rustc-dev-guide 36 | 37 | - spastorino will ask @Pietro Albini about progress on triagebot. 38 | - If triagebot will be ready soon, wait. 39 | - Otherwise add people to the repo with read perms only. When triagebot is ready maybe switch to that. 40 | 41 | ## forge/guide, where to link 42 | 43 | - There is a planned contributing page: https://github.com/rust-lang/www.rust-lang.org/issues/440 44 | - If someone has time we (WG-rustc-dev-guide) should try to push that forward, otherwise, waiting for this to be done... 45 | 46 | ## adding people to the rustc-dev-guide toolstate list 47 | 48 | - spastorino volunteers to be added 49 | -------------------------------------------------------------------------------- /content/working-groups/rustc-dev-guide/minutes/2019.06.25-meeting.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Rustc Dev Guide WG 2019-06-25 sync meeting 3 | type: docs 4 | --- 5 | # Rustc Dev Guide WG 2019-06-25 sync meeting 6 | 7 | ## Helping with mdbook 8 | 9 | - igaray says that doc team has taken up this work and it is not very specific to WG-rustc-dev-guide 10 | 11 | ## Blog post announcing documentation efforts and tasks, ... 12 | 13 | - It wasn't clear to us where such a post would be published 14 | - spastorino will check with niko and see if this can be posted on rust blog or if we need some other dev-blog.rlo 15 | - igaray volunteers to write a quick post if we can post on blog.rlo 16 | 17 | ## Tracking lectures desire, recorded, transcribed 18 | 19 | - spastorino will experiment with some of the existing lectures: 20 | - one github project 21 | - one issue per lecture, with the project tracking its status 22 | - rustbot claim to claim a lecture 23 | - If this works, we can move away from large checklist tracking issues. 24 | 25 | ## What to add from forge.rlo bibliography 26 | 27 | - Doesn't look like any of the papers are particular to any part of compiler, but they are interesting/useful 28 | 29 | - mark-i-m will add as an appendix to rustc-dev-guide 30 | 31 | - related discussion: 32 | - lokalmatador will link to lecture videos from their walkthrough chapter 33 | - we will also add links to the tops of the transcribed chapters 34 | -------------------------------------------------------------------------------- /content/working-groups/rustc-dev-guide/minutes/2019.07.09-meeting.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Rustc Dev Guide WG 2019-07-09 sync meeting 3 | type: docs 4 | --- 5 | # Rustc Dev Guide WG 2019-07-09 sync meeting 6 | 7 | - some discussion about organizing lectures on missing topics 8 | - it's hard because the preparation may put off potential lecturers 9 | - maybe instead go for more informal zulip-based "explain everything you know about X" 10 | - can then summarize zulip log 11 | 12 | - agreed to change terminology from "transcribe" -> "summarize" 13 | 14 | - mark-i-m volunteers to try to organize meeting with petrochenkov about macros 15 | - amanjeev volunteers to try to organize meeting with nagisa or alexchricton about codegen 16 | 17 | - some discussion of how to assign work, organize lectures, etc, but not super conclusive 18 | - spastorino suggested making the next meeting 1 hour, instead of 30 minutes. 19 | -------------------------------------------------------------------------------- /content/working-groups/rustc-dev-guide/minutes/2019.07.23-meeting.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Rustc Dev Guide WG 2019-07-23 sync meeting 3 | type: docs 4 | --- 5 | # Rustc Dev Guide WG 2019-07-23 sync meeting 6 | 7 | ## rustc-dev-guide strike force 8 | 9 | - Need to go through older issues on repo and see what is actionable for each one 10 | - Easier issues need to just get done 11 | - Harder issues may need a talk/meeting with an expert 12 | 13 | - spastorino proposes writing a post on IRLO 14 | - mark-i-m volunteers to do this 15 | 16 | ## Long meeting 17 | 18 | - Last time, we discussed scheduling a long meeting 19 | - mark-i-m proposes August 19, but spastorino notes that this is close to 20 | RustConf. Maybe it is ok anyway if that is ok with Niko. 21 | -------------------------------------------------------------------------------- /content/working-groups/rustc-dev-guide/minutes/2019.08.06-meeting.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Rustc Dev Guide WG 2019-08-06 sync meeting 3 | type: docs 4 | --- 5 | # Rustc Dev Guide WG 2019-08-06 sync meeting 6 | 7 | - @Tshepang Lekhonkhobe joined the Rustc Dev Guide WG! 8 | 9 | - @mark-i-m reported that toolslate/linkcheck is now working properly with following overview on how: 10 | - The linkchecker in the rust CI is run from https://github.com/rust-lang/rust/tree/master/src/tools/rustbook. 11 | - It just runs `mdbook_linkcheck` as a library. 12 | - That is called by only one linux builder from the script in `src/ci/docker/`. 13 | - The hack on the `rustc-dev-guide` CI checks the output of `mdbook_linkcheck` from `stdout/stderr` and looks for timeout errors. 14 | - If timeout errors are equal to the number of errors `mdbook_linkcheck` reported, then build is passed. 15 | 16 | - @Santiago Pastorino mentions two major tasks for the WG (in an explanation): 17 | - one is watching the lectures and summarizing them as guides chapter. 18 | - and the other one is triaging and paying attention to the issue tracker. 19 | 20 | - @Santiago Pastorino shared URL for traigebot documentation https://github.com/rust-lang/triagebot/wiki/Assignment. -------------------------------------------------------------------------------- /content/working-groups/rustc-dev-guide/minutes/2019.08.20-meeting.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Rustc Dev Guide WG 2019-08-21 sync meeting 3 | type: docs 4 | --- 5 | # Rustc Dev Guide WG 2019-08-21 sync meeting 6 | 7 | It was a fairly quiet meeting. 8 | 9 | - The 2nd Macros Discussion with @petrochenkov is tomorrow at UTC 7pm. 10 | - @amanjeev volunteered to be added to the toolstate ping list. 11 | - We decided to leave discussion of other items until more people are present. 12 | -------------------------------------------------------------------------------- /content/working-groups/rustc-dev-guide/minutes/2019.09.17-meeting.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Rustc Dev Guide WG 2019-09-17 sync meeting 3 | type: docs 4 | --- 5 | # Rustc Dev Guide WG 2019-09-17 sync meeting 6 | 7 | - Team discussed that we all are going to watch same video 8 | - This lecture https://github.com/rust-lang/rustc-dev-guide/issues/375 9 | - Notes and questions to be discussed in a separate meeting on Tue, 24 September, 15:30 10 | 11 | - @mark-i-m reported 12 | - We are now using mdbook-linkcheck 0.4, which has caching 13 | - Opening PR https://github.com/rust-lang/rustc-dev-guide/pull/446 to add instructions about fixing toolslate 14 | 15 | - @Iñaki Garay reported that the effort to summarize the videos was underestimated. 16 | - @Amanjeev Sethi agreed 17 | 18 | -------------------------------------------------------------------------------- /content/working-groups/rustc-dev-guide/minutes/2019.10.01-meeting.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Rustc Dev Guide WG 2019-10-01 sync meeting 3 | type: docs 4 | --- 5 | # Rustc Dev Guide WG 2019-10-01 sync meeting 6 | 7 | - Team discussed that watching same video by all members, one video at a time, works well for everyone so far 8 | - Everyone is [taking notes in this paper doc](https://paper.dropbox.com/doc/Ty-lecture-summary--AlwygwSe9rh1NVn2BB6CaBB9Ag-4jFj9bVOLlW7uhIOWHITX). 9 | - Discussion was about this lecture https://github.com/rust-lang/rustc-dev-guide/issues/375 10 | 11 | - @Santiago Pastorino reported that [How to build and run guide page needs help](https://rustc-dev-guide.rust-lang.org/how-to-build-and-run.html) 12 | - Team might create a new doc for this page to collect ideas. 13 | 14 | - @mark-i-m reported that 15 | - 1) It seems our CI is broken, as this should not be passing: https://travis-ci.com/rust-lang/rustc-dev-guide/builds/129892160 16 | - @Amanjeev Sethi chose to take up on this task. 17 | - 2) There are a bunch of broken links in the Chalk chapter 18 | - @Tshepang Lekhonkhobe chose to take up on this task. 19 | -------------------------------------------------------------------------------- /content/working-groups/rustc-dev-guide/minutes/2019.11.26-meeting.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Rustc Dev Guide WG 2019-11-26 planning meeting 3 | type: docs 4 | --- 5 | # Rustc Dev Guide WG 2019-11-26 planning meeting 6 | 7 | 8 | - Team discussed most important missing chapters from the [master doc]. 9 | - A consensus was reached which was noted on the [master doc]. 10 | - Prioritizing the Overview lecture and doc over others. 11 | - Working as a team on the lecture/doc. 12 | - Team discussed to work with Hackmd vs Paper 13 | - For this Overview doc. 14 | - So we have experience with Paper as well as Hackmd. 15 | - Team discussed about Working Process 16 | - @Santiago mentioned that it might be a good idea to tackle two things in parallel 17 | - 1. A lecture arrangement. 18 | - 2. A document summary of something else. 19 | - @mark-i-m proposed (again) that we might benefit from a Sprint-like process 20 | - Pick a topic and work towards a goal for say 2 months. 21 | - Team seems to like this sprint-like process idea. 22 | - Team will try this for next two months and recalibrate as necessary. 23 | - Next steps 24 | - @Santiago opened [PR for Ty lecture]. 25 | - @mark-i-m started to arrange lecture for `Monomorph, LLVM`. 26 | - @Santiago started [doc for Overview chapter]. 27 | 28 | 29 | [master doc]: https://hackmd.io/iamkyR_QTdSIdGjYQX_XjQ 30 | [PR for Ty lecture]: https://github.com/rust-lang/rustc-dev-guide/pull/530 31 | [doc for Overview chapter]: https://hackmd.io/j8EsXGI1RiOnjZSiSRf3ng 32 | -------------------------------------------------------------------------------- /content/working-groups/rustc-dev-guide/minutes/agenda.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: WG rustc-dev-guide future meeting agenda 3 | type: docs 4 | --- 5 | # WG-Rustc Dev Guide future meeting agenda 6 | 7 | See [this doc](https://hackmd.io/s/SysIzeMRE) -------------------------------------------------------------------------------- /content/working-groups/self-profile/FAQ.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: FAQs 3 | type: docs 4 | --- 5 | # Frequently Asked Questions (FAQ) 6 | 7 | Looks like no questions have been asked yet! If you have a question, feel free to file an issue or ask in the working group's Zulip stream. 8 | -------------------------------------------------------------------------------- /content/working-groups/self-profile/NOTES.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Notes 3 | type: docs 4 | --- 5 | # Self-Profile Meeting Notes 6 | This document contains meeting notes from the self-profile working group. 7 | 8 | ## 2019-03-05: [Meeting][meeting20190305] 9 | **Written by:** [@wesleywiser][wesleywiser] 10 | 11 | **Purpose of meeting**: Initial meeting to get organized and decide on some next steps. 12 | 13 | **Agenda**: 14 | - Current status update 15 | - Where to track work? 16 | - What does an Minimum Viable Product (MVP) look like? 17 | - Next work items? 18 | 19 | ### Current Status 20 | 21 | After a few rounds of experimentation, we have a `-Z self-profile` option available in the nightly compliler. 22 | The profiler measures a few kinds of things such as when queries start and stop, when the incremental cache is hit and when a cache miss occurs, and when queries are blocked by a parallel query (when the compiler is built in parallel mode). 23 | The profiler currently writes this data in a rather verbose JSON format to a file in the working directory. 24 | This is very slow. 25 | 26 | #### Team updates: 27 | 28 | - [@michaelwoerister][michaelwoerister] is [drafting a tracking issue for our MVP](https://github.com/rust-lang/rust/issues/58967). 29 | - [@wesleywiser][wesleywiser] is [currently working on replacing some custom LLVM codegen timing data with the profiler](https://github.com/rust-lang/rust/pull/58488). 30 | 31 | ### Where to track work? 32 | 33 | [We decided to track just the MVP in a tracking issue on GitHub.](https://rust-lang.zulipchat.com/#narrow/stream/187831-t-compiler.2Fwg-self-profile/topic/meeting.202019-03-05/near/159997283) 34 | [The overall roadmap is a bit nebulous at the moment and we felt it would be most productive to focus on getting something usuable on perf.rust-lang.org ASAP.](https://rust-lang.zulipchat.com/#narrow/stream/187831-t-compiler.2Fwg-self-profile/topic/meeting.202019-03-05/near/159997637) 35 | 36 | ### What does an MVP look like? 37 | 38 | [Our first MVP will be targeted at getting profiling data available on perf.rust-lang.org.](https://rust-lang.zulipchat.com/#narrow/stream/187831-t-compiler.2Fwg-self-profile/topic/meeting.202019-03-05/near/159998652) 39 | 40 | As a rough outline, perf.rust-lang.org will allow the user to click on a crate from the comparison page and they will be shown a comparison of query performance from both runs. 41 | [This will be displayed like the NLL Dashboard page but with individual queries on the left instead of crate names.](https://rust-lang.zulipchat.com/#narrow/stream/187831-t-compiler.2Fwg-self-profile/topic/meeting.202019-03-05/near/159998182) 42 | 43 | There's a number of steps to getting to this point which will be fleshed out in the tracking issue. 44 | 45 | ### Next work items? 46 | 47 | In order to get to the MVP, dumping the raw events to disk during compilation needs to get a lot faster. 48 | Currently, we're using JSON for this because it's easy to parse without sharing a lot of code between the compiler and out-of-tree crates. 49 | [We're going to switch this to a compact binary format and create a crate that will form the stable interface that out-of-tree crates can consume.](https://rust-lang.zulipchat.com/#narrow/stream/187831-t-compiler.2Fwg-self-profile/topic/meeting.202019-03-05/near/159999234) 50 | More detail is available in the [tracking issue](https://github.com/rust-lang/rust/issues/58967). 51 | 52 | [meeting20190305]: https://rust-lang.zulipchat.com/#narrow/stream/187831-t-compiler.2Fwg-self-profile/topic/meeting.202019-03-05 53 | [michaelwoerister]: https://github.com/michaelwoerister 54 | [wesleywiser]: https://github.com/wesleywiser -------------------------------------------------------------------------------- /content/working-groups/self-profile/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Self-Profile Working Group 3 | type: docs 4 | --- 5 | # Self-Profile Working Group 6 | ![working group status: retired][status] 7 | 8 | [status]: https://img.shields.io/badge/status-retired-cacaca.svg?style=for-the-badge 9 | 10 | This working group aims to improve the `-Z self-profile` `rustc` option which can aid in profiling the compiler during compilation. 11 | 12 | - **Team:** [wg-self-profile on rust-lang/team](https://github.com/rust-lang/team/blob/master/teams/wg-self-profile.toml) 13 | - **Meeting Notes:** [All]({{< relref "/working-groups/self-profile/NOTES" >}}) 14 | - **FAQ:** [FAQ]({{< relref "/working-groups/self-profile/FAQ" >}}) 15 | 16 | [status]: https://img.shields.io/badge/status-active-brightgreen.svg?style=for-the-badge 17 | 18 | ## What is the goal of this working group? 19 | This working group aims to accomplish the following: 20 | 21 | - Improve the `-Z self-profile` option in `rustc` which dumps various events into a file. 22 | - Implement additional tools to explore, visualize and understand the data contained in the output file. 23 | 24 | ## What is the current status? 25 | The working group is working on creating a "minimum viable product" of the self-profiling feature. 26 | Progress is tracked in https://github.com/rust-lang/rust/issues/58967. 27 | 28 | ## How can I get involved? 29 | If you are interested in getting involved in this working group, you should try attend a meeting and 30 | introduce yourself or send a message in the Zulip stream. You can be added to the GitHub and Zulip 31 | group for the working group if you are interested in being pinged when there are available tasks. 32 | 33 | - **Desired experience level:** Any 34 | - **Relevant repositories:** [`rust-lang/rust`][repo] (specifically `src/librustc/util/profiling.rs`) 35 | - **Zulip stream:** [`#t-compiler/wg-self-profile`][zulip] on Zulip 36 | 37 | [repo]: https://github.com/rust-lang/rust 38 | [zulip]: https://rust-lang.zulipchat.com/#narrow/stream/187831-t-compiler.2Fwg-self-profile 39 | 40 | ## Do I need to attend any meetings? 41 | The Self-Profile WG doesn't currently have recurring, scheduled meetings. 42 | However, anyone is welcome to attend any WG meetings. 43 | 44 | [michaelwoerister]: https://github.com/michaelwoerister 45 | [wesleywiser]: https://github.com/wesleywiser 46 | -------------------------------------------------------------------------------- /content/working-groups/template/FAQ.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: FAQs- Template 3 | type: docs 4 | --- 5 | #### *

This page is an example template and not the actual NLL working group.

* 6 | 7 | # Frequently Asked Questions (FAQ) 8 | 9 | Looks like no questions have been asked yet! If you have a question, feel free to file an issue or ask in the working group's Zulip stream. 10 | -------------------------------------------------------------------------------- /content/working-groups/template/NOTES.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Notes - Templates 3 | type: docs 4 | --- 5 | #### *

This page is an example template and not the actual NLL working group.

* 6 | #### *

Feel free to break this out into a directory.

* 7 | 8 | # Non-Lexical Lifetimes (NLL) Meeting Notes 9 | This document contains meeting notes from the NLL working group. 10 | 11 | ## 2019-02-22: [Triage Meeting][triage20190222] 12 | **Written by:** [@davidtwco][davidtwco] 13 | 14 | **Purpose of meeting**: Given slow winding down of the NLL working group, discussed the ongoing 15 | purpose of the meeting. [@spastorino](spastorino) suggested using the time as an space for open 16 | discussion and office hours (as previously suggested by [@pnkfelix][pnkfelix]). 17 | [@pnkfelix](pnkfelix) would continue to perform weekly triage before the meeting and will leave the 18 | triaged issues unassigned so that interested parties can assign themselves. 19 | 20 | **Place 2.0**: Discussion turned to the ongoing Place 2.0 work being undertaken by 21 | [@spastorino][spastorino]. Clarifications and discussion of the feasibility of current 22 | implementation plan took place. Work will continue as planned. 23 | 24 | [triage20190222]: https://rust-lang.zulipchat.com/#narrow/stream/122657-t-compiler.2Fwg-nll/topic/weekly.20meeting.202019.2E02.2E20/near/158880485 25 | 26 | [davidtwco]: https://github.com/davidtwco 27 | [spastorino]: https://github.com/spastorino 28 | [pnkfelix]: https://github.com/pnkfelix 29 | -------------------------------------------------------------------------------- /content/working-groups/traits/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Traits Working Group 3 | type: docs 4 | --- 5 | # Traits Working Group 6 | ![working group status: retired][status] 7 | 8 | [status]: https://img.shields.io/badge/status-retired-cacaca.svg?style=for-the-badge 9 | 10 | - **Team:** [wg-traits on rust-lang/team](https://github.com/rust-lang/team/blob/master/teams/wg-traits.toml) 11 | 12 | [nikomatsakis]: https://github.com/nikomatsakis 13 | [jackh726]: https://github.com/jackh726 14 | 15 | # Scope and purpose 16 | 17 | The **traits** working group is dedicated to improving the trait 18 | system implementation in rustc. This working group is a collaboration 19 | between the [lang team] and the compiler team. We have a number of inter-related 20 | goals: 21 | 22 | - designing new trait-related language features; 23 | - documenting and specifying the semantics of traits in Rust today; and, 24 | - improving the trait solver implementation in rustc. 25 | 26 | [lang team]: https://github.com/rust-lang/lang-team/ 27 | 28 | A big part of this work is transitioning the compiler to use a 29 | [Chalk-style] solver, but along the way we hope to make targeted fixes 30 | to the existing solver where needed. 31 | 32 | [Chalk-style]: https://github.com/rust-lang-nursery/chalk 33 | 34 | # How to participate 35 | 36 | Please take a look at our dedicated repository, [rust-lang/wg-traits] for all the details! 37 | 38 | [rust-lang/wg-traits]: https://github.com/rust-lang/wg-traits 39 | 40 | -------------------------------------------------------------------------------- /content/working-groups/traits/minutes/triage-2019-02-24.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Triage meeting on 2019-02-24 3 | type: docs 4 | --- 5 | # Triage meeting on 2019-02-24 6 | 7 | ## Info 8 | 9 | [Zulip thread.](https://rust-lang.zulipchat.com/#narrow/stream/144729-t-compiler.2Fwg-traits/topic/weekly.20meeting.202019-02-25) 10 | 11 | ## Summary 12 | 13 | The goal of the meeting was to try and figure out, in somewhat more 14 | detail, how we want to organize the traits working group itself. We've 15 | been doing [work on enumerating and triaging the set of things we hope 16 | to do][roadmap], but in this meeting we were basically trying to come 17 | up with some concrete next steps. 18 | 19 | [roadmap]: https://paper.dropbox.com/doc/Traits-Roadmap-sketch--AYTQPvAVQ~p4lyElpr24zoAQAg-m6hucUslp7GihsY3SjNN2 20 | 21 | Ultimately we identified the following next steps: 22 | 23 | - Schedule a meeting to dig into some of the **lifetime problems around 24 | async-await**. This is kind of an "intersecting" issue between async await 25 | and the traigs WG, but seems high priority. (nikomatsakis) 26 | - **Explore the use cases for lazy normalization**, trying to create a summary 27 | of exactly which test cases are causing problems and why, and what it might 28 | take to fix them (can it be done without a full chalk transition?). (nikomatsakis) 29 | - **Explore the use cases for GATs**, trying to find a set of specific examples 30 | from async-await and other contexts. It seems likely that we could do an initial 31 | impl of GATs in rustc without chalk, but would it be enough? (aturon, centril) 32 | - Schedule a meeting to **dig into the chalk transition** -- what is 33 | current status and what are the possible future routes, what should 34 | we be exploring? (nikomatsakis, scalexm) 35 | - Get tests plus FCP around `type Foo = impl Bar` (centril) 36 | 37 | In general, we're trying to get a sense for what the [initial set of 38 | active 'subprojects' will 39 | be](https://rust-lang.zulipchat.com/#narrow/stream/144729-t-compiler.2Fwg-traits/topic/weekly.20meeting.202019-02-25/near/159365173) 40 | (basically, the things that the WG is focusing on). Ideally, each of 41 | them will have a distinct "lead" (or, better, leads!) who is driving 42 | the effort (in collaboration with the rest of us). 43 | 44 | A **likely** set of initial subprojects will contain: 45 | 46 | - some amount of hacking on rustc (GATs, lazy norm) in an effort to "relieve the pressure" 47 | - some amount of hacking on chalk itself and on chalk integration 48 | - some amount of work on defining the semantics of other features like 49 | specialization by lowering them to chalk predicates 50 | 51 | but that is not certain. A key drive is both the set of people we have 52 | involved and also what seems to be highest priority in terms of 53 | unblocking other things within Rust. -------------------------------------------------------------------------------- /layouts/partials/docs/html-head.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /layouts/shortcodes/list-files.html: -------------------------------------------------------------------------------- 1 |
    2 | {{ range sort (readDir (.Get 0)) "Name" "desc" }} 3 | {{ if ne (substr .Name 0 1) "_" }} 4 | {{ $file_name := replace .Name (path.Ext .Name) "" }} 5 |
  • {{ $file_name }}
  • 6 | {{ end }} 7 | {{ end }} 8 |
9 | -------------------------------------------------------------------------------- /templates/README.md: -------------------------------------------------------------------------------- 1 | This directory contains templates for various issues, meeting 2 | proposals, or other such things. 3 | -------------------------------------------------------------------------------- /templates/planning-meeting-blog-post.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: "Planning meeting update" 4 | author: XXX 5 | description: "Planning meeting update" 6 | team: the compiler team 7 | --- 8 | 9 | In our [planning meeting today], the compiler team has scheduled our 10 | next batch of upcoming design meetings: 11 | 12 | * On MONTH, DAY ([calendar event][ce1]), we will discuss XXX. See [rust-lang/compiler-team#XXX] for more details. 13 | * On MONTH, DAY ([calendar event][ce2]), we will discuss XXX. See [rust-lang/compiler-team#XXX] for more details. 14 | * On MONTH, DAY ([calendar event][ce3]), we will discuss XXX. See [rust-lang/compiler-team#XXX] for more details. 15 | 16 | [planning meeting today]: https://zulip-archive.rust-lang.org/238009tcompilermeetings/XXX 17 | [ce1]: https://calendar.google.com/event?XXX 18 | [ce2]: https://calendar.google.com/event?XXX 19 | [ce3]: https://calendar.google.com/event?XXX 20 | [rust-lang/compiler-team#XXX]: https://github.com/rust-lang/compiler-team/issues/XXX 21 | [rust-lang/compiler-team#XXX]: https://github.com/rust-lang/compiler-team/issues/XXX 22 | [rust-lang/compiler-team#XXX]: https://github.com/rust-lang/compiler-team/issues/XXX 23 | 24 | ### Did you know? 25 | 26 | Most weeks, the compiler team has some sort of design meeting. These 27 | meetings take place on Zulip and are open to all. Every 4 weeks, we do 28 | a planning meeting to pick the next few meetings from the list of open 29 | proposals. You can find [more details about how the compiler-team 30 | steering meeting process here][details]. 31 | 32 | [details]: https://rust-lang.github.io/compiler-team/about/steering-meeting/ 33 | [meeting calendar]: https://rust-lang.github.io/compiler-team/#meeting-calendar 34 | [compiler team]: https://www.rust-lang.org/governance/teams/compiler 35 | -------------------------------------------------------------------------------- /templates/steering-meeting-proposal.md: -------------------------------------------------------------------------------- 1 | **Title:** What is the title of your idea? 2 | 3 | **Estimate:** Will this take 1 or 2 meetings? 4 | **Type:** Is this technical or non-technical? 5 | 6 | # Summary 7 | 8 | Summarize briefly the high-level ideas. This should just be a few 9 | bullet points, ideally. 10 | 11 | # Motivation 12 | 13 | What are the goals of this change? What problem are you trying to solve? 14 | 15 | # Details 16 | 17 | Outline the proposal you have in mind -- or, if you are coming with a 18 | problem that you don't know how to solve, then outline the reasons 19 | that it is hard (i.e., what did you try, and why didn't it work?). 20 | 21 | # Challenges 22 | 23 | What are the bits that you expect to be particularly hard? 24 | 25 | # Key design questions 26 | 27 | List out the key design questions. What are the places where there are 28 | choices to be made? Where would you particularly like feedback? 29 | -------------------------------------------------------------------------------- /triagebot.toml: -------------------------------------------------------------------------------- 1 | [major-change] 2 | second_label = "final-comment-period" 3 | meeting_label = "to-announce" 4 | concerns_label = "has-concerns" 5 | open_extra_text = "cc @rust-lang/compiler" 6 | # can be found by looking for the first number in URLs, e.g. https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler 7 | zulip_stream = 233931 8 | zulip_ping = "T-compiler" 9 | 10 | [relabel] 11 | 12 | # Enables `concern`/`resolve` commands. 13 | # Documentation at https://forge.rust-lang.org/triagebot/concern.html 14 | [concern] 15 | labels = ["has-concerns"] 16 | --------------------------------------------------------------------------------