owned this note
owned this note
Published
Linked with GitHub
---
title: Rustc Dev Guide WG - Check-ins
tags: dev-guide, rustc
---
## 2024-02-01
### Most notable changes
- Document unsafety checking [#1847](https://github.com/rust-lang/rustc-dev-guide/pull/1847)
- Add guide for rustdoc search implementation [#1846](https://github.com/rust-lang/rustc-dev-guide/pull/1846)
- Add a chapter on editions. [#1835](https://github.com/rust-lang/rustc-dev-guide/pull/1835)
- Replace experts map with reviewers from triagebot [#1831](https://github.com/rust-lang/rustc-dev-guide/pull/1831)
- Explain the important concepts of exhaustiveness checking [#1830](https://github.com/rust-lang/rustc-dev-guide/pull/1830)
- Update how-to-build-and-run.md [#1828](https://github.com/rust-lang/rustc-dev-guide/pull/1828)
- Emphasize that the experts map is not up to date [#1826](https://github.com/rust-lang/rustc-dev-guide/pull/1826)
- Update documentation for coverage tests [#1823](https://github.com/rust-lang/rustc-dev-guide/pull/1823)
- add a new type system invariant [#1822](https://github.com/rust-lang/rustc-dev-guide/pull/1822)
- Add explanations on how to run rustc_codegen_gcc tests [#1821](https://github.com/rust-lang/rustc-dev-guide/pull/1821)
- notification groups: add information about how to ping them [#1818](https://github.com/rust-lang/rustc-dev-guide/pull/1818)
- Add some documentation for unsizing [#1817](https://github.com/rust-lang/rustc-dev-guide/pull/1817)
### Most notable WIPs
- Add overview.drawio.svg [#1725](https://github.com/rust-lang/rustc-dev-guide/pull/1725)
- rewrite bootstrapping stages [#1650](https://github.com/rust-lang/rustc-dev-guide/pull/1650)
- new chapter with examples of diagnostic translation PRs [#1621](https://github.com/rust-lang/rustc-dev-guide/pull/1621)
- Improve documentation of MIR queries & passes [#1434](https://github.com/rust-lang/rustc-dev-guide/pull/1434)
- Document inert vs active attributes [#1110](https://github.com/rust-lang/rustc-dev-guide/pull/1110)
## 2023-10-26
### Most notable changes
- Start a chapter about the evolving const effect system [#1808](https://github.com/rust-lang/rustc-dev-guide/pull/1808)
- Document subtle implied bounds issue in RPITIT inference [#1807](https://github.com/rust-lang/rustc-dev-guide/pull/1807)
- update new trait solver docs [#1802](https://github.com/rust-lang/rustc-dev-guide/pull/1802)
- Clarify all the `{AP,RP}IT{,IT}` impl trait types [#1798](https://github.com/rust-lang/rustc-dev-guide/pull/1798)
- Add deep dive document about early/late bound parameters interacting with turbofish [#1794](https://github.com/rust-lang/rustc-dev-guide/pull/1794)
- explain the MIR const vs TY const situation [#1793](https://github.com/rust-lang/rustc-dev-guide/pull/1793)
- Document the `coverage-map` and `run-coverage` test suites [#1790](https://github.com/rust-lang/rustc-dev-guide/pull/1790)
- Add section about building an optimized version of `rustc` [#1787](https://github.com/rust-lang/rustc-dev-guide/pull/1787)
- Add dropck documentation [#1767](https://github.com/rust-lang/rustc-dev-guide/pull/1767)
- Add RPITIT documentation [#1764](https://github.com/rust-lang/rustc-dev-guide/pull/1764)
- Explain more in depth what early and late bound generic parameters are [#1732](https://github.com/rust-lang/rustc-dev-guide/pull/1732)
- add section for normalization with the new solver [#1731](https://github.com/rust-lang/rustc-dev-guide/pull/1731)
- various fixes/improvements to Contributing chapter [#1723](https://github.com/rust-lang/rustc-dev-guide/pull/1723)
- document `./x test --rustc-args` option [#1719](https://github.com/rust-lang/rustc-dev-guide/pull/1719)
### Most notable WIPs
- Update some outdated descriptions of coverage instrumentation [#1809](https://github.com/rust-lang/rustc-dev-guide/pull/1809)
- update some of the diagnostic translations info [#1711](https://github.com/rust-lang/rustc-dev-guide/pull/1711)
- rewrite bootstrapping stages [#1650](https://github.com/rust-lang/rustc-dev-guide/pull/1650)
- new chapter with examples of diagnostic translation PRs [#1621](https://github.com/rust-lang/rustc-dev-guide/pull/1621)
- Add back the `canonicalization` chapter. [#1532](https://github.com/rust-lang/rustc-dev-guide/pull/1532)
- Improve documentation of MIR queries & passes [#1434](https://github.com/rust-lang/rustc-dev-guide/pull/1434)
- Document inert vs active attributes [#1110](https://github.com/rust-lang/rustc-dev-guide/pull/1110)
## 2023-06-29
### Most notable changes
- add stub for proof trees [#1700](https://github.com/rust-lang/rustc-dev-guide/pull/1700)
- Include information about setup defaults in how-to-build guide [#1694](https://github.com/rust-lang/rustc-dev-guide/pull/1694)
- Define more lint terms. [#1681](https://github.com/rust-lang/rustc-dev-guide/pull/1681)
- extend the sixth trait system requirement [#1671](https://github.com/rust-lang/rustc-dev-guide/pull/1671)
### Most notable WIPs
- Improve feature gate and x.py docs [#1701](https://github.com/rust-lang/rustc-dev-guide/pull/1701)
- new chapter with examples of diagnostic translation PRs [#1621](https://github.com/rust-lang/rustc-dev-guide/pull/1621)
- Add back the `canonicalization` chapter. [#1532](https://github.com/rust-lang/rustc-dev-guide/pull/1532)
- Improve documentation of MIR queries & passes [#1434](https://github.com/rust-lang/rustc-dev-guide/pull/1434)
- Document inert vs active attributes [#1110](https://github.com/rust-lang/rustc-dev-guide/pull/1110)
## 2023-04-13
### Most notable changes
- Reorganize "Getting Started" and add a "What should I work on?" section [#1665](https://github.com/rust-lang/rustc-dev-guide/pull/1665)
- Consolidate, deduplicate, and link information for getting started [#1653](https://github.com/rust-lang/rustc-dev-guide/pull/1653)
- Add chapter on fuzzing [#1646](https://github.com/rust-lang/rustc-dev-guide/pull/1646)
- Update rustdoc-internals.md [#1644](https://github.com/rust-lang/rustc-dev-guide/pull/1644)
- Update labels overview [#1639](https://github.com/rust-lang/rustc-dev-guide/pull/1639)
### Most notable WIPs
- docs: document new `suggest-tests` tool [#1660](https://github.com/rust-lang/rustc-dev-guide/pull/1660)
- Add documentation for RUSTC_EMIT [#1635](https://github.com/rust-lang/rustc-dev-guide/pull/1635)
- new chapter with examples of diagnostic translation PRs [#1621](https://github.com/rust-lang/rustc-dev-guide/pull/1621)
- Add back the `canonicalization` chapter. [#1532](https://github.com/rust-lang/rustc-dev-guide/pull/1532)
- Improve documentation of MIR queries & passes [#1434](https://github.com/rust-lang/rustc-dev-guide/pull/1434)
- Document inert vs active attributes [#1110](https://github.com/rust-lang/rustc-dev-guide/pull/1110)
## 2023-03-02
### Most notable changes
- new solver: write canonicalization chapter [#1595](https://github.com/rust-lang/rustc-dev-guide/pull/1595)
- update bootstrap guide [#1583](https://github.com/rust-lang/rustc-dev-guide/pull/1583)
- Add section on comparing types [#1570](https://github.com/rust-lang/rustc-dev-guide/pull/1570)
- extend bootstrap related documentations [#1563](https://github.com/rust-lang/rustc-dev-guide/pull/1563)
### Most notable WIPs
- new chapter with examples of diagnostic translation PRs [#1621](https://github.com/rust-lang/rustc-dev-guide/pull/1621)
- Add back the `canonicalization` chapter. [#1532](https://github.com/rust-lang/rustc-dev-guide/pull/1532)
- Improve documentation of MIR queries & passes [#1434](https://github.com/rust-lang/rustc-dev-guide/pull/1434)
- Document inert vs active attributes [#1110](https://github.com/rust-lang/rustc-dev-guide/pull/1110)
## 2023-01-26
### Most notable changes
- Add a section for how to review code more easily [#1538](https://github.com/rust-lang/rustc-dev-guide/pull/1538)
- Add help for when you update a submodule by accident [#1537](https://github.com/rust-lang/rustc-dev-guide/pull/1537)
- Add more rebasing help [#1536](https://github.com/rust-lang/rustc-dev-guide/pull/1536)
- Add documentation for LLVM KCFI support [#1529](https://github.com/rust-lang/rustc-dev-guide/pull/1529)
- Simplify "how to build and run" section [#1528](https://github.com/rust-lang/rustc-dev-guide/pull/1528)
- Remove TyS [#1526](https://github.com/rust-lang/rustc-dev-guide/pull/1526)
### Most notable WIPs
- wip: extend bootstrap related documentations [#1563](https://github.com/rust-lang/rustc-dev-guide/pull/1563)
- bootsrapping stages overview list [#1555](https://github.com/rust-lang/rustc-dev-guide/pull/1555)
- add section for the new trait solver [#1551](https://github.com/rust-lang/rustc-dev-guide/pull/1551)
- Add Neovim configuration information [#1545](https://github.com/rust-lang/rustc-dev-guide/pull/1545)
- Add back the `canonicalization` chapter. [#1532](https://github.com/rust-lang/rustc-dev-guide/pull/1532)
- Create a chapter for AST validation [#1524](https://github.com/rust-lang/rustc-dev-guide/pull/1524)
- Add a review checklist and suggest reviews as a way to get started with the project [#1463](https://github.com/rust-lang/rustc-dev-guide/pull/1463)
- Improve documentation of MIR queries & passes [#1434](https://github.com/rust-lang/rustc-dev-guide/pull/1434)
- Document inert vs active attributes [#1110](https://github.com/rust-lang/rustc-dev-guide/pull/1110)
## 2022-12-08
### Most notable changes
- Remove TyS [#1526](https://github.com/rust-lang/rustc-dev-guide/pull/1526)
- clarify subtree tool policy [#1518](https://github.com/rust-lang/rustc-dev-guide/pull/1518)
- rewrite the section about regions in the trait solver [#1508](https://github.com/rust-lang/rustc-dev-guide/pull/1508)
### Most notable WIPs
- Create a chapter for AST validation [#1524](https://github.com/rust-lang/rustc-dev-guide/pull/1524)
- Add -Ztrack-diagnostics information [#1506](https://github.com/rust-lang/rustc-dev-guide/pull/1506)
- Add sample CodeLLDB launch.json [#1482](https://github.com/rust-lang/rustc-dev-guide/pull/1482)
- Add a review checklist and suggest reviews as a way to get started with the project [#1463](https://github.com/rust-lang/rustc-dev-guide/pull/1463)
- rewrite bootstrapping stages [#1458](https://github.com/rust-lang/rustc-dev-guide/pull/1458)
- Improve documentation of MIR queries & passes [#1434](https://github.com/rust-lang/rustc-dev-guide/pull/1434)
- Document inert vs active attributes [#1110](https://github.com/rust-lang/rustc-dev-guide/pull/1110)
## 2022-10-27
### Most notable changes
- Update `traits/resolution.md` [#1494](https://github.com/rust-lang/rustc-dev-guide/pull/1494)
- Update rust-analyzer suggestions [#1487](https://github.com/rust-lang/rustc-dev-guide/pull/1487)
### Most notable WIPs
- Update outdated queries section [#1483](https://github.com/rust-lang/rustc-dev-guide/pull/1483)
- Add sample CodeLLDB launch.json [#1482](https://github.com/rust-lang/rustc-dev-guide/pull/1482)
- Add a review checklist and suggest reviews as a way to get started with the project [#1463](https://github.com/rust-lang/rustc-dev-guide/pull/1463)
- rewrite bootstrapping stages [#1458](https://github.com/rust-lang/rustc-dev-guide/pull/1458)
- Improve documentation of MIR queries & passes [#1434](https://github.com/rust-lang/rustc-dev-guide/pull/1434)
- Added detail to codegen section [#1216](https://github.com/rust-lang/rustc-dev-guide/pull/1216)
- Update build instructions for rustdoc [#1117](https://github.com/rust-lang/rustc-dev-guide/pull/1117)
- Document inert vs active attributes [#1110](https://github.com/rust-lang/rustc-dev-guide/pull/1110)
## 2022-09-22
### Most notable changes
- Document multipart_suggestion derive on SessionSubdiagnostic [#1446](https://github.com/rust-lang/rustc-dev-guide/pull/1446)
- Document changes introduced by kind-less SessionDiagnostics [#1440](https://github.com/rust-lang/rustc-dev-guide/pull/1440)
- diagnostics: fix outdated use of string slugs [#1436](https://github.com/rust-lang/rustc-dev-guide/pull/1436)
### Most notable WIPs
- Add a review checklist and suggest reviews as a way to get started with the project [#1463](https://github.com/rust-lang/rustc-dev-guide/pull/1463)
- date-check: updating-llvm [#1424](https://github.com/rust-lang/rustc-dev-guide/pull/1424)
- Added detail to codegen section [#1216](https://github.com/rust-lang/rustc-dev-guide/pull/1216)
- Document inert vs active attributes [#1110](https://github.com/rust-lang/rustc-dev-guide/pull/1110)
## 2022-08-11
### Most notable changes
- Add bootstrapping diagram [#1421](https://github.com/rust-lang/rustc-dev-guide/pull/1421)
- Add gdb tips for symbol-mangling-version [#1417](https://github.com/rust-lang/rustc-dev-guide/pull/1417)
- Add instructions to fix build errors in std after adding a new target [#1412](https://github.com/rust-lang/rustc-dev-guide/pull/1412)
- Add documentation about Microsoft provided debuggers and CodeView/PDB… [#1406](https://github.com/rust-lang/rustc-dev-guide/pull/1406)
- Document how to build a cross-compiler [#1405](https://github.com/rust-lang/rustc-dev-guide/pull/1405)
- sync with hackmd: Inference of opaque types (impl Trait) [#1399](https://github.com/rust-lang/rustc-dev-guide/pull/1399)
- Update the build instructions for the standard library [#1389](https://github.com/rust-lang/rustc-dev-guide/pull/1389)
### Most notable WIPs
- date-check: updating-llvm [#1424](https://github.com/rust-lang/rustc-dev-guide/pull/1424)
- Added detail to codegen section [#1216](https://github.com/rust-lang/rustc-dev-guide/pull/1216)
- Document inert vs active attributes [#1110](https://github.com/rust-lang/rustc-dev-guide/pull/1110)
- Explain the new valtree system for type level constants. [#1097](https://github.com/rust-lang/rustc-dev-guide/pull/1097)
## 2022-07-07
### Most notable changes
- diagnostics: structs with new slug syntax [#1377](https://github.com/rust-lang/rustc-dev-guide/pull/1377)
- diagnostics: more translation and diagnostic derive documentation [#1363](https://github.com/rust-lang/rustc-dev-guide/pull/1363)
- add section on user types [#1359](https://github.com/rust-lang/rustc-dev-guide/pull/1359)
### Most notable WIPs
- Describe Type Alias Impl Trait (TAIT) Inference Algorithm [#1297](https://github.com/rust-lang/rustc-dev-guide/pull/1297)
## 2022-05-26
### Most notable changes
- Add docs for logging of queries. [#1350](https://github.com/rust-lang/rustc-dev-guide/pull/1350)
- mention `WithOptConstParam` [#1346](https://github.com/rust-lang/rustc-dev-guide/pull/1346)
- Update docs for deprecated attribute [#1338](https://github.com/rust-lang/rustc-dev-guide/pull/1338)
### Most notable WIPs
- Update suggested config to expand proc macros [#1341](https://github.com/rust-lang/rustc-dev-guide/pull/1341)
- rewrite bootstrapping stages [#1327](https://github.com/rust-lang/rustc-dev-guide/pull/1327)
- Describe Type Alias Impl Trait (TAIT) Inference Algorithm [#1297](https://github.com/rust-lang/rustc-dev-guide/pull/1297)
- Added detail to codegen section [#1216](https://github.com/rust-lang/rustc-dev-guide/pull/1216)
- Update build instructions for rustdoc [#1117](https://github.com/rust-lang/rustc-dev-guide/pull/1117)
- Document inert vs active attributes [#1110](https://github.com/rust-lang/rustc-dev-guide/pull/1110)
- Explain the new valtree system for type level constants. [#1097](https://github.com/rust-lang/rustc-dev-guide/pull/1097)
## 2022-04-21
### Most notable changes
- sessiondiagnostic: translation [#1333](https://github.com/rust-lang/rustc-dev-guide/pull/1333)
- Add example how lints can be feature gated [#1332](https://github.com/rust-lang/rustc-dev-guide/pull/1332)
- update section for type system constants [#1329](https://github.com/rust-lang/rustc-dev-guide/pull/1329)
### Most notable WIPs
- rewrite bootstrapping stages [#1327](https://github.com/rust-lang/rustc-dev-guide/pull/1327)
- Document ErrorGuaranteed [#1316](https://github.com/rust-lang/rustc-dev-guide/pull/1316)
- Edit "What the compiler does to your code" [#1306](https://github.com/rust-lang/rustc-dev-guide/pull/1306)
- Describe Type Alias Impl Trait (TAIT) Inference Algorithm [#1297](https://github.com/rust-lang/rustc-dev-guide/pull/1297)
- Added detail to codegen section [#1216](https://github.com/rust-lang/rustc-dev-guide/pull/1216)
- Update build instructions for rustdoc [#1117](https://github.com/rust-lang/rustc-dev-guide/pull/1117)
- Document inert vs active attributes [#1110](https://github.com/rust-lang/rustc-dev-guide/pull/1110)
- Explain the new valtree system for type level constants. [#1097](https://github.com/rust-lang/rustc-dev-guide/pull/1097)
## 2022-03-17
### Most notable changes
- Edit glossary [#1302](https://github.com/rust-lang/rustc-dev-guide/pull/1302)
- Edit "Queries" chapter [#1301](https://github.com/rust-lang/rustc-dev-guide/pull/1301)
### Most notable WIPs
- rewrite bootstrapping stages [#1327](https://github.com/rust-lang/rustc-dev-guide/pull/1327)
- Document ErrorGuaranteed [#1316](https://github.com/rust-lang/rustc-dev-guide/pull/1316)
- Edit "What the compiler does to your code" [#1306](https://github.com/rust-lang/rustc-dev-guide/pull/1306)
- Describe Type Alias Impl Trait (TAIT) Inference Algorithm [#1297](https://github.com/rust-lang/rustc-dev-guide/pull/1297)
- Extend debugging llvm section [#1290](https://github.com/rust-lang/rustc-dev-guide/pull/1290)
- Added detail to codegen section [#1216](https://github.com/rust-lang/rustc-dev-guide/pull/1216)
- Document inert vs active attributes [#1110](https://github.com/rust-lang/rustc-dev-guide/pull/1110)
- Explain the new valtree system for type level constants. [#1097](https://github.com/rust-lang/rustc-dev-guide/pull/1097)
## 2022-02-10
### Most notable changes
- Clean up section about FCPs [#1287](https://github.com/rust-lang/rustc-dev-guide/pull/1287)
- Streamline "Getting Started" some more. [#1286](https://github.com/rust-lang/rustc-dev-guide/pull/1286)
### Most notable WIPs
- Describe Type Alias Impl Trait (TAIT) Inference Algorithm [#1297](https://github.com/rust-lang/rustc-dev-guide/pull/1297)
- method-lookup.md improvements [#1296](https://github.com/rust-lang/rustc-dev-guide/pull/1296)
- Extend debugging llvm section [#1290](https://github.com/rust-lang/rustc-dev-guide/pull/1290)
- Added detail to codegen section [#1216](https://github.com/rust-lang/rustc-dev-guide/pull/1216)
- Update build instructions for rustdoc [#1117](https://github.com/rust-lang/rustc-dev-guide/pull/1117)
- Document inert vs active attributes [#1110](https://github.com/rust-lang/rustc-dev-guide/pull/1110)
- Explain the new valtree system for type level constants. [#1097](https://github.com/rust-lang/rustc-dev-guide/pull/1097)
## 2022-01-06
### Most notable changes
- Streamline "Getting Started" [#1279](https://github.com/rust-lang/rustc-dev-guide/pull/1279)
- Update LLVM coverage mapping format version supported by rustc [#1267](https://github.com/rust-lang/rustc-dev-guide/pull/1267)
### Most notable WIPs
- Reorganize and expand the testing chapters. [#1281](https://github.com/rust-lang/rustc-dev-guide/pull/1281)
- Add inline assembly internals [#1266](https://github.com/rust-lang/rustc-dev-guide/pull/1266)
- Added detail to codegen section [#1216](https://github.com/rust-lang/rustc-dev-guide/pull/1216)
- Document inert vs active attributes [#1110](https://github.com/rust-lang/rustc-dev-guide/pull/1110)
- Explain the new valtree system for type level constants. [#1097](https://github.com/rust-lang/rustc-dev-guide/pull/1097)
## 2021-11-24
### Most notable changes
- Make subtree docs an overview and add link to clippy docs for details [#1244](https://github.com/rust-lang/rustc-dev-guide/pull/1244)
- Describe drop elaboration [#1240](https://github.com/rust-lang/rustc-dev-guide/pull/1240)
- Edit bootstrapping chapter [#1239](https://github.com/rust-lang/rustc-dev-guide/pull/1239)
- Add documentation for LLVM CFI support [#1234](https://github.com/rust-lang/rustc-dev-guide/pull/1234)
### Most notable WIPs
- Document more compiletest headers. [#1249](https://github.com/rust-lang/rustc-dev-guide/pull/1249)
- Added detail to codegen section [#1216](https://github.com/rust-lang/rustc-dev-guide/pull/1216)
- Document inert vs active attributes [#1110](https://github.com/rust-lang/rustc-dev-guide/pull/1110)
- Explain the new valtree system for type level constants. [#1097](https://github.com/rust-lang/rustc-dev-guide/pull/1097)
## 2021-10-14
### Most notable changes
- Document tracing awesomeness [#1223](https://github.com/rust-lang/rustc-dev-guide/pull/1223)
- Update sanitizer documentation [#1220](https://github.com/rust-lang/rustc-dev-guide/pull/1220)
- Parallel codegen [#1206](https://github.com/rust-lang/rustc-dev-guide/pull/1206)
- Parallel docs [#1203](https://github.com/rust-lang/rustc-dev-guide/pull/1203)
### Most notable WIPs
- Remove docs on Assemble step [#1233](https://github.com/rust-lang/rustc-dev-guide/pull/1233)
- Added detail to codegen section [#1216](https://github.com/rust-lang/rustc-dev-guide/pull/1216)
- Update build instructions for rustdoc [#1117](https://github.com/rust-lang/rustc-dev-guide/pull/1117)
- Document inert vs active attributes [#1110](https://github.com/rust-lang/rustc-dev-guide/pull/1110)
- Explain the new valtree system for type level constants. [#1097](https://github.com/rust-lang/rustc-dev-guide/pull/1097)
## 2021-09-02
### Most notable changes
- Documenting diagnostic items with their usage and naming conventions [#1192](https://github.com/rust-lang/rustc-dev-guide/pull/1192)
- Expand THIR section with more details [#1183](https://github.com/rust-lang/rustc-dev-guide/pull/1183)
- Add description of -opt-bisect-limit LLVM option [#1182](https://github.com/rust-lang/rustc-dev-guide/pull/1182)
### Most notable WIPs
- `ty::Unevaluated`: dealing with unused substs [#1190](https://github.com/rust-lang/rustc-dev-guide/pull/1190)
- Update build instructions for rustdoc [#1117](https://github.com/rust-lang/rustc-dev-guide/pull/1117)
- Move "ctags" section into "Suggested Workflow" [#1115](https://github.com/rust-lang/rustc-dev-guide/pull/1115)
- Document inert vs active attributes [#1110](https://github.com/rust-lang/rustc-dev-guide/pull/1110)
- Explain the new valtree system for type level constants. [#1097](https://github.com/rust-lang/rustc-dev-guide/pull/1097)
## 2021-07-22
- @**Yuki Okushi|217081** joined the team as a new co-lead, thanks @**Joshua Nelson** for everything you've done!
- Not a lot has happened lately but here's a small set of changes and WIPs ...
### Most notable changes
- Create issues for many TODOs [#1163](https://github.com/rust-lang/rustc-dev-guide/pull/1163)
- Update information on lints [#1154](https://github.com/rust-lang/rustc-dev-guide/pull/1154)
- Document how to mark features as incomplete [#1151](https://github.com/rust-lang/rustc-dev-guide/pull/1151)
- Document how to run unit tests [#1141](https://github.com/rust-lang/rustc-dev-guide/pull/1141)
### Most notable WIPs
- Document inert vs active attributes [#1110](https://github.com/rust-lang/rustc-dev-guide/pull/1110)
- Explain the new valtree system for type level constants. [#1097](https://github.com/rust-lang/rustc-dev-guide/pull/1097)
## 2021-06-10
### Most notable changes
- explain Miri engine vs Miri-the-tool [#1134](https://github.com/rust-lang/rustc-dev-guide/pull/1134)
- Add more information about no_hash query modifier. [#1133](https://github.com/rust-lang/rustc-dev-guide/pull/1133)
- Describe the difference of rustc_lint vs rustc_lint_defs. [#1131](https://github.com/rust-lang/rustc-dev-guide/pull/1131)
- Document -Zunpretty=thir-tree [#1128](https://github.com/rust-lang/rustc-dev-guide/pull/1128)
- Update coverage docs [#1122](https://github.com/rust-lang/rustc-dev-guide/pull/1122)
### Most notable WIPs
- Update for merge of CrateDisambiguator into StableCrateId [#1135](https://github.com/rust-lang/rustc-dev-guide/pull/1135)
- Document lang items [#1119](https://github.com/rust-lang/rustc-dev-guide/pull/1119)
- Move "ctags" section into "Suggested Workflow" [#1115](https://github.com/rust-lang/rustc-dev-guide/pull/1115)
- Document inert vs active attributes [#1110](https://github.com/rust-lang/rustc-dev-guide/pull/1110)
- Explain the new valtree system for type level constants. [#1097](https://github.com/rust-lang/rustc-dev-guide/pull/1097)
- rewrite ty.md [#1057](https://github.com/rust-lang/rustc-dev-guide/pull/1057)
- improve glossary page [#1053](https://github.com/rust-lang/rustc-dev-guide/pull/1053)
## 2021-04-29
### Most notable changes
- Add sample nix shell [#1113](https://github.com/rust-lang/rustc-dev-guide/pull/1113)
- Mention -Z unpretty=mir-cfg for debugging MIR [#1112](https://github.com/rust-lang/rustc-dev-guide/pull/1112)
- Mention CI build of LLVM in build instructions [#1104](https://github.com/rust-lang/rustc-dev-guide/pull/1104)
- Document test input normalization [#1098](https://github.com/rust-lang/rustc-dev-guide/pull/1098)
- Add quickstart for adding a new optimization [#1094](https://github.com/rust-lang/rustc-dev-guide/pull/1094)
- Add Polymorphisation paper [#1093](https://github.com/rust-lang/rustc-dev-guide/pull/1093)
- Suggest using `git range-diff` [#1092](https://github.com/rust-lang/rustc-dev-guide/pull/1092)
### Most notable WIPs
- Update build instructions for rustdoc [#1117](https://github.com/rust-lang/rustc-dev-guide/pull/1117)
- Remove requests or suggestions about rebase and fixup contradictory to rust-highfive bot comment [#1111](https://github.com/rust-lang/rustc-dev-guide/pull/1111)
- Document inert vs active attributes [#1110](https://github.com/rust-lang/rustc-dev-guide/pull/1110)
- Explain the new valtree system for type level constants. [#1097](https://github.com/rust-lang/rustc-dev-guide/pull/1097)
- Add a section on keeping things up to date in the git section [#1031](https://github.com/rust-lang/rustc-dev-guide/pull/1031)
## 2021-03-18
- Continuing to work on a walkthrough of the compiler
- Added support for `-Z unpretty=ast` to the compiler [rust-lang/rust#82304](https://github.com/rust-lang/rust/pull/82304)
- Added support for `-Z unpretty=thir` [rust-lang/rust#82860](https://github.com/rust-lang/rust/pull/82860)
- Working on adding support for `-Z unpretty=hir` to playground [rust-playground#683](https://github.com/integer32llc/rust-playground/pull/683)
- At some point we would like to add `-Z dump-metadata` or similar
### Most notable changes
- Add article on using WPA to profile rustc memory usage on Windows [#1074](https://github.com/rust-lang/rustc-dev-guide/pull/1074)
- Switch from Travis to GHA [#1073](https://github.com/rust-lang/rustc-dev-guide/pull/1073)
- Fix date-check comment formatting [#1066](https://github.com/rust-lang/rustc-dev-guide/pull/1066)
- Add Oxide paper to bibliography [#1056](https://github.com/rust-lang/rustc-dev-guide/pull/1056)
- Use more accurate estimate of generated LLVM IR with llvm-lines [#1049](https://github.com/rust-lang/rustc-dev-guide/pull/1049)
- Update docs from date triage for 2021-02 [#1048](https://github.com/rust-lang/rustc-dev-guide/pull/1048)
### Most notable WIPs
- Fix rust compiler meeting info [#1087](https://github.com/rust-lang/rustc-dev-guide/pull/1087)
- rewrite ty.md [#1057](https://github.com/rust-lang/rustc-dev-guide/pull/1057)
- improve glossary page [#1053](https://github.com/rust-lang/rustc-dev-guide/pull/1053)
- Add a section on keeping things up to date in the git section [#1031](https://github.com/rust-lang/rustc-dev-guide/pull/1031)
- Document lang items [#978](https://github.com/rust-lang/rustc-dev-guide/pull/978)
## 2021-02-04
- 🎉 New members! [@camelid](https://github.com/rust-lang/team/pull/504), [@igaray](https://github.com/rust-lang/team/pull/503) and [@rylev](https://github.com/rust-lang/team/issues/532) joined the WG 🎉
- We are starting to plan on working on a walkthrough section. That would be a section of the guide where we show Rust code and show what the compiler is doing and how is transforming the data.
- There are [41 merged PRs since our last check-in](https://github.com/rust-lang/rustc-dev-guide/pulls?q=is%3Apr+is%3Aclosed+sort%3Aupdated-desc+updated%3A%3E2020-12-10+) and [4 WIP PRs](https://github.com/rust-lang/rustc-dev-guide/pulls)
### Most notable changes
- Document how to stabilize a library feature [#1036](https://github.com/rust-lang/rustc-dev-guide/pull/1036)
- Note that `x.py check` now allows using any stage [#1025](https://github.com/rust-lang/rustc-dev-guide/pull/1025)
- Add a note about UI test entry limitation [#1019](https://github.com/rust-lang/rustc-dev-guide/pull/1019)
- Make instructions for configuring compiler for debug more explicit [#1005](https://github.com/rust-lang/rustc-dev-guide/pull/1005)
- Clarify that `check` uses a different stage than `build` [#999](https://github.com/rust-lang/rustc-dev-guide/pull/999)
- Update logging section and explain `RUSTC_LOG_COLOR` [#997](https://github.com/rust-lang/rustc-dev-guide/pull/997)
- [Fixes #778] Added and reorganized lecture links [#993](https://github.com/rust-lang/rustc-dev-guide/pull/993)
- Document `error-pattern` header [#989](https://github.com/rust-lang/rustc-dev-guide/pull/989)
### Most notable WIPs
- Add chapter on libs and metadata. [#1044](https://github.com/rust-lang/rustc-dev-guide/pull/1044)
- Document lang items [#978](https://github.com/rust-lang/rustc-dev-guide/pull/978)
## 2020-12-09
### Changes
- Adds a dev guide section on Rust Coverage [#985](https://github.com/rust-lang/rustc-dev-guide/pull/985)
- Add notes about running the UI test suite [#977](https://github.com/rust-lang/rustc-dev-guide/pull/977)
- Document what 'sysroot' means [#976](https://github.com/rust-lang/rustc-dev-guide/pull/976)
- Add information about common git issues [#974](https://github.com/rust-lang/rustc-dev-guide/pull/974)
- Improve contributor experience for the dev-guide itself [#973](https://github.com/rust-lang/rustc-dev-guide/pull/973)
- Update bootstrap documentation with the new envvars for RUSTFLAGS [#970](https://github.com/rust-lang/rustc-dev-guide/pull/970)
- Document how to modify feature gates [#968](https://github.com/rust-lang/rustc-dev-guide/pull/968)
- Document when errors should have an associated error code [#967](https://github.com/rust-lang/rustc-dev-guide/pull/967)
- add mir-opt section for optimization fuel [#963](https://github.com/rust-lang/rustc-dev-guide/pull/963)
- Document the SessionDiagnostic derive macro. [#961](https://github.com/rust-lang/rustc-dev-guide/pull/961)
- Add some more examples of using the compiler [#952](https://github.com/rust-lang/rustc-dev-guide/pull/952)
- Add a section on identifiers in the MIR [#951](https://github.com/rust-lang/rustc-dev-guide/pull/951)
- Add a section on data-flow convergence [#950](https://github.com/rust-lang/rustc-dev-guide/pull/950)
- Document `src/tools/x`, an `x.py` wrapper [#945](https://github.com/rust-lang/rustc-dev-guide/pull/945)
### Changes in progress
- Document lang items [#978](https://github.com/rust-lang/rustc-dev-guide/pull/978)
## 2020-10-22
- [75 merged PRs!](https://github.com/rust-lang/rustc-dev-guide/pulls?q=is%3Apr+sort%3Aupdated-desc+updated%3A%3E2020-09-03+)
- Joshua Nelson is now a co-lead of the rustc-dev-guide working group! [team#449](https://github.com/rust-lang/team/pull/449)
### Authors
- **@1c3t3a**
- **@arora-aman**
- **@bugadani**
- **@caass**
- **@camelid**
- **@ecstatic-morse**
- **@follower**
- **@guswynn**
- **@JakobDegen**
- **@JOE1994**
- **@JohnTitor**
- **@Julian-Wollersberger**
- **@jyn514**
- **@LeSeulArtichaut**
- **@macdonaldo**
- **@mark-i-m**
- **@matklad**
- **@mautamu**
- **@mightyiam**
- **@Monadic-Cat**
- **@Nadrieril**
- **@pickfire**
- **@r-52**
- **@richkadel**
- **@spastorino**
- **@Stupremee**
### Major Changes
Some minor changes are omitted for brevity.
#### Contributor-facing changes
- New content
- Explain stages in terms of the compiler currently running (take N+1) [#857](https://github.com/rust-lang/rustc-dev-guide/pull/857)
- Explain pattern exhaustiveness checking [#923](https://github.com/rust-lang/rustc-dev-guide/pull/923)
- Added description of word Scrutinee to the glossary [#921](https://github.com/rust-lang/rustc-dev-guide/pull/921)
- Add a paragraph about reviewers and review latency in Getting Started chapter [#907](https://github.com/rust-lang/rustc-dev-guide/pull/907)
- Document the usage of cargo-llvm-lines and -Ztimings. [#905](https://github.com/rust-lang/rustc-dev-guide/pull/905)
- Add docs for `x.py setup` [#899](https://github.com/rust-lang/rustc-dev-guide/pull/899)
- Add section on using git [#890](https://github.com/rust-lang/rustc-dev-guide/pull/890)
- add suggested workflow to setup nightly rustup for rust/ [#883](https://github.com/rust-lang/rustc-dev-guide/pull/883)
- Describe how to generate graphviz diagrams for dataflow [#882](https://github.com/rust-lang/rustc-dev-guide/pull/882)
- Add Salsa In More Depth lecture [#879](https://github.com/rust-lang/rustc-dev-guide/pull/879)
- Document new way to not build LLVM [#878](https://github.com/rust-lang/rustc-dev-guide/pull/878)
- Add a chapter on useful `@rustbot` commands [#874](https://github.com/rust-lang/rustc-dev-guide/pull/874)
- Add a chapter on all the identifiers used through `rustc` [#872](https://github.com/rust-lang/rustc-dev-guide/pull/872)
- Add information about default stages for x.py [#865](https://github.com/rust-lang/rustc-dev-guide/pull/865)
- Document how to promote a target from cross-compiled to hosted [#860](https://github.com/rust-lang/rustc-dev-guide/pull/860)
- Add section describing git hook functionality [#848](https://github.com/rust-lang/rustc-dev-guide/pull/848)
- Document CGU partioning in case of generic and inline functions [#847](https://github.com/rust-lang/rustc-dev-guide/pull/847)
- Improvements and fixes
- Recommend debug-logging instead of debug [#917](https://github.com/rust--lang/rustc-dev-guide/pull/917)
- Link to the -Zmir-opt-level proposal [#888](https://github.com/rust-lang/rustc-dev-guide/pull/888)
- Don't recommend building the compiler for running tests on the standard library [#887](https://github.com/rust-lang/rustc-dev-guide/pull/887)
- Improve instructions for adding a new test [#881](https://github.com/rust-lang/rustc-dev-guide/pull/881)
- Improve MIR sections in appendix [#880](https://github.com/rust-lang/rustc-dev-guide/pull/880)
- Update prerequisites, with an eye towards windows [#863](https://github.com/rust-lang/rustc-dev-guide/pull/863)
- update docs to refer to the `compiler/` move [#846](https://github.com/rust-lang/rustc-dev-guide/pull/846)
#### Internal changes
- Linkcheck only changed files (except for cron jobs) [#913](https://github.com/rust-lang/rustc-dev-guide/pull/913). This fixes persistent issues with CI spuriously failing.
- Allow anyone to change the status of a PR [#910](https://github.com/rust-lang/rustc-dev-guide/pull/910)
### Changes in progress
- Add a `check-in.sh` script to automate writing markdown links for weekly check-in [#930](https://github.com/rust-lang/rustc-dev-guide/pull/930)
## 2020-09-03
- Rewrite/update compiler source code chapter [#765](https://github.com/rust-lang/rustc-dev-guide/pull/765)
- Document serialization in rustc [#785](https://github.com/rust-lang/rustc-dev-guide/pull/785)
- Expand on the documentation for polymorphization. [#803](https://github.com/rust-lang/rustc-dev-guide/pull/803)
- Add basic steps for a new target [#805](https://github.com/rust-lang/rustc-dev-guide/pull/805)
- Fix misguided suggestions in config.toml [#840](https://github.com/rust-lang/rustc-dev-guide/pull/840)
- Adds documentation to cover spanview output [#844](https://github.com/rust-lang/rustc-dev-guide/pull/844)
- @**mark-i-m**, formerly one of the working group leads, [has stepped down](https://internals.rust-lang.org/t/until-we-meet-again/12985) on their Rust involvement. @**mark-i-m** was a great co-lead with me and an awesome person to hang with. The work they've done is invaluable and it will be hugely missed.
### Changes in progress
- Explain stages (take N) [#843](https://github.com/rust-lang/rustc-dev-guide/pull/843). This is an attempt by @jynelson to explain stages better for new contributors. However, after some discussion on the PR, it's not clear that the new explanation is better than the existing '`--stage N` runs `stageN/rustc`'. Opinions welcome!
- Name `rustbuild` instead of saying 'the bootstrap binary' [#808](https://github.com/rust-lang/rustc-dev-guide/pull/808). This needs a consensus that it's actually useful terminology.
- Fix dep-graph-caller-callee test location [#845](https://github.com/rust-lang/rustc-dev-guide/pull/845)
- Update error codes to match the current implementation [#841](https://github.com/rust-lang/rustc-dev-guide/pull/841)
## 2020-07-16
[68 merged PRs!](https://github.com/rust-lang/rustc-dev-guide/pulls?page=1&q=closed%3A%3E%3D2020-05-28) In fact, there was so much stuff, that I ran out of time to curate it... here is a prefix of the list of PRs (heavily biased towards earlier PRs); there are so many people that deserve credit:
- Aaron Hill
- Andy Russell
- Bastian Kauschke
- Drew Youngwerth
- Eric Huss
- Florian Gilcher
- Ivan Veselov
- Joshua Nelson
- LeSeulArtichaut
- mark-i-m
- Matt Kraai
- Nadrieril
- Niko Matsakis
- pierwill
- Ralf Jung
- Santiago Pastorino
- Takayuki Nakata
- ThePuzzlemaker
- Tomasz Miąsko
- Tom Eccles
- Yuki Okushi
Accomplished:
- Tons of new content:
- [Getting Started Guide](https://github.com/rust-lang/rustc-dev-guide/pull/731) + many improvements
- Type-system [697]
- Diagnostics [716]
- Building and testing `rustc` [723], [727], [728], [729], and many more
- Writing tests [724], [725], [749]
- Updates to various current content:
- [Lints](https://github.com/rust-lang/rustc-dev-guide/pull/713)
- [`TyKind::Error`](https://github.com/rust-lang/rustc-dev-guide/pull/715)
- [Coding Conventions](https://github.com/rust-lang/rustc-dev-guide/pull/735)
- Notification Groups [739], [740], and more
- Some reorganization:
- [753], [752], [763], [764], [767], [768], [773]
[697]: https://github.com/rust-lang/rustc-dev-guide/pull/697
[716]: https://github.com/rust-lang/rustc-dev-guide/pull/716
[723]: https://github.com/rust-lang/rustc-dev-guide/pull/723
[727]: https://github.com/rust-lang/rustc-dev-guide/pull/727
[728]: https://github.com/rust-lang/rustc-dev-guide/pull/728
[729]: https://github.com/rust-lang/rustc-dev-guide/pull/729
[724]: https://github.com/rust-lang/rustc-dev-guide/pull/724
[725]: https://github.com/rust-lang/rustc-dev-guide/pull/725
[749]: https://github.com/rust-lang/rustc-dev-guide/pull/749
[739]: https://github.com/rust-lang/rustc-dev-guide/pull/739
[740]: https://github.com/rust-lang/rustc-dev-guide/pull/740
[753]: https://github.com/rust-lang/rustc-dev-guide/pull/753
[752]: https://github.com/rust-lang/rustc-dev-guide/pull/752
[763]: https://github.com/rust-lang/rustc-dev-guide/pull/763
[764]: https://github.com/rust-lang/rustc-dev-guide/pull/764
[767]: https://github.com/rust-lang/rustc-dev-guide/pull/767
[768]: https://github.com/rust-lang/rustc-dev-guide/pull/768
[773]: https://github.com/rust-lang/rustc-dev-guide/pull/773
## 2020-05-28
Accomplished:
- [Overview chapter is now merged](https://github.com/rust-lang/rustc-dev-guide/pull/633)
- [You can view it here](https://rustc-dev-guide.rust-lang.org/overview.html)
- Resolved tech debt:
- [Added some notes from estabank about diagnostics](https://github.com/rust-lang/rustc-dev-guide/pull/524)
- [Added more notes from ehuss about diagnostics](https://github.com/rust-lang/rustc-dev-guide/pull/716)
- [Added some guidelines from ehuss on CLI flags](https://github.com/rust-lang/rustc-dev-guide/pull/717)
- [Clean up the trait-solving chapters](https://github.com/rust-lang/rustc-dev-guide/pull/679)
- [Make it possible to link to specific items in the glossary](https://github.com/rust-lang/rustc-dev-guide/pull/662)
- [Finally finished the macro expansion chapter from discussions with petrochenkov (this is a long-standing hole)](https://github.com/rust-lang/rustc-dev-guide/pull/683)
- [Added some (limited) notes about parallel compilation](https://github.com/rust-lang/rustc-dev-guide/pull/695)
- [Added and updated notes on `rustc_interface` (thanks to georgewfraser)](https://rustc-dev-guide.rust-lang.org/rustc-driver.html)
- [Resolved some old TODOs around the type system](https://github.com/rust-lang/rustc-dev-guide/pull/697)
- [Added "Debugging rustc type layouts" (thanks Ralf!)](https://github.com/rust-lang/rustc-dev-guide/pull/720)
- [39 merged PRs](https://github.com/rust-lang/rustc-dev-guide/pulls?page=1&q=is%3Aclosed+closed%3A%3E2020-04-08)
- [15 closed issues (a few were very long-standing)](https://github.com/rust-lang/rustc-dev-guide/issues?q=is%3Aissue+is%3Aclosed+closed%3A%3E2020-04-08+)
We've also had a few discussions to flesh out the guide vs forge content.
Next steps:
- Focus on triaging issues in the repo for a full sprint
- Try to close/consolidate old issues, resolve low-hanging fruit
- Do a second pass about the organization of the guide
- Re-visit part 1, decide what we want to keep vs the forge vs the compiler-team repo
- Want to have a "Getting started" section at the front that has relatively straight-forward list of commands to do common things; move some content there from CONTRIBUTING.md
- Thinking about an instrospection section that contains debugging/profiling/walkthrough/tools/etc.
## 2020-04-08
Accomplished
- Lots of progress on Overview chapter, nearing mergable version
- Reorganized the guide in a more logical way
- Renamed the wg to wg-rustc-dev-guide
- Started an initial list of PRs for the cookbook-style appendix
- still needs curation
- https://hackmd.io/xD2fQk_cT_ui6Nt40jHPwA?view
- The rustc-dev-guide has recently gotten a bunch of great new content
- anp added a very well-written chapter about `#[track_caller]` and implicit caller location
- georgewfraser added some new content about using the `rustc_interface`, replacing our outdated `stupid-stats` appendix (which was taken from nrc's fantastic blog post)
- michaelwoerister added content about query attributes, which was previously a grand mystery to me
- arlosi added content about hashes in binaries
- Fixed toolstate (at long last)
Next steps:
- Finish work on Overview chapter
- WIP: chrissimpkins has done a lot of work to collect more info about lexing and parsing from centril, petrochenkov, and matklad to improve those chapters
- Continue on cookbook-style appendix for PRs that help understanding some parts of the compiler
- Continue work on filling in holes for backend chapters
## 2020-03-26
Accomplished:
- Draft of Overview chapter, include a high-level walkthrough of what the compiler does to your code
- Draft PR: https://github.com/rust-lang/rustc-dev-guide/pull/633
- Blog post to solicit feedback: https://github.com/rust-lang/blog.rust-lang.org/pull/551
- Renamed rustc-guide to rustc-dev-guide
- Blog post: https://blog.rust-lang.org/inside-rust/2020/03/13/rename-rustc-guide.html
- Went through nagisa's notes on backend and transcribed into a chapter about the compiler backend: https://rustc-dev-guide.rust-lang.org/backend/backend.html
- Still needs filling out a bit more
Next steps:
- Continue work on Overview chapter
- Decided to collect a document with holes in the current backend chapters (there are a lot) and fill them in incrementally, since it seems all of the backend experts are not available for a lecture/extended discussion.
- HackMd to collect holes: https://hackmd.io/fTJHEkb5TXuKh2ClBL_c_w
- Do a cookbook-style appendix for PRs that help understanding some parts of the compiler
- May try to rename the WG to better reflect purpose
- Possibility of filling out the parser chapter better with Centril (pending their availability).
- Will try to improve the organization of the guide by reordering chapters.
## 2019-12-05
Acomplished:
- We have a [chapter about Salsa](https://github.com/rust-lang/rustc-guide/pull/529), it was summarized from this [lecture](https://www.youtube.com/watch?v=_muY4HjSqVw)
- We have a [PR for the ty chapter PR](https://github.com/rust-lang/rustc-guide/pull/530), it summarizes [this lecture](https://www.youtube.com/watch?v=c01TsOsr3-c)
- We had a [planning meeting](https://rust-lang.zulipchat.com/#narrow/stream/196385-t-compiler.2Fwg-learning/topic/planning.20meeting), where we come up with a [document with ideas and next steps](https://hackmd.io/iamkyR_QTdSIdGjYQX_XjQ) for the rustc-guide. We've basically defined kind of a roadmap and a way to work towards those goals.
Next steps:
- Start writing an Overview chapter
- Organize a lecture about codegen mir -> llvm IR (@nagisa, maybe?)
- Organize a lecture about LLVM (@Alex Crichton, maybe?)
- Organize a lecture about monomorphization/type memory layout (@oli, maybe?)