Starting and Re-Bootstrapping
The Nit tools are written in Nit, it means you need a Nit compiler in order to compile the Nit compiler.
During the make, the original Nit compiler is compiled from C code (in /c_src).
$ git clone https://github.com/nitlang/nit.git $ cd nit $ make $ cd src $ ./ncall.sh
ncall.sh performs a full bootstrap of the compiler (the original make does only two passes).
More specifically, ncall.sh:
- compiles nitc.nit with the compiler
c_src/nitgso we getsrc/nitc - compiles nitc.nit with
src/nitcand we getsrc/nitc_2 - compiles nitc.nit with
src/nitc_2and we getsrc/nitc_3 - compiles nitc.nit with
src/nitc_3and we getsrc/nitc_4 - compile
examples/hello_world.nitwithsrc/nitc_4and run it to verify thatsrc/nitc_4is minimally functional.
Note that the Nit code of the compiler is written with some legacy Nit: all modern functionalities of Nit are not always usable since it is the primitive compiler (c_src/nitg) that is used.
One of the standard error of the nit tool developer is to break the bootstrap, it means that the Nit compiler is written in an incompatible way with the primitive compiler.
Regularly executing ./ncall.sh helps to check that the bootstrap is not broken.
On some occasions, the C-code in c_src is updated.
The script src/mkcsrc is then used to regenerate a new c_src file by running a special compilation of nitc.