Skip to content

Commit

Permalink
bootsrapping stages overview list
Browse files Browse the repository at this point in the history
  • Loading branch information
mightyiam committed Jan 14, 2023
1 parent 0dc2b03 commit 7fb608b
Showing 1 changed file with 11 additions and 4 deletions.
15 changes: 11 additions & 4 deletions src/building/bootstrapping.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,13 @@ rustc, then uses it to compile the new compiler.

## Stages of bootstrapping

### Overview

- Stage 0: the pre-compiled compiler
- Stage 1: from current code, by an earlier compiler
- Stage 2: the truly current compiler
- Stage 3: the same-result test

Compiling `rustc` is done in stages. Here's a diagram, adapted from Joshua Nelson's
[talk on bootstrapping][rustconf22-talk] at RustConf 2022, with detailed explanations below.

Expand Down Expand Up @@ -47,7 +54,7 @@ graph TD
classDef with-s1c fill: lightgreen;
```

### Stage 0
### Stage 0: the pre-compiled compiler

The stage0 compiler is usually the current _beta_ `rustc` compiler
and its associated dynamic libraries,
Expand All @@ -61,11 +68,11 @@ a compiler (with its set of dependencies)
and its 'target' or 'object' libraries (`std` and `rustc`).
Both are staged, but in a staggered manner.

### Stage 1
### Stage 1: from current code, by an earlier compiler

The rustc source code is then compiled with the stage0 compiler to produce the stage1 compiler.

### Stage 2
### Stage 2: the truly current compiler

We then rebuild our stage1 compiler with itself to produce the stage2 compiler.

Expand All @@ -88,7 +95,7 @@ For development, you usually only want the `stage1` compiler,
which you can build with `./x.py build library`.
See [Building the Compiler](./how-to-build-and-run.html#building-the-compiler).

### Stage 3
### Stage 3: the same-result test

Stage 3 is optional. To sanity check our new compiler, we
can build the libraries with the stage2 compiler. The result ought
Expand Down

0 comments on commit 7fb608b

Please sign in to comment.