From 32c4f1aa61ec02461f0d4b422537e0dd644cb4ee Mon Sep 17 00:00:00 2001 From: Who? Me?! Date: Wed, 24 Jun 2020 12:47:50 -0500 Subject: [PATCH] Upgrade to mdbook 0.4 and switch to book parts (#764) * upgrade to mdbook 0.4 and switch to book parts * update linkcheck * fix links, update about-this-guide --- .travis.yml | 4 +- src/SUMMARY.md | 249 +++++++++++++++++++++------------------- src/about-this-guide.md | 12 +- src/part-1-intro.md | 7 -- 4 files changed, 141 insertions(+), 131 deletions(-) delete mode 100644 src/part-1-intro.md diff --git a/.travis.yml b/.travis.yml index 634d7387..4a78953c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,8 +11,8 @@ before_install: - MAX_LINE_LENGTH=100 bash ci/check_line_lengths.sh src/**/*.md install: - source ~/.cargo/env || true -- cargo install mdbook --version 0.3.7 -- cargo install mdbook-linkcheck --version 0.5.0 +- cargo install mdbook --version 0.4.0 +- cargo install mdbook-linkcheck --version 0.7.0 script: - git checkout -b ci - git rebase origin/master diff --git a/src/SUMMARY.md b/src/SUMMARY.md index d8091965..f57ba4f2 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -4,128 +4,141 @@ --- -- [Part 1: Building, debugging, and contributing to Rustc](./part-1-intro.md) +# Building and debugging `rustc` + +- [Getting Started](./getting-started.md) +- [How to Build and Run the Compiler](./building/how-to-build-and-run.md) - [Prerequisites](./building/prerequisites.md) - - [Getting Started](./getting-started.md) - - [About the compiler team](./compiler-team.md) - - [How to Build and Run the Compiler](./building/how-to-build-and-run.md) - - [Prerequisites](./building/prerequisites.md) - - [Suggested Workflows](./building/suggested.md) - - [Bootstrapping](./building/bootstrapping.md) - - [Distribution artifacts](./building/build-install-distribution-artifacts.md) - - [Documenting Compiler](./building/compiler-documenting.md) - - [Rustdoc](./rustdoc.md) - - [ctags](./building/ctags.md) - - [The compiler testing framework](./tests/intro.md) - - [Running tests](./tests/running.md) - - [Adding new tests](./tests/adding.md) - - [Using `compiletest` + commands to control test execution](./compiletest.md) - - [Walkthrough: a typical contribution](./walkthrough.md) - - [Bug Fix Procedure](./bug-fix-procedure.md) - - [Implementing new features](./implementing_new_features.md) - - [Stability attributes](./stability.md) - - [Stabilizing Features](./stabilization_guide.md) - - [Debugging the Compiler](./compiler-debugging.md) - - [Profiling the compiler](./profiling.md) - - [with the linux perf tool](./profiling/with_perf.md) - - [Coding conventions](./conventions.md) - - [crates.io Dependencies](./crates-io.md) - - [Errors and Lints](diagnostics.md) - - [`LintStore`](./diagnostics/lintstore.md) - - [Diagnostic Codes](./diagnostics/diagnostic-codes.md) - - [Notification groups](notification-groups/about.md) - - ["Cleanup Crew"](notification-groups/cleanup-crew.md) - - [LLVM](notification-groups/llvm.md) - - [Windows](notification-groups/windows.md) - - [ARM](notification-groups/arm.md) - - [Licenses](./licenses.md) -- [Part 2: High-level Compiler Architecture](./part-2-intro.md) - - [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) - - [Incremental compilation](./queries/incremental-compilation.md) - - [Incremental compilation In Detail](./queries/incremental-compilation-in-detail.md) - - [Debugging and Testing](./incrcomp-debugging.md) - - [Profiling Queries](./queries/profiling.md) - - [Salsa](./salsa.md) - - [Memory Management in Rustc](./memory.md) - - [Parallel Compilation](./parallel-rustc.md) - - [Rustdoc](./rustdoc-internals.md) + - [Suggested Workflows](./building/suggested.md) + - [Bootstrapping](./building/bootstrapping.md) + - [Distribution artifacts](./building/build-install-distribution-artifacts.md) + - [Documenting Compiler](./building/compiler-documenting.md) + - [Rustdoc](./rustdoc.md) + - [ctags](./building/ctags.md) +- [The compiler testing framework](./tests/intro.md) + - [Running tests](./tests/running.md) + - [Adding new tests](./tests/adding.md) + - [Using `compiletest` + commands to control test execution](./compiletest.md) +- [Debugging the Compiler](./compiler-debugging.md) +- [Profiling the compiler](./profiling.md) + - [with the linux perf tool](./profiling/with_perf.md) +- [crates.io Dependencies](./crates-io.md) +- [Errors and Lints](diagnostics.md) + - [`LintStore`](./diagnostics/lintstore.md) + - [Diagnostic Codes](./diagnostics/diagnostic-codes.md) -- [Part 3: Source Code Representations](./part-3-intro.md) - - [Command-line arguments](./cli.md) - - [The Rustc Driver and Interface](./rustc-driver.md) - - [Ex: Type checking through `rustc_interface`](./rustc-driver-interacting-with-the-ast.md) - - [Ex: Getting diagnostics through `rustc_interface`](./rustc-driver-getting-diagnostics.md) - - [Syntax and the AST](./syntax-intro.md) - - [Lexing and Parsing](./the-parser.md) - - [Macro expansion](./macro-expansion.md) - - [Name resolution](./name-resolution.md) - - [`#[test]` Implementation](./test-implementation.md) - - [Panic Implementation](./panic-implementation.md) - - [AST Validation](./ast-validation.md) - - [Feature Gate Checking](./feature-gate-ck.md) - - [The HIR (High-level IR)](./hir.md) - - [Lowering AST to HIR](./lowering.md) - - [Debugging](./hir-debugging.md) - - [The MIR (Mid-level IR)](./mir/index.md) - - [HAIR and MIR construction](./mir/construction.md) - - [MIR visitor and traversal](./mir/visitor.md) - - [MIR passes: getting the MIR for a function](./mir/passes.md) - - [Closure expansion](./closure.md) +# Contributing to Rust -- [Part 4: Analysis](./part-4-intro.md) - - [The `ty` module: representing types](./ty.md) - - [Generics and substitutions](./generics.md) - - [`TypeFolder` and `TypeFoldable`](./ty-fold.md) - - [Generic arguments](./generic_arguments.md) - - [Type inference](./type-inference.md) - - [Trait solving](./traits/resolution.md) - - [Early and Late Bound Parameters](./early-late-bound.md) - - [Higher-ranked trait bounds](./traits/hrtb.md) - - [Caching subtleties](./traits/caching.md) - - [Specialization](./traits/specialization.md) - - [Chalk-based trait solving](./traits/chalk.md) - - [Lowering to logic](./traits/lowering-to-logic.md) - - [Goals and clauses](./traits/goals-and-clauses.md) - - [Canonical queries](./traits/canonical-queries.md) - - [Lowering module in rustc](./traits/lowering-module.md) - - [Type checking](./type-checking.md) - - [Method Lookup](./method-lookup.md) - - [Variance](./variance.md) - - [Opaque Types](./opaque-types-type-alias-impl-trait.md) - - [Pattern and Exhaustiveness Checking](./pat-exhaustive-checking.md) - - [The borrow checker](./borrow_check.md) - - [Tracking moves and initialization](./borrow_check/moves_and_initialization.md) - - [Move paths](./borrow_check/moves_and_initialization/move_paths.md) - - [MIR type checker](./borrow_check/type_check.md) - - [Region inference](./borrow_check/region_inference.md) - - [Constraint propagation](./borrow_check/region_inference/constraint_propagation.md) - - [Lifetime parameters](./borrow_check/region_inference/lifetime_parameters.md) - - [Member constraints](./borrow_check/region_inference/member_constraints.md) - - [Placeholders and universes][pau] - - [Closure constraints](./borrow_check/region_inference/closure_constraints.md) - - [Error reporting](./borrow_check/region_inference/error_reporting.md) - - [Two-phase-borrows](./borrow_check/two_phase_borrows.md) - - [Parameter Environments](./param_env.md) +- [About the compiler team](./compiler-team.md) +- [Walkthrough: a typical contribution](./walkthrough.md) +- [Bug Fix Procedure](./bug-fix-procedure.md) +- [Implementing new features](./implementing_new_features.md) +- [Stability attributes](./stability.md) +- [Stabilizing Features](./stabilization_guide.md) +- [Coding conventions](./conventions.md) +- [Notification groups](notification-groups/about.md) + - ["Cleanup Crew"](notification-groups/cleanup-crew.md) + - [LLVM](notification-groups/llvm.md) + - [Windows](notification-groups/windows.md) + - [ARM](notification-groups/arm.md) +- [Licenses](./licenses.md) -- [Part 5: From MIR to binaries](./part-5-intro.md) - - [The MIR (Mid-level IR)](./mir/index.md) - - [MIR optimizations](./mir/optimizations.md) - - [Debugging](./mir/debugging.md) - - [Constant evaluation](./const-eval.md) - - [miri const evaluator](./miri.md) - - [Monomorphization](./backend/monomorph.md) - - [Lowering MIR](./backend/lowering-mir.md) - - [Code Generation](./backend/codegen.md) - - [Updating LLVM](./backend/updating-llvm.md) - - [Debugging LLVM](./backend/debugging.md) - - [Backend Agnostic Codegen](./backend/backend-agnostic.md) - - [Implicit Caller Location](./codegen/implicit-caller-location.md) - - [Profile-guided Optimization](./profile-guided-optimization.md) - - [Sanitizers Support](./sanitizers.md) - - [Debugging Support in Rust Compiler](./debugging-support-in-rustc.md) +# High-level Compiler Architecture + +- [Prologue](./part-2-intro.md) +- [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) + - [Incremental compilation](./queries/incremental-compilation.md) + - [Incremental compilation In Detail](./queries/incremental-compilation-in-detail.md) + - [Debugging and Testing](./incrcomp-debugging.md) + - [Profiling Queries](./queries/profiling.md) + - [Salsa](./salsa.md) +- [Memory Management in Rustc](./memory.md) +- [Parallel Compilation](./parallel-rustc.md) +- [Rustdoc](./rustdoc-internals.md) + +# Source Code Representations + +- [Prologue](./part-3-intro.md) +- [Command-line arguments](./cli.md) +- [The Rustc Driver and Interface](./rustc-driver.md) + - [Rustdoc](./rustdoc.md) + - [Ex: Type checking through `rustc_interface`](./rustc-driver-interacting-with-the-ast.md) + - [Ex: Getting diagnostics through `rustc_interface`](./rustc-driver-getting-diagnostics.md) +- [Syntax and the AST](./syntax-intro.md) + - [Lexing and Parsing](./the-parser.md) + - [Macro expansion](./macro-expansion.md) + - [Name resolution](./name-resolution.md) + - [`#[test]` Implementation](./test-implementation.md) + - [Panic Implementation](./panic-implementation.md) + - [AST Validation](./ast-validation.md) + - [Feature Gate Checking](./feature-gate-ck.md) +- [The HIR (High-level IR)](./hir.md) + - [Lowering AST to HIR](./lowering.md) + - [Debugging](./hir-debugging.md) +- [The MIR (Mid-level IR)](./mir/index.md) + - [HAIR and MIR construction](./mir/construction.md) + - [MIR visitor and traversal](./mir/visitor.md) + - [MIR passes: getting the MIR for a function](./mir/passes.md) +- [Closure expansion](./closure.md) + +# Analysis + +- [Prologue](./part-4-intro.md) +- [The `ty` module: representing types](./ty.md) + - [Generics and substitutions](./generics.md) + - [`TypeFolder` and `TypeFoldable`](./ty-fold.md) + - [Generic arguments](./generic_arguments.md) +- [Type inference](./type-inference.md) +- [Trait solving](./traits/resolution.md) + - [Early and Late Bound Parameters](./early-late-bound.md) + - [Higher-ranked trait bounds](./traits/hrtb.md) + - [Caching subtleties](./traits/caching.md) + - [Specialization](./traits/specialization.md) + - [Chalk-based trait solving](./traits/chalk.md) + - [Lowering to logic](./traits/lowering-to-logic.md) + - [Goals and clauses](./traits/goals-and-clauses.md) + - [Canonical queries](./traits/canonical-queries.md) + - [Lowering module in rustc](./traits/lowering-module.md) +- [Type checking](./type-checking.md) + - [Method Lookup](./method-lookup.md) + - [Variance](./variance.md) + - [Opaque Types](./opaque-types-type-alias-impl-trait.md) +- [Pattern and Exhaustiveness Checking](./pat-exhaustive-checking.md) +- [The borrow checker](./borrow_check.md) + - [Tracking moves and initialization](./borrow_check/moves_and_initialization.md) + - [Move paths](./borrow_check/moves_and_initialization/move_paths.md) + - [MIR type checker](./borrow_check/type_check.md) + - [Region inference](./borrow_check/region_inference.md) + - [Constraint propagation](./borrow_check/region_inference/constraint_propagation.md) + - [Lifetime parameters](./borrow_check/region_inference/lifetime_parameters.md) + - [Member constraints](./borrow_check/region_inference/member_constraints.md) + - [Placeholders and universes][pau] + - [Closure constraints](./borrow_check/region_inference/closure_constraints.md) + - [Error reporting](./borrow_check/region_inference/error_reporting.md) + - [Two-phase-borrows](./borrow_check/two_phase_borrows.md) +- [Parameter Environments](./param_env.md) + +# MIR to Binaries + +- [Prologue](./part-5-intro.md) +- [The MIR (Mid-level IR)](./mir/index.md) + - [MIR optimizations](./mir/optimizations.md) + - [Debugging](./mir/debugging.md) +- [Constant evaluation](./const-eval.md) + - [miri const evaluator](./miri.md) +- [Monomorphization](./backend/monomorph.md) +- [Lowering MIR](./backend/lowering-mir.md) +- [Code Generation](./backend/codegen.md) + - [Updating LLVM](./backend/updating-llvm.md) + - [Debugging LLVM](./backend/debugging.md) + - [Backend Agnostic Codegen](./backend/backend-agnostic.md) + - [Implicit Caller Location](./codegen/implicit-caller-location.md) +- [Profile-guided Optimization](./profile-guided-optimization.md) +- [Sanitizers Support](./sanitizers.md) +- [Debugging Support in Rust Compiler](./debugging-support-in-rustc.md) --- diff --git a/src/about-this-guide.md b/src/about-this-guide.md index 58b0cb9f..dfe14d22 100644 --- a/src/about-this-guide.md +++ b/src/about-this-guide.md @@ -6,9 +6,12 @@ development. There are six parts to this guide: -1. [Building, Debugging, and Contributing to `rustc`][p1]: Contains information that should be useful no matter how - you are contributing, such as procedures for contribution, building the - compiler, etc. +1. [Building and Debugging to `rustc`][p1]: Contains information that should be + useful no matter how you are contributing, about building, debugging, + profiling, etc. +2. [Contributing to `rustc`][p1-5]: Contains information that should be useful + no matter how you are contributing, about procedures for contribution, + stabilizing features, etc. 2. [High-Level Compiler Architecture][p2]: Discusses the high-level architecture of the compiler and stages of the compile process. 3. [Source Code Representation][p3]: Describes the process of taking raw source code from the user and @@ -19,7 +22,8 @@ There are six parts to this guide: 6. [Appendices][app] at the end with useful reference information. There are a few of these with different information, inluding a glossary. -[p1]: ./part-1-intro.md +[p1]: ./getting-started.md +[p1-5]: ./compiler-team.md [p2]: ./part-2-intro.md [p3]: ./part-3-intro.md [p4]: ./part-4-intro.md diff --git a/src/part-1-intro.md b/src/part-1-intro.md deleted file mode 100644 index 95d2f8fc..00000000 --- a/src/part-1-intro.md +++ /dev/null @@ -1,7 +0,0 @@ -# Part 1: Building, Debugging, and Contributing to `rustc` - -This section of the rustc-dev-guide contains knowledge that should be useful to you -regardless of what part of the compiler you are working on. This includes both -technical info and tips (e.g. how to compile and debug the compiler) and info -about processes in the Rust project (e.g. stabilization and info about the -compiler team).