@@ -130,17 +130,17 @@ built by `build --stage N compiler/rustc` -- that's 'stage N artifacts'
130
130
('the compiler built by stage N').
131
131
132
132
In short, _ stage 0 uses the stage0 compiler to create stage0 artifacts which
133
- will later be uplifted to stage1 _ .
133
+ will later be uplifted to be the stage1 compiler _ .
134
134
135
135
In each stage, two major steps are performed:
136
136
137
137
1 . ` std ` is compiled by the stage N compiler.
138
138
2 . That ` std ` is linked to programs built by the stage N compiler, including
139
- the stage ( N+1) compiler.
139
+ the stage N artifacts (stage ( N+1) compiler) .
140
140
141
- This is somewhat intuitive if one thinks of the stage (N+1) compiler as "just"
141
+ This is somewhat intuitive if one thinks of the stage N artifacts as "just"
142
142
another program we are building with the stage N compiler:
143
- ` build --stage N compiler/rustc ` is linking the stage (N+1) compiler to the ` std `
143
+ ` build --stage N compiler/rustc ` is linking the stage N artifacts to the ` std `
144
144
built by the stage N compiler.
145
145
146
146
Here is a chart of a full build using ` x.py ` :
@@ -160,11 +160,12 @@ Note that there are two `std` libraries in play here:
160
160
2 . The library _ used to compile programs_ with ` stageN/rustc ` , which was
161
161
built by stage N (stage N ` std ` ).
162
162
163
- stage N ` std ` is pretty much necessary for any useful work with the compiler.
163
+ stage N ` std ` is pretty much necessary for any useful work with the stage N compiler.
164
164
Without it, you can only compile programs with ` #![no_core] ` -- not terribly useful!
165
165
166
166
The reason these need to be different is because they aren't necessarily ABI-compatible:
167
- there could be a new layout optimization on nightly that isn't present in ` beta ` .
167
+ there could be a new layout optimizations, changes to MIR, or other changes
168
+ to Rust metadata on nightly that aren't present in ` beta ` .
168
169
169
170
This is also where ` --keep-stage 1 library/std ` comes into play. Since most
170
171
changes to the compiler don't actually change the ABI, once you've produced a
0 commit comments