]>
Commit | Line | Data |
---|---|---|
a1dfa0c6 XL |
1 | # Summary |
2 | ||
532ac7d7 XL |
3 | [About this guide](./about-this-guide.md) |
4 | ||
6a06907d XL |
5 | [Getting Started](./getting-started.md) |
6 | ||
532ac7d7 XL |
7 | --- |
8 | ||
6a06907d XL |
9 | # Building and debugging `rustc` |
10 | ||
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 | - [Distribution artifacts](./building/build-install-distribution-artifacts.md) | |
064997fb | 15 | - [Building Documentation](./building/compiler-documenting.md) |
6a06907d | 16 | - [Rustdoc overview](./rustdoc.md) |
6a06907d | 17 | - [Adding a new target](./building/new-target.md) |
5099ac24 | 18 | - [Testing the compiler](./tests/intro.md) |
6a06907d | 19 | - [Running tests](./tests/running.md) |
5099ac24 FG |
20 | - [Testing with Docker](./tests/docker.md) |
21 | - [Testing with CI](./tests/ci.md) | |
6a06907d | 22 | - [Adding new tests](./tests/adding.md) |
5099ac24 FG |
23 | - [Compiletest](./tests/compiletest.md) |
24 | - [UI tests](./tests/ui.md) | |
25 | - [Test headers](./tests/headers.md) | |
26 | - [Performance testing](./tests/perf.md) | |
27 | - [Crater](./tests/crater.md) | |
6a06907d | 28 | - [Debugging the Compiler](./compiler-debugging.md) |
c295e0f8 | 29 | - [Using the tracing/logging instrumentation](./tracing.md) |
6a06907d XL |
30 | - [Profiling the compiler](./profiling.md) |
31 | - [with the linux perf tool](./profiling/with_perf.md) | |
32 | - [with Windows Performance Analyzer](./profiling/wpa_profiling.md) | |
33 | - [crates.io Dependencies](./crates-io.md) | |
34 | ||
35 | ||
36 | # Contributing to Rust | |
37 | ||
38 | - [Introduction](./contributing.md) | |
39 | - [About the compiler team](./compiler-team.md) | |
40 | - [Using Git](./git.md) | |
41 | - [Mastering @rustbot](./rustbot.md) | |
42 | - [Walkthrough: a typical contribution](./walkthrough.md) | |
43 | - [Bug Fix Procedure](./bug-fix-procedure.md) | |
44 | - [Implementing new features](./implementing_new_features.md) | |
45 | - [Stability attributes](./stability.md) | |
46 | - [Stabilizing Features](./stabilization_guide.md) | |
47 | - [Feature Gates](./feature-gates.md) | |
48 | - [Coding conventions](./conventions.md) | |
49 | - [Notification groups](notification-groups/about.md) | |
50 | - [ARM](notification-groups/arm.md) | |
51 | - [Cleanup Crew](notification-groups/cleanup-crew.md) | |
52 | - [LLVM](notification-groups/llvm.md) | |
53 | - [RISC-V](notification-groups/risc-v.md) | |
54 | - [Windows](notification-groups/windows.md) | |
55 | - [Licenses](./licenses.md) | |
56 | ||
57 | # High-level Compiler Architecture | |
58 | ||
59 | - [Prologue](./part-2-intro.md) | |
60 | - [Overview of the Compiler](./overview.md) | |
61 | - [The compiler source code](./compiler-src.md) | |
62 | - [Bootstrapping](./building/bootstrapping.md) | |
63 | - [Queries: demand-driven compilation](./query.md) | |
64 | - [The Query Evaluation Model in Detail](./queries/query-evaluation-model-in-detail.md) | |
65 | - [Incremental compilation](./queries/incremental-compilation.md) | |
66 | - [Incremental compilation In Detail](./queries/incremental-compilation-in-detail.md) | |
67 | - [Debugging and Testing](./incrcomp-debugging.md) | |
6a06907d XL |
68 | - [Salsa](./salsa.md) |
69 | - [Memory Management in Rustc](./memory.md) | |
70 | - [Serialization in Rustc](./serialization.md) | |
71 | - [Parallel Compilation](./parallel-rustc.md) | |
72 | - [Rustdoc internals](./rustdoc-internals.md) | |
73 | ||
74 | # Source Code Representation | |
75 | ||
76 | - [Prologue](./part-3-intro.md) | |
77 | - [Command-line arguments](./cli.md) | |
78 | - [The Rustc Driver and Interface](./rustc-driver.md) | |
923072b8 FG |
79 | - [Example: Type checking](./rustc-driver-interacting-with-the-ast.md) |
80 | - [Example: Getting diagnostics](./rustc-driver-getting-diagnostics.md) | |
6a06907d XL |
81 | - [Syntax and the AST](./syntax-intro.md) |
82 | - [Lexing and Parsing](./the-parser.md) | |
83 | - [Macro expansion](./macro-expansion.md) | |
84 | - [Name resolution](./name-resolution.md) | |
85 | - [`#[test]` Implementation](./test-implementation.md) | |
86 | - [Panic Implementation](./panic-implementation.md) | |
87 | - [AST Validation](./ast-validation.md) | |
88 | - [Feature Gate Checking](./feature-gate-ck.md) | |
136023e0 | 89 | - [Lang Items](./lang-items.md) |
6a06907d XL |
90 | - [The HIR (High-level IR)](./hir.md) |
91 | - [Lowering AST to HIR](./lowering.md) | |
92 | - [Debugging](./hir-debugging.md) | |
93 | - [The THIR (Typed High-level IR)](./thir.md) | |
94 | - [The MIR (Mid-level IR)](./mir/index.md) | |
95 | - [MIR construction](./mir/construction.md) | |
96 | - [MIR visitor and traversal](./mir/visitor.md) | |
97 | - [MIR passes: getting the MIR for a function](./mir/passes.md) | |
98 | - [Identifiers in the Compiler](./identifiers.md) | |
99 | - [Closure expansion](./closure.md) | |
5099ac24 | 100 | - [Inline assembly](./asm.md) |
6a06907d XL |
101 | |
102 | # Analysis | |
103 | ||
104 | - [Prologue](./part-4-intro.md) | |
105 | - [The `ty` module: representing types](./ty.md) | |
106 | - [Generics and substitutions](./generics.md) | |
107 | - [`TypeFolder` and `TypeFoldable`](./ty-fold.md) | |
108 | - [Generic arguments](./generic_arguments.md) | |
c295e0f8 | 109 | - [Constants in the type system](./constants.md) |
6a06907d XL |
110 | - [Type inference](./type-inference.md) |
111 | - [Trait solving](./traits/resolution.md) | |
112 | - [Early and Late Bound Parameters](./early-late-bound.md) | |
113 | - [Higher-ranked trait bounds](./traits/hrtb.md) | |
114 | - [Caching subtleties](./traits/caching.md) | |
115 | - [Specialization](./traits/specialization.md) | |
116 | - [Chalk-based trait solving](./traits/chalk.md) | |
dc9dc135 | 117 | - [Lowering to logic](./traits/lowering-to-logic.md) |
6a06907d | 118 | - [Goals and clauses](./traits/goals-and-clauses.md) |
dc9dc135 | 119 | - [Canonical queries](./traits/canonical-queries.md) |
6a06907d XL |
120 | - [Type checking](./type-checking.md) |
121 | - [Method Lookup](./method-lookup.md) | |
122 | - [Variance](./variance.md) | |
123 | - [Opaque Types](./opaque-types-type-alias-impl-trait.md) | |
064997fb | 124 | - [Inference details](./opaque-types-impl-trait-inference.md) |
6a06907d XL |
125 | - [Pattern and Exhaustiveness Checking](./pat-exhaustive-checking.md) |
126 | - [MIR dataflow](./mir/dataflow.md) | |
3c0e092e | 127 | - [Drop elaboration](./mir/drop-elaboration.md) |
6a06907d XL |
128 | - [The borrow checker](./borrow_check.md) |
129 | - [Tracking moves and initialization](./borrow_check/moves_and_initialization.md) | |
130 | - [Move paths](./borrow_check/moves_and_initialization/move_paths.md) | |
131 | - [MIR type checker](./borrow_check/type_check.md) | |
132 | - [Region inference](./borrow_check/region_inference.md) | |
133 | - [Constraint propagation](./borrow_check/region_inference/constraint_propagation.md) | |
134 | - [Lifetime parameters](./borrow_check/region_inference/lifetime_parameters.md) | |
135 | - [Member constraints](./borrow_check/region_inference/member_constraints.md) | |
136 | - [Placeholders and universes][pau] | |
137 | - [Closure constraints](./borrow_check/region_inference/closure_constraints.md) | |
138 | - [Error reporting](./borrow_check/region_inference/error_reporting.md) | |
139 | - [Two-phase-borrows](./borrow_check/two_phase_borrows.md) | |
140 | - [Parameter Environments](./param_env.md) | |
141 | - [Errors and Lints](diagnostics.md) | |
923072b8 FG |
142 | - [Diagnostic and subdiagnostic structs](./diagnostics/diagnostic-structs.md) |
143 | - [Translation](./diagnostics/translation.md) | |
6a06907d | 144 | - [`LintStore`](./diagnostics/lintstore.md) |
923072b8 FG |
145 | - [Diagnostic codes](./diagnostics/diagnostic-codes.md) |
146 | - [Diagnostic items](./diagnostics/diagnostic-items.md) | |
04454e1e | 147 | - [`ErrorGuaranteed`](./diagnostics/error-guaranteed.md) |
6a06907d XL |
148 | |
149 | # MIR to Binaries | |
150 | ||
151 | - [Prologue](./part-5-intro.md) | |
152 | - [MIR optimizations](./mir/optimizations.md) | |
153 | - [Debugging](./mir/debugging.md) | |
154 | - [Constant evaluation](./const-eval.md) | |
2b03887a | 155 | - [Interpreter](./const-eval/interpret.md) |
6a06907d XL |
156 | - [Monomorphization](./backend/monomorph.md) |
157 | - [Lowering MIR](./backend/lowering-mir.md) | |
158 | - [Code Generation](./backend/codegen.md) | |
159 | - [Updating LLVM](./backend/updating-llvm.md) | |
160 | - [Debugging LLVM](./backend/debugging.md) | |
161 | - [Backend Agnostic Codegen](./backend/backend-agnostic.md) | |
162 | - [Implicit Caller Location](./backend/implicit-caller-location.md) | |
163 | - [Libraries and Metadata](./backend/libs-and-metadata.md) | |
164 | - [Profile-guided Optimization](./profile-guided-optimization.md) | |
165 | - [LLVM Source-Based Code Coverage](./llvm-coverage-instrumentation.md) | |
166 | - [Sanitizers Support](./sanitizers.md) | |
167 | - [Debugging Support in the Rust Compiler](./debugging-support-in-rustc.md) | |
a1dfa0c6 XL |
168 | |
169 | --- | |
170 | ||
6a06907d | 171 | [Appendix A: Background topics](./appendix/background.md) |
ba9703b0 XL |
172 | [Appendix B: Glossary](./appendix/glossary.md) |
173 | [Appendix C: Code Index](./appendix/code-index.md) | |
174 | [Appendix D: Compiler Lecture Series](./appendix/compiler-lecture.md) | |
175 | [Appendix E: Bibliography](./appendix/bibliography.md) | |
416331ca XL |
176 | |
177 | [Appendix Z: HumorRust](./appendix/humorust.md) | |
178 | ||
179 | --- | |
180 | ||
dc9dc135 | 181 | [pau]: ./borrow_check/region_inference/placeholders_and_universes.md |