use consistent title capitalization
This commit is contained in:
parent
a4f63f36fc
commit
4a71db13fa
|
|
@ -10,9 +10,9 @@
|
|||
- [How to build and run the compiler](./building/how-to-build-and-run.md)
|
||||
- [Quickstart](./building/quickstart.md)
|
||||
- [Prerequisites](./building/prerequisites.md)
|
||||
- [Suggested Workflows](./building/suggested.md)
|
||||
- [Suggested workflows](./building/suggested.md)
|
||||
- [Distribution artifacts](./building/build-install-distribution-artifacts.md)
|
||||
- [Building Documentation](./building/compiler-documenting.md)
|
||||
- [Building documentation](./building/compiler-documenting.md)
|
||||
- [Rustdoc overview](./rustdoc.md)
|
||||
- [Adding a new target](./building/new-target.md)
|
||||
- [Optimized build](./building/optimized-build.md)
|
||||
|
|
@ -42,11 +42,11 @@
|
|||
- [with the linux perf tool](./profiling/with_perf.md)
|
||||
- [with Windows Performance Analyzer](./profiling/wpa_profiling.md)
|
||||
- [with the Rust benchmark suite](./profiling/with_rustc_perf.md)
|
||||
- [crates.io Dependencies](./crates-io.md)
|
||||
- [crates.io dependencies](./crates-io.md)
|
||||
|
||||
# Contributing to Rust
|
||||
|
||||
- [Contribution Procedures](./contributing.md)
|
||||
- [Contribution procedures](./contributing.md)
|
||||
- [About the compiler team](./compiler-team.md)
|
||||
- [Using Git](./git.md)
|
||||
- [Mastering @rustbot](./rustbot.md)
|
||||
|
|
@ -56,7 +56,7 @@
|
|||
- [Stabilizing Features](./stabilization_guide.md)
|
||||
- [Feature Gates](./feature-gates.md)
|
||||
- [Coding conventions](./conventions.md)
|
||||
- [Procedures for Breaking Changes](./bug-fix-procedure.md)
|
||||
- [Procedures for breaking changes](./bug-fix-procedure.md)
|
||||
- [Using external repositories](./external-repos.md)
|
||||
- [Fuzzing](./fuzzing.md)
|
||||
- [Notification groups](notification-groups/about.md)
|
||||
|
|
@ -88,14 +88,14 @@
|
|||
- [Overview of the compiler](./overview.md)
|
||||
- [The compiler source code](./compiler-src.md)
|
||||
- [Queries: demand-driven compilation](./query.md)
|
||||
- [The Query Evaluation Model in Detail](./queries/query-evaluation-model-in-detail.md)
|
||||
- [The Query Evaluation Model in detail](./queries/query-evaluation-model-in-detail.md)
|
||||
- [Incremental compilation](./queries/incremental-compilation.md)
|
||||
- [Incremental compilation In Detail](./queries/incremental-compilation-in-detail.md)
|
||||
- [Debugging and Testing](./incrcomp-debugging.md)
|
||||
- [Incremental compilation in detail](./queries/incremental-compilation-in-detail.md)
|
||||
- [Debugging and testing](./incrcomp-debugging.md)
|
||||
- [Salsa](./queries/salsa.md)
|
||||
- [Memory Management in Rustc](./memory.md)
|
||||
- [Serialization in Rustc](./serialization.md)
|
||||
- [Parallel Compilation](./parallel-rustc.md)
|
||||
- [Memory management in rustc](./memory.md)
|
||||
- [Serialization in rustc](./serialization.md)
|
||||
- [Parallel compilation](./parallel-rustc.md)
|
||||
- [Rustdoc internals](./rustdoc-internals.md)
|
||||
- [Search](./rustdoc-internals/search.md)
|
||||
- [The `rustdoc` test suite](./rustdoc-internals/rustdoc-test-suite.md)
|
||||
|
|
@ -103,14 +103,14 @@
|
|||
|
||||
- [Prologue](./part-3-intro.md)
|
||||
- [Syntax and the AST](./syntax-intro.md)
|
||||
- [Lexing and Parsing](./the-parser.md)
|
||||
- [Lexing and parsing](./the-parser.md)
|
||||
- [Macro expansion](./macro-expansion.md)
|
||||
- [Name resolution](./name-resolution.md)
|
||||
- [Attributes](./attributes.md)
|
||||
- [`#[test]` Implementation](./test-implementation.md)
|
||||
- [Panic Implementation](./panic-implementation.md)
|
||||
- [AST Validation](./ast-validation.md)
|
||||
- [Feature Gate Checking](./feature-gate-ck.md)
|
||||
- [`#[test]` implementation](./test-implementation.md)
|
||||
- [Panic implementation](./panic-implementation.md)
|
||||
- [AST validation](./ast-validation.md)
|
||||
- [Feature gate checking](./feature-gate-ck.md)
|
||||
- [Lang Items](./lang-items.md)
|
||||
- [The HIR (High-level IR)](./hir.md)
|
||||
- [Lowering AST to HIR](./ast-lowering.md)
|
||||
|
|
@ -129,7 +129,7 @@
|
|||
- [Example: Type checking](./rustc-driver/interacting-with-the-ast.md)
|
||||
- [Example: Getting diagnostics](./rustc-driver/getting-diagnostics.md)
|
||||
- [Remarks on perma-unstable features](./rustc-driver/remarks-on-perma-unstable-features.md)
|
||||
- [Errors and Lints](diagnostics.md)
|
||||
- [Errors and lints](diagnostics.md)
|
||||
- [Diagnostic and subdiagnostic structs](./diagnostics/diagnostic-structs.md)
|
||||
- [Translation](./diagnostics/translation.md)
|
||||
- [`LintStore`](./diagnostics/lintstore.md)
|
||||
|
|
@ -175,14 +175,14 @@
|
|||
- [Type checking](./type-checking.md)
|
||||
- [Method Lookup](./method-lookup.md)
|
||||
- [Variance](./variance.md)
|
||||
- [Coherence Checking](./coherence.md)
|
||||
- [Opaque Types](./opaque-types-type-alias-impl-trait.md)
|
||||
- [Coherence checking](./coherence.md)
|
||||
- [Opaque types](./opaque-types-type-alias-impl-trait.md)
|
||||
- [Inference details](./opaque-types-impl-trait-inference.md)
|
||||
- [Return Position Impl Trait In Trait](./return-position-impl-trait-in-trait.md)
|
||||
- [Region inference restrictions][opaque-infer]
|
||||
- [Const condition checking](./effects.md)
|
||||
- [Pattern and Exhaustiveness Checking](./pat-exhaustive-checking.md)
|
||||
- [Unsafety Checking](./unsafety-checking.md)
|
||||
- [Unsafety checking](./unsafety-checking.md)
|
||||
- [MIR dataflow](./mir/dataflow.md)
|
||||
- [Drop elaboration](./mir/drop-elaboration.md)
|
||||
- [The borrow checker](./borrow_check.md)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# AST Validation
|
||||
# AST validation
|
||||
|
||||
_AST validation_ is a separate AST pass that visits each
|
||||
item in the tree and performs simple checks. This pass
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Procedures for Breaking Changes
|
||||
# Procedures for breaking changes
|
||||
|
||||
<!-- toc -->
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Suggested Workflows
|
||||
# Suggested workflows
|
||||
|
||||
The full bootstrapping process takes quite a while. Here are some suggestions to
|
||||
make your life easier.
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
# Coherence
|
||||
|
||||
> NOTE: this is based on [notes by @lcnr](https://github.com/rust-lang/rust/pull/121848)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Contribution Procedures
|
||||
# Contribution procedures
|
||||
|
||||
<!-- toc -->
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# crates.io Dependencies
|
||||
# crates.io dependencies
|
||||
|
||||
The Rust compiler supports building with some dependencies from `crates.io`.
|
||||
Examples are `log` and `env_logger`.
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Errors and Lints
|
||||
# Errors and lints
|
||||
|
||||
<!-- toc -->
|
||||
|
||||
|
|
@ -772,7 +772,7 @@ store.register_renamed("single_use_lifetime", "single_use_lifetimes");
|
|||
[`store.register_removed`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_lint/struct.LintStore.html#method.register_removed
|
||||
[`rustc_lint::register_builtins`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_lint/fn.register_builtins.html
|
||||
|
||||
### Lint Groups
|
||||
### Lint groups
|
||||
|
||||
Lints can be turned on in groups. These groups are declared in the
|
||||
[`register_builtins`][rbuiltins] function in [`rustc_lint::lib`][builtin]. The
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Feature Gates
|
||||
# Feature gates
|
||||
|
||||
This chapter is intended to provide basic help for adding, removing, and
|
||||
modifying feature gates.
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Debugging and Testing Dependencies
|
||||
# Debugging and testing dependencies
|
||||
|
||||
## Testing the dependency graph
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Memory Management in Rustc
|
||||
# Memory management in rustc
|
||||
|
||||
Generally rustc tries to be pretty careful how it manages memory.
|
||||
The compiler allocates _a lot_ of data structures throughout compilation,
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Panicking in rust
|
||||
# Panicking in Rust
|
||||
|
||||
<!-- toc -->
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Parallel Compilation
|
||||
# Parallel compilation
|
||||
|
||||
<div class="warning">
|
||||
As of <!-- date-check --> November 2024,
|
||||
|
|
@ -28,7 +28,7 @@ The following sections are kept for now but are quite outdated.
|
|||
|
||||
[codegen]: backend/codegen.md
|
||||
|
||||
## Code Generation
|
||||
## Code generation
|
||||
|
||||
During monomorphization the compiler splits up all the code to
|
||||
be generated into smaller chunks called _codegen units_. These are then generated by
|
||||
|
|
@ -38,7 +38,7 @@ occurs in the [`rustc_codegen_ssa::base`] module.
|
|||
|
||||
[`rustc_codegen_ssa::base`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_codegen_ssa/base/index.html
|
||||
|
||||
## Data Structures
|
||||
## Data structures
|
||||
|
||||
The underlying thread-safe data-structures used in the parallel compiler
|
||||
can be found in the [`rustc_data_structures::sync`] module. These data structures
|
||||
|
|
@ -83,7 +83,7 @@ can be accessed directly through `Deref::deref`.
|
|||
[`rustc_data_structures::sync::worker_local`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_data_structures/sync/worker_local/index.html
|
||||
[`WorkerLocal`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_data_structures/sync/worker_local/struct.WorkerLocal.html
|
||||
|
||||
## Parallel Iterator
|
||||
## Parallel iterator
|
||||
|
||||
The parallel iterators provided by the [`rayon`] crate are easy ways to
|
||||
implement parallelism. In the current implementation of the parallel compiler
|
||||
|
|
@ -124,7 +124,7 @@ the parallel iterator function has been used are as follows:
|
|||
|
||||
There are still many loops that have the potential to use parallel iterators.
|
||||
|
||||
## Query System
|
||||
## Query system
|
||||
|
||||
The query model has some properties that make it actually feasible to evaluate
|
||||
multiple queries in parallel without too much effort:
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Incremental Compilation In Detail
|
||||
# Incremental Compilation in detail
|
||||
|
||||
<!-- toc -->
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# The Query Evaluation Model in Detail
|
||||
# The Query Evaluation Model in detail
|
||||
|
||||
<!-- toc -->
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Serialization in Rustc
|
||||
# Serialization in rustc
|
||||
|
||||
rustc has to [serialize] and deserialize various data during compilation.
|
||||
Specifically:
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ with your hand-written one, it will not share a [Symbol][Symbol]. This
|
|||
technique prevents name collision during code generation and is the foundation
|
||||
of Rust's [`macro`] hygiene.
|
||||
|
||||
## Step 2: Harness Generation
|
||||
## Step 2: Harness generation
|
||||
|
||||
Now that our tests are accessible from the root of our crate, we need to do
|
||||
something with them using [`rustc_ast`][ast] generates a module like so:
|
||||
|
|
@ -106,7 +106,7 @@ called [`test`][test] that is part of Rust core, that implements all of the
|
|||
runtime for testing. [`test`][test]'s interface is unstable, so the only stable way
|
||||
to interact with it is through the `#[test]` macro.
|
||||
|
||||
## Step 3: Test Object Generation
|
||||
## Step 3: Test object generation
|
||||
|
||||
If you've written tests in Rust before, you may be familiar with some of the
|
||||
optional attributes available on test functions. For example, a test can be
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Lexing and Parsing
|
||||
# Lexing and parsing
|
||||
|
||||
The very first thing the compiler does is take the program (in UTF-8 Unicode text)
|
||||
and turn it into a data format the compiler can work with more conveniently than strings.
|
||||
|
|
@ -59,7 +59,7 @@ Note that while parsing, we may encounter macro definitions or invocations.
|
|||
We set these aside to be expanded (see [Macro Expansion](./macro-expansion.md)).
|
||||
Expansion itself may require parsing the output of a macro, which may reveal more macros to be expanded, and so on.
|
||||
|
||||
## More on Lexical Analysis
|
||||
## More on lexical analysis
|
||||
|
||||
Code for lexical analysis is split between two crates:
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Unsafety Checking
|
||||
# Unsafety checking
|
||||
|
||||
Certain expressions in Rust can violate memory safety and as such need to be
|
||||
inside an `unsafe` block or function. The compiler will also warn if an unsafe
|
||||
|
|
|
|||
Loading…
Reference in New Issue