Difference between revisions of "Bootstrapping"

(Added when not bootstrapping section)
Line 6: Line 6:
 
The idea is that when you do a change in the code generation (often for improving the speed) you want to get a compiler that has been compiled with the new code generation to benefit from the changes.
 
The idea is that when you do a change in the code generation (often for improving the speed) you want to get a compiler that has been compiled with the new code generation to benefit from the changes.
  
 +
==When not bootstrapping==
 +
* Changing an header file which will impact the C generated code in  a non-intruisive way, but still requires a new runtime. In that case, no bootstrap is necessary, it suffices to copy the new header and runtime to the current delivery.
 +
* Changing a kernel library class which does not involve a special compiler knowledge (e.g. fixing a routine of STRING).
  
  

Revision as of 04:46, 10 April 2006

Definition

Check out the definition from wikipedia http://en.wikipedia.org/wiki/Bootstrapping to know more about bootstrapping.

Why bootstrapping?

The idea is that when you do a change in the code generation (often for improving the speed) you want to get a compiler that has been compiled with the new code generation to benefit from the changes.

When not bootstrapping

  • Changing an header file which will impact the C generated code in a non-intruisive way, but still requires a new runtime. In that case, no bootstrap is necessary, it suffices to copy the new header and runtime to the current delivery.
  • Changing a kernel library class which does not involve a special compiler knowledge (e.g. fixing a routine of STRING).


Bootstrapping the compiler

Initial compiler

To start the boostrap process you have to start from a working compiler, this is usually one of the released version. Let's call this compiler ec_original.