|
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