|
4 | 4 |
|
5 | 5 | --- |
6 | 6 |
|
7 | | -- [Part 1: Building, debugging, and contributing to Rustc](./part-1-intro.md) |
| 7 | +# Building and debugging `rustc` |
| 8 | + |
| 9 | +- [Getting Started](./getting-started.md) |
| 10 | +- [How to Build and Run the Compiler](./building/how-to-build-and-run.md) |
8 | 11 | - [Prerequisites](./building/prerequisites.md) |
9 | | - - [Getting Started](./getting-started.md) |
10 | | - - [About the compiler team](./compiler-team.md) |
11 | | - - [How to Build and Run the Compiler](./building/how-to-build-and-run.md) |
12 | | - - [Prerequisites](./building/prerequisites.md) |
13 | | - - [Suggested Workflows](./building/suggested.md) |
14 | | - - [Bootstrapping](./building/bootstrapping.md) |
15 | | - - [Distribution artifacts](./building/build-install-distribution-artifacts.md) |
16 | | - - [Documenting Compiler](./building/compiler-documenting.md) |
17 | | - - [Rustdoc](./rustdoc.md) |
18 | | - - [ctags](./building/ctags.md) |
19 | | - - [The compiler testing framework](./tests/intro.md) |
20 | | - - [Running tests](./tests/running.md) |
21 | | - - [Adding new tests](./tests/adding.md) |
22 | | - - [Using `compiletest` + commands to control test execution](./compiletest.md) |
23 | | - - [Walkthrough: a typical contribution](./walkthrough.md) |
24 | | - - [Bug Fix Procedure](./bug-fix-procedure.md) |
25 | | - - [Implementing new features](./implementing_new_features.md) |
26 | | - - [Stability attributes](./stability.md) |
27 | | - - [Stabilizing Features](./stabilization_guide.md) |
28 | | - - [Debugging the Compiler](./compiler-debugging.md) |
29 | | - - [Profiling the compiler](./profiling.md) |
30 | | - - [with the linux perf tool](./profiling/with_perf.md) |
31 | | - - [Coding conventions](./conventions.md) |
32 | | - - [crates.io Dependencies](./crates-io.md) |
33 | | - - [Errors and Lints](diagnostics.md) |
34 | | - - [`LintStore`](./diagnostics/lintstore.md) |
35 | | - - [Diagnostic Codes](./diagnostics/diagnostic-codes.md) |
36 | | - - [Notification groups](notification-groups/about.md) |
37 | | - - ["Cleanup Crew"](notification-groups/cleanup-crew.md) |
38 | | - - [LLVM](notification-groups/llvm.md) |
39 | | - - [Windows](notification-groups/windows.md) |
40 | | - - [ARM](notification-groups/arm.md) |
41 | | - - [Licenses](./licenses.md) |
42 | | -- [Part 2: High-level Compiler Architecture](./part-2-intro.md) |
43 | | - - [Overview of the Compiler](./overview.md) |
44 | | - - [The compiler source code](./compiler-src.md) |
45 | | - - [Queries: demand-driven compilation](./query.md) |
46 | | - - [The Query Evaluation Model in Detail](./queries/query-evaluation-model-in-detail.md) |
47 | | - - [Incremental compilation](./queries/incremental-compilation.md) |
48 | | - - [Incremental compilation In Detail](./queries/incremental-compilation-in-detail.md) |
49 | | - - [Debugging and Testing](./incrcomp-debugging.md) |
50 | | - - [Profiling Queries](./queries/profiling.md) |
51 | | - - [Salsa](./salsa.md) |
52 | | - - [Memory Management in Rustc](./memory.md) |
53 | | - - [Parallel Compilation](./parallel-rustc.md) |
54 | | - - [Rustdoc](./rustdoc-internals.md) |
55 | | - |
56 | | -- [Part 3: Source Code Representations](./part-3-intro.md) |
57 | | - - [Command-line arguments](./cli.md) |
58 | | - - [The Rustc Driver and Interface](./rustc-driver.md) |
59 | | - - [Ex: Type checking through `rustc_interface`](./rustc-driver-interacting-with-the-ast.md) |
60 | | - - [Ex: Getting diagnostics through `rustc_interface`](./rustc-driver-getting-diagnostics.md) |
61 | | - - [Syntax and the AST](./syntax-intro.md) |
62 | | - - [Lexing and Parsing](./the-parser.md) |
63 | | - - [Macro expansion](./macro-expansion.md) |
64 | | - - [Name resolution](./name-resolution.md) |
65 | | - - [`#[test]` Implementation](./test-implementation.md) |
66 | | - - [Panic Implementation](./panic-implementation.md) |
67 | | - - [AST Validation](./ast-validation.md) |
68 | | - - [Feature Gate Checking](./feature-gate-ck.md) |
69 | | - - [The HIR (High-level IR)](./hir.md) |
70 | | - - [Lowering AST to HIR](./lowering.md) |
71 | | - - [Debugging](./hir-debugging.md) |
72 | | - - [The MIR (Mid-level IR)](./mir/index.md) |
73 | | - - [HAIR and MIR construction](./mir/construction.md) |
74 | | - - [MIR visitor and traversal](./mir/visitor.md) |
75 | | - - [MIR passes: getting the MIR for a function](./mir/passes.md) |
76 | | - - [Closure expansion](./closure.md) |
77 | | - |
78 | | -- [Part 4: Analysis](./part-4-intro.md) |
79 | | - - [The `ty` module: representing types](./ty.md) |
80 | | - - [Generics and substitutions](./generics.md) |
81 | | - - [`TypeFolder` and `TypeFoldable`](./ty-fold.md) |
82 | | - - [Generic arguments](./generic_arguments.md) |
83 | | - - [Type inference](./type-inference.md) |
84 | | - - [Trait solving](./traits/resolution.md) |
85 | | - - [Early and Late Bound Parameters](./early-late-bound.md) |
86 | | - - [Higher-ranked trait bounds](./traits/hrtb.md) |
87 | | - - [Caching subtleties](./traits/caching.md) |
88 | | - - [Specialization](./traits/specialization.md) |
89 | | - - [Chalk-based trait solving](./traits/chalk.md) |
90 | | - - [Lowering to logic](./traits/lowering-to-logic.md) |
91 | | - - [Goals and clauses](./traits/goals-and-clauses.md) |
92 | | - - [Canonical queries](./traits/canonical-queries.md) |
93 | | - - [Lowering module in rustc](./traits/lowering-module.md) |
94 | | - - [Type checking](./type-checking.md) |
95 | | - - [Method Lookup](./method-lookup.md) |
96 | | - - [Variance](./variance.md) |
97 | | - - [Opaque Types](./opaque-types-type-alias-impl-trait.md) |
98 | | - - [Pattern and Exhaustiveness Checking](./pat-exhaustive-checking.md) |
99 | | - - [The borrow checker](./borrow_check.md) |
100 | | - - [Tracking moves and initialization](./borrow_check/moves_and_initialization.md) |
101 | | - - [Move paths](./borrow_check/moves_and_initialization/move_paths.md) |
102 | | - - [MIR type checker](./borrow_check/type_check.md) |
103 | | - - [Region inference](./borrow_check/region_inference.md) |
104 | | - - [Constraint propagation](./borrow_check/region_inference/constraint_propagation.md) |
105 | | - - [Lifetime parameters](./borrow_check/region_inference/lifetime_parameters.md) |
106 | | - - [Member constraints](./borrow_check/region_inference/member_constraints.md) |
107 | | - - [Placeholders and universes][pau] |
108 | | - - [Closure constraints](./borrow_check/region_inference/closure_constraints.md) |
109 | | - - [Error reporting](./borrow_check/region_inference/error_reporting.md) |
110 | | - - [Two-phase-borrows](./borrow_check/two_phase_borrows.md) |
111 | | - - [Parameter Environments](./param_env.md) |
112 | | - |
113 | | -- [Part 5: From MIR to binaries](./part-5-intro.md) |
114 | | - - [The MIR (Mid-level IR)](./mir/index.md) |
115 | | - - [MIR optimizations](./mir/optimizations.md) |
116 | | - - [Debugging](./mir/debugging.md) |
117 | | - - [Constant evaluation](./const-eval.md) |
118 | | - - [miri const evaluator](./miri.md) |
119 | | - - [Monomorphization](./backend/monomorph.md) |
120 | | - - [Lowering MIR](./backend/lowering-mir.md) |
121 | | - - [Code Generation](./backend/codegen.md) |
122 | | - - [Updating LLVM](./backend/updating-llvm.md) |
123 | | - - [Debugging LLVM](./backend/debugging.md) |
124 | | - - [Backend Agnostic Codegen](./backend/backend-agnostic.md) |
125 | | - - [Implicit Caller Location](./codegen/implicit-caller-location.md) |
126 | | - - [Profile-guided Optimization](./profile-guided-optimization.md) |
127 | | - - [Sanitizers Support](./sanitizers.md) |
128 | | - - [Debugging Support in Rust Compiler](./debugging-support-in-rustc.md) |
| 12 | + - [Suggested Workflows](./building/suggested.md) |
| 13 | + - [Bootstrapping](./building/bootstrapping.md) |
| 14 | + - [Distribution artifacts](./building/build-install-distribution-artifacts.md) |
| 15 | + - [Documenting Compiler](./building/compiler-documenting.md) |
| 16 | + - [Rustdoc](./rustdoc.md) |
| 17 | + - [ctags](./building/ctags.md) |
| 18 | +- [The compiler testing framework](./tests/intro.md) |
| 19 | + - [Running tests](./tests/running.md) |
| 20 | + - [Adding new tests](./tests/adding.md) |
| 21 | + - [Using `compiletest` + commands to control test execution](./compiletest.md) |
| 22 | +- [Debugging the Compiler](./compiler-debugging.md) |
| 23 | +- [Profiling the compiler](./profiling.md) |
| 24 | + - [with the linux perf tool](./profiling/with_perf.md) |
| 25 | +- [crates.io Dependencies](./crates-io.md) |
| 26 | +- [Errors and Lints](diagnostics.md) |
| 27 | + - [`LintStore`](./diagnostics/lintstore.md) |
| 28 | + - [Diagnostic Codes](./diagnostics/diagnostic-codes.md) |
| 29 | + |
| 30 | +# Contributing to Rust |
| 31 | + |
| 32 | +- [About the compiler team](./compiler-team.md) |
| 33 | +- [Walkthrough: a typical contribution](./walkthrough.md) |
| 34 | +- [Bug Fix Procedure](./bug-fix-procedure.md) |
| 35 | +- [Implementing new features](./implementing_new_features.md) |
| 36 | +- [Stability attributes](./stability.md) |
| 37 | +- [Stabilizing Features](./stabilization_guide.md) |
| 38 | +- [Coding conventions](./conventions.md) |
| 39 | +- [Notification groups](notification-groups/about.md) |
| 40 | + - ["Cleanup Crew"](notification-groups/cleanup-crew.md) |
| 41 | + - [LLVM](notification-groups/llvm.md) |
| 42 | + - [Windows](notification-groups/windows.md) |
| 43 | + - [ARM](notification-groups/arm.md) |
| 44 | +- [Licenses](./licenses.md) |
| 45 | + |
| 46 | +# High-level Compiler Architecture |
| 47 | + |
| 48 | +- [Prologue](./part-2-intro.md) |
| 49 | +- [Overview of the Compiler](./overview.md) |
| 50 | +- [The compiler source code](./compiler-src.md) |
| 51 | +- [Queries: demand-driven compilation](./query.md) |
| 52 | + - [The Query Evaluation Model in Detail](./queries/query-evaluation-model-in-detail.md) |
| 53 | + - [Incremental compilation](./queries/incremental-compilation.md) |
| 54 | + - [Incremental compilation In Detail](./queries/incremental-compilation-in-detail.md) |
| 55 | + - [Debugging and Testing](./incrcomp-debugging.md) |
| 56 | + - [Profiling Queries](./queries/profiling.md) |
| 57 | + - [Salsa](./salsa.md) |
| 58 | +- [Memory Management in Rustc](./memory.md) |
| 59 | +- [Parallel Compilation](./parallel-rustc.md) |
| 60 | +- [Rustdoc](./rustdoc-internals.md) |
| 61 | + |
| 62 | +# Source Code Representations |
| 63 | + |
| 64 | +- [Prologue](./part-3-intro.md) |
| 65 | +- [Command-line arguments](./cli.md) |
| 66 | +- [The Rustc Driver and Interface](./rustc-driver.md) |
| 67 | + - [Rustdoc](./rustdoc.md) |
| 68 | + - [Ex: Type checking through `rustc_interface`](./rustc-driver-interacting-with-the-ast.md) |
| 69 | + - [Ex: Getting diagnostics through `rustc_interface`](./rustc-driver-getting-diagnostics.md) |
| 70 | +- [Syntax and the AST](./syntax-intro.md) |
| 71 | + - [Lexing and Parsing](./the-parser.md) |
| 72 | + - [Macro expansion](./macro-expansion.md) |
| 73 | + - [Name resolution](./name-resolution.md) |
| 74 | + - [`#[test]` Implementation](./test-implementation.md) |
| 75 | + - [Panic Implementation](./panic-implementation.md) |
| 76 | + - [AST Validation](./ast-validation.md) |
| 77 | + - [Feature Gate Checking](./feature-gate-ck.md) |
| 78 | +- [The HIR (High-level IR)](./hir.md) |
| 79 | + - [Lowering AST to HIR](./lowering.md) |
| 80 | + - [Debugging](./hir-debugging.md) |
| 81 | +- [The MIR (Mid-level IR)](./mir/index.md) |
| 82 | + - [HAIR and MIR construction](./mir/construction.md) |
| 83 | + - [MIR visitor and traversal](./mir/visitor.md) |
| 84 | + - [MIR passes: getting the MIR for a function](./mir/passes.md) |
| 85 | +- [Closure expansion](./closure.md) |
| 86 | + |
| 87 | +# Analysis |
| 88 | + |
| 89 | +- [Prologue](./part-4-intro.md) |
| 90 | +- [The `ty` module: representing types](./ty.md) |
| 91 | + - [Generics and substitutions](./generics.md) |
| 92 | + - [`TypeFolder` and `TypeFoldable`](./ty-fold.md) |
| 93 | + - [Generic arguments](./generic_arguments.md) |
| 94 | +- [Type inference](./type-inference.md) |
| 95 | +- [Trait solving](./traits/resolution.md) |
| 96 | + - [Early and Late Bound Parameters](./early-late-bound.md) |
| 97 | + - [Higher-ranked trait bounds](./traits/hrtb.md) |
| 98 | + - [Caching subtleties](./traits/caching.md) |
| 99 | + - [Specialization](./traits/specialization.md) |
| 100 | + - [Chalk-based trait solving](./traits/chalk.md) |
| 101 | + - [Lowering to logic](./traits/lowering-to-logic.md) |
| 102 | + - [Goals and clauses](./traits/goals-and-clauses.md) |
| 103 | + - [Canonical queries](./traits/canonical-queries.md) |
| 104 | + - [Lowering module in rustc](./traits/lowering-module.md) |
| 105 | +- [Type checking](./type-checking.md) |
| 106 | + - [Method Lookup](./method-lookup.md) |
| 107 | + - [Variance](./variance.md) |
| 108 | + - [Opaque Types](./opaque-types-type-alias-impl-trait.md) |
| 109 | +- [Pattern and Exhaustiveness Checking](./pat-exhaustive-checking.md) |
| 110 | +- [The borrow checker](./borrow_check.md) |
| 111 | + - [Tracking moves and initialization](./borrow_check/moves_and_initialization.md) |
| 112 | + - [Move paths](./borrow_check/moves_and_initialization/move_paths.md) |
| 113 | + - [MIR type checker](./borrow_check/type_check.md) |
| 114 | + - [Region inference](./borrow_check/region_inference.md) |
| 115 | + - [Constraint propagation](./borrow_check/region_inference/constraint_propagation.md) |
| 116 | + - [Lifetime parameters](./borrow_check/region_inference/lifetime_parameters.md) |
| 117 | + - [Member constraints](./borrow_check/region_inference/member_constraints.md) |
| 118 | + - [Placeholders and universes][pau] |
| 119 | + - [Closure constraints](./borrow_check/region_inference/closure_constraints.md) |
| 120 | + - [Error reporting](./borrow_check/region_inference/error_reporting.md) |
| 121 | + - [Two-phase-borrows](./borrow_check/two_phase_borrows.md) |
| 122 | +- [Parameter Environments](./param_env.md) |
| 123 | + |
| 124 | +# MIR to Binaries |
| 125 | + |
| 126 | +- [Prologue](./part-5-intro.md) |
| 127 | +- [The MIR (Mid-level IR)](./mir/index.md) |
| 128 | + - [MIR optimizations](./mir/optimizations.md) |
| 129 | + - [Debugging](./mir/debugging.md) |
| 130 | +- [Constant evaluation](./const-eval.md) |
| 131 | + - [miri const evaluator](./miri.md) |
| 132 | +- [Monomorphization](./backend/monomorph.md) |
| 133 | +- [Lowering MIR](./backend/lowering-mir.md) |
| 134 | +- [Code Generation](./backend/codegen.md) |
| 135 | + - [Updating LLVM](./backend/updating-llvm.md) |
| 136 | + - [Debugging LLVM](./backend/debugging.md) |
| 137 | + - [Backend Agnostic Codegen](./backend/backend-agnostic.md) |
| 138 | + - [Implicit Caller Location](./codegen/implicit-caller-location.md) |
| 139 | +- [Profile-guided Optimization](./profile-guided-optimization.md) |
| 140 | +- [Sanitizers Support](./sanitizers.md) |
| 141 | +- [Debugging Support in Rust Compiler](./debugging-support-in-rustc.md) |
129 | 142 |
|
130 | 143 | --- |
131 | 144 |
|
|
0 commit comments