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)
|
- [How to build and run the compiler](./building/how-to-build-and-run.md)
|
||||||
- [Quickstart](./building/quickstart.md)
|
- [Quickstart](./building/quickstart.md)
|
||||||
- [Prerequisites](./building/prerequisites.md)
|
- [Prerequisites](./building/prerequisites.md)
|
||||||
- [Suggested Workflows](./building/suggested.md)
|
- [Suggested workflows](./building/suggested.md)
|
||||||
- [Distribution artifacts](./building/build-install-distribution-artifacts.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)
|
- [Rustdoc overview](./rustdoc.md)
|
||||||
- [Adding a new target](./building/new-target.md)
|
- [Adding a new target](./building/new-target.md)
|
||||||
- [Optimized build](./building/optimized-build.md)
|
- [Optimized build](./building/optimized-build.md)
|
||||||
|
|
@ -42,11 +42,11 @@
|
||||||
- [with the linux perf tool](./profiling/with_perf.md)
|
- [with the linux perf tool](./profiling/with_perf.md)
|
||||||
- [with Windows Performance Analyzer](./profiling/wpa_profiling.md)
|
- [with Windows Performance Analyzer](./profiling/wpa_profiling.md)
|
||||||
- [with the Rust benchmark suite](./profiling/with_rustc_perf.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
|
# Contributing to Rust
|
||||||
|
|
||||||
- [Contribution Procedures](./contributing.md)
|
- [Contribution procedures](./contributing.md)
|
||||||
- [About the compiler team](./compiler-team.md)
|
- [About the compiler team](./compiler-team.md)
|
||||||
- [Using Git](./git.md)
|
- [Using Git](./git.md)
|
||||||
- [Mastering @rustbot](./rustbot.md)
|
- [Mastering @rustbot](./rustbot.md)
|
||||||
|
|
@ -56,7 +56,7 @@
|
||||||
- [Stabilizing Features](./stabilization_guide.md)
|
- [Stabilizing Features](./stabilization_guide.md)
|
||||||
- [Feature Gates](./feature-gates.md)
|
- [Feature Gates](./feature-gates.md)
|
||||||
- [Coding conventions](./conventions.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)
|
- [Using external repositories](./external-repos.md)
|
||||||
- [Fuzzing](./fuzzing.md)
|
- [Fuzzing](./fuzzing.md)
|
||||||
- [Notification groups](notification-groups/about.md)
|
- [Notification groups](notification-groups/about.md)
|
||||||
|
|
@ -88,14 +88,14 @@
|
||||||
- [Overview of the compiler](./overview.md)
|
- [Overview of the compiler](./overview.md)
|
||||||
- [The compiler source code](./compiler-src.md)
|
- [The compiler source code](./compiler-src.md)
|
||||||
- [Queries: demand-driven compilation](./query.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](./queries/incremental-compilation.md)
|
||||||
- [Incremental compilation In Detail](./queries/incremental-compilation-in-detail.md)
|
- [Incremental compilation in detail](./queries/incremental-compilation-in-detail.md)
|
||||||
- [Debugging and Testing](./incrcomp-debugging.md)
|
- [Debugging and testing](./incrcomp-debugging.md)
|
||||||
- [Salsa](./queries/salsa.md)
|
- [Salsa](./queries/salsa.md)
|
||||||
- [Memory Management in Rustc](./memory.md)
|
- [Memory management in rustc](./memory.md)
|
||||||
- [Serialization in Rustc](./serialization.md)
|
- [Serialization in rustc](./serialization.md)
|
||||||
- [Parallel Compilation](./parallel-rustc.md)
|
- [Parallel compilation](./parallel-rustc.md)
|
||||||
- [Rustdoc internals](./rustdoc-internals.md)
|
- [Rustdoc internals](./rustdoc-internals.md)
|
||||||
- [Search](./rustdoc-internals/search.md)
|
- [Search](./rustdoc-internals/search.md)
|
||||||
- [The `rustdoc` test suite](./rustdoc-internals/rustdoc-test-suite.md)
|
- [The `rustdoc` test suite](./rustdoc-internals/rustdoc-test-suite.md)
|
||||||
|
|
@ -103,14 +103,14 @@
|
||||||
|
|
||||||
- [Prologue](./part-3-intro.md)
|
- [Prologue](./part-3-intro.md)
|
||||||
- [Syntax and the AST](./syntax-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)
|
- [Macro expansion](./macro-expansion.md)
|
||||||
- [Name resolution](./name-resolution.md)
|
- [Name resolution](./name-resolution.md)
|
||||||
- [Attributes](./attributes.md)
|
- [Attributes](./attributes.md)
|
||||||
- [`#[test]` Implementation](./test-implementation.md)
|
- [`#[test]` implementation](./test-implementation.md)
|
||||||
- [Panic Implementation](./panic-implementation.md)
|
- [Panic implementation](./panic-implementation.md)
|
||||||
- [AST Validation](./ast-validation.md)
|
- [AST validation](./ast-validation.md)
|
||||||
- [Feature Gate Checking](./feature-gate-ck.md)
|
- [Feature gate checking](./feature-gate-ck.md)
|
||||||
- [Lang Items](./lang-items.md)
|
- [Lang Items](./lang-items.md)
|
||||||
- [The HIR (High-level IR)](./hir.md)
|
- [The HIR (High-level IR)](./hir.md)
|
||||||
- [Lowering AST to HIR](./ast-lowering.md)
|
- [Lowering AST to HIR](./ast-lowering.md)
|
||||||
|
|
@ -129,7 +129,7 @@
|
||||||
- [Example: Type checking](./rustc-driver/interacting-with-the-ast.md)
|
- [Example: Type checking](./rustc-driver/interacting-with-the-ast.md)
|
||||||
- [Example: Getting diagnostics](./rustc-driver/getting-diagnostics.md)
|
- [Example: Getting diagnostics](./rustc-driver/getting-diagnostics.md)
|
||||||
- [Remarks on perma-unstable features](./rustc-driver/remarks-on-perma-unstable-features.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)
|
- [Diagnostic and subdiagnostic structs](./diagnostics/diagnostic-structs.md)
|
||||||
- [Translation](./diagnostics/translation.md)
|
- [Translation](./diagnostics/translation.md)
|
||||||
- [`LintStore`](./diagnostics/lintstore.md)
|
- [`LintStore`](./diagnostics/lintstore.md)
|
||||||
|
|
@ -175,14 +175,14 @@
|
||||||
- [Type checking](./type-checking.md)
|
- [Type checking](./type-checking.md)
|
||||||
- [Method Lookup](./method-lookup.md)
|
- [Method Lookup](./method-lookup.md)
|
||||||
- [Variance](./variance.md)
|
- [Variance](./variance.md)
|
||||||
- [Coherence Checking](./coherence.md)
|
- [Coherence checking](./coherence.md)
|
||||||
- [Opaque Types](./opaque-types-type-alias-impl-trait.md)
|
- [Opaque types](./opaque-types-type-alias-impl-trait.md)
|
||||||
- [Inference details](./opaque-types-impl-trait-inference.md)
|
- [Inference details](./opaque-types-impl-trait-inference.md)
|
||||||
- [Return Position Impl Trait In Trait](./return-position-impl-trait-in-trait.md)
|
- [Return Position Impl Trait In Trait](./return-position-impl-trait-in-trait.md)
|
||||||
- [Region inference restrictions][opaque-infer]
|
- [Region inference restrictions][opaque-infer]
|
||||||
- [Const condition checking](./effects.md)
|
- [Const condition checking](./effects.md)
|
||||||
- [Pattern and Exhaustiveness Checking](./pat-exhaustive-checking.md)
|
- [Pattern and Exhaustiveness Checking](./pat-exhaustive-checking.md)
|
||||||
- [Unsafety Checking](./unsafety-checking.md)
|
- [Unsafety checking](./unsafety-checking.md)
|
||||||
- [MIR dataflow](./mir/dataflow.md)
|
- [MIR dataflow](./mir/dataflow.md)
|
||||||
- [Drop elaboration](./mir/drop-elaboration.md)
|
- [Drop elaboration](./mir/drop-elaboration.md)
|
||||||
- [The borrow checker](./borrow_check.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
|
_AST validation_ is a separate AST pass that visits each
|
||||||
item in the tree and performs simple checks. This pass
|
item in the tree and performs simple checks. This pass
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# Procedures for Breaking Changes
|
# Procedures for breaking changes
|
||||||
|
|
||||||
<!-- toc -->
|
<!-- toc -->
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# Suggested Workflows
|
# Suggested workflows
|
||||||
|
|
||||||
The full bootstrapping process takes quite a while. Here are some suggestions to
|
The full bootstrapping process takes quite a while. Here are some suggestions to
|
||||||
make your life easier.
|
make your life easier.
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
# Coherence
|
# Coherence
|
||||||
|
|
||||||
> NOTE: this is based on [notes by @lcnr](https://github.com/rust-lang/rust/pull/121848)
|
> 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 -->
|
<!-- toc -->
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# crates.io Dependencies
|
# crates.io dependencies
|
||||||
|
|
||||||
The Rust compiler supports building with some dependencies from `crates.io`.
|
The Rust compiler supports building with some dependencies from `crates.io`.
|
||||||
Examples are `log` and `env_logger`.
|
Examples are `log` and `env_logger`.
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# Errors and Lints
|
# Errors and lints
|
||||||
|
|
||||||
<!-- toc -->
|
<!-- 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
|
[`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
|
[`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
|
Lints can be turned on in groups. These groups are declared in the
|
||||||
[`register_builtins`][rbuiltins] function in [`rustc_lint::lib`][builtin]. 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
|
This chapter is intended to provide basic help for adding, removing, and
|
||||||
modifying feature gates.
|
modifying feature gates.
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# Debugging and Testing Dependencies
|
# Debugging and testing dependencies
|
||||||
|
|
||||||
## Testing the dependency graph
|
## 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.
|
Generally rustc tries to be pretty careful how it manages memory.
|
||||||
The compiler allocates _a lot_ of data structures throughout compilation,
|
The compiler allocates _a lot_ of data structures throughout compilation,
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# Panicking in rust
|
# Panicking in Rust
|
||||||
|
|
||||||
<!-- toc -->
|
<!-- toc -->
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# Parallel Compilation
|
# Parallel compilation
|
||||||
|
|
||||||
<div class="warning">
|
<div class="warning">
|
||||||
As of <!-- date-check --> November 2024,
|
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
|
[codegen]: backend/codegen.md
|
||||||
|
|
||||||
## Code Generation
|
## Code generation
|
||||||
|
|
||||||
During monomorphization the compiler splits up all the code to
|
During monomorphization the compiler splits up all the code to
|
||||||
be generated into smaller chunks called _codegen units_. These are then generated by
|
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
|
[`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
|
The underlying thread-safe data-structures used in the parallel compiler
|
||||||
can be found in the [`rustc_data_structures::sync`] module. These data structures
|
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
|
[`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
|
[`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
|
The parallel iterators provided by the [`rayon`] crate are easy ways to
|
||||||
implement parallelism. In the current implementation of the parallel compiler
|
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.
|
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
|
The query model has some properties that make it actually feasible to evaluate
|
||||||
multiple queries in parallel without too much effort:
|
multiple queries in parallel without too much effort:
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# Incremental Compilation In Detail
|
# Incremental Compilation in detail
|
||||||
|
|
||||||
<!-- toc -->
|
<!-- toc -->
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# The Query Evaluation Model in Detail
|
# The Query Evaluation Model in detail
|
||||||
|
|
||||||
<!-- toc -->
|
<!-- toc -->
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# Serialization in Rustc
|
# Serialization in rustc
|
||||||
|
|
||||||
rustc has to [serialize] and deserialize various data during compilation.
|
rustc has to [serialize] and deserialize various data during compilation.
|
||||||
Specifically:
|
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
|
technique prevents name collision during code generation and is the foundation
|
||||||
of Rust's [`macro`] hygiene.
|
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
|
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:
|
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
|
runtime for testing. [`test`][test]'s interface is unstable, so the only stable way
|
||||||
to interact with it is through the `#[test]` macro.
|
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
|
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
|
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)
|
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.
|
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)).
|
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.
|
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:
|
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
|
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
|
inside an `unsafe` block or function. The compiler will also warn if an unsafe
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue