Здравствуйте, Аноним, Вы писали:
А>Объясните кто-нибудь, что такое 2 stage build и в чем там цимес?
Там не просто двух стадийная, там четырехстадийная сборка. Две стадии нужно чтобы компилятор версии n+1 мог собрать сам себя. Остальные статидии — для контроля идентичности кода.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[2]: 2 stage build
От:
Аноним
Дата:
30.12.10 16:45
Оценка:
Здравствуйте, hardcase, Вы писали:
H>Там не просто двух стадийная, там четырехстадийная сборка. Две стадии нужно чтобы компилятор версии n+1 мог собрать сам себя. Остальные статидии — для контроля идентичности кода.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, hardcase, Вы писали:
H>>Там не просто двух стадийная, там четырехстадийная сборка. Две стадии нужно чтобы компилятор версии n+1 мог собрать сам себя. Остальные статидии — для контроля идентичности кода.
А>а можно подробнее, как эта черная магия работает?
Внося изменения в код компилятора необходимо контролировать, что компилятор работает корректно. Для этого используется многостадийная сборка (достаточно 3 стадии).
1) Стадия1 собирается бутстрап-компилятором (компилятор одной из предыдущих ревизий), на ней мы получаем компилятор с кодом, который внесли.
2) Стадия2 собирается компилятором Стадии1, на ней мы получаем компилятор, собранный с привлечением изменений, которые внесли.
3) Стадия3 собирается компилятором Стадии2, тут мы получаем компилятор с изменениями, который гарантированно собирает свой код.
4) Стадия4 собирается компилятором Стадии3, здесь мы проверяем что нет отличий в машинном коде (IL) с компилятором Стадии3
Дополнительный контроль компилятора осуществляют автоматизированные тесты (их можно запускать на любой стадии).