Stage 1 and stage 0 runtimes should be the same
Sidneys1 opened this issue · comments
The stage 1 runtime (runtime/
) and the stage 0 runtime (bootstrap/stage0/runtime
) have divergent contents, which you can see with diff -bur runtime/ bootstrap/stage0/runtime/
.
As far as I can tell, there's no reason for these not to be identical, and the stage 0 runtime should be removed (and references adjusted to point to the stage 1 runtime) or should be a symbolic link to ../../runtime
.
Stage 0 is a complete snapshot, so it can be out of date (so long as it's capable of building stage 1, an update is not necessary)
Perhaps then it's the documentation that needs to be clearer - if I want to make a change to the runtime, where do I need to make it? How do changes in one affect the other? Do I ever (as a contributor) need to change the stage 0 runtime? How divergent can the two get before it becomes a problem?
The docs could certainly be clearer, yeah.
Generally you don't need to care about the bootstrap compiler unless you want to use the new feature you're adding (or fixing) in the compiler. In that case, you can use meta/update_bootstrap.sh
to update the snapshot.