@@ -144,17 +144,17 @@ built by `build --stage N compiler/rustc` -- that's 'stage N artifacts'
144
144
('the compiler built by stage N').
145
145
146
146
In short, _ stage 0 uses the stage0 compiler to create stage0 artifacts which
147
- will later be uplifted to stage1 _ .
147
+ will later be uplifted to be the stage1 compiler _ .
148
148
149
149
In each stage, two major steps are performed:
150
150
151
151
1 . ` std ` is compiled by the stage N compiler.
152
152
2 . That ` std ` is linked to programs built by the stage N compiler, including
153
- the stage ( N+1) compiler.
153
+ the stage N artifacts (stage ( N+1) compiler) .
154
154
155
- This is somewhat intuitive if one thinks of the stage (N+1) compiler as "just"
155
+ This is somewhat intuitive if one thinks of the stage N artifacts as "just"
156
156
another program we are building with the stage N compiler:
157
- ` build --stage N compiler/rustc ` is linking the stage (N+1) compiler to the ` std `
157
+ ` build --stage N compiler/rustc ` is linking the stage N artifacts to the ` std `
158
158
built by the stage N compiler.
159
159
160
160
Here is a chart of a full build using ` x.py ` :
@@ -174,11 +174,12 @@ Note that there are two `std` libraries in play here:
174
174
2 . The library _ used to compile programs_ with ` stageN/rustc ` , which was
175
175
built by stage N (stage N ` std ` ).
176
176
177
- stage N ` std ` is pretty much necessary for any useful work with the compiler.
177
+ stage N ` std ` is pretty much necessary for any useful work with the stage N compiler.
178
178
Without it, you can only compile programs with ` #![no_core] ` -- not terribly useful!
179
179
180
180
The reason these need to be different is because they aren't necessarily ABI-compatible:
181
- there could be a new layout optimization on nightly that isn't present in ` beta ` .
181
+ there could be a new layout optimizations, changes to MIR, or other changes
182
+ to Rust metadata on nightly that aren't present in ` beta ` .
182
183
183
184
This is also where ` --keep-stage 1 library/std ` comes into play. Since most
184
185
changes to the compiler don't actually change the ABI, once you've produced a
0 commit comments