next up previous contents
Next: 6.5 The allcross script Up: 6. Scripts Previous: 6.3 The installml script   Contents

6.4 The fixpt script

One good test of whether a new version of the compiler is working properly is to see if it compiles to a fixed point. For this, the compiler is compiled $n$ times with the result of the $(k-1)$st compilation being responsible for compiling the $k$th version. A fixed point is reached if two consecutive compilations produce identical results.

The fixpt script automates the task of compiling to a fixed point. It internally uses the sml command for the first compilation and the makeml script with its -rebuild parameter for all subsequent runs. This produces a series of bin-directories $u$.bin. arch- os, $u$1.bin. arch- os, $u$2.bin. arch- os,$\ldots$ and boot-directories $u$.boot. arch- os, $u$1.boot. arch- os, $u$2.boot. arch- os,$\ldots$ where $u$ is a common ``stem'' that is used for naming the whole series.

The fixpt script accepts the following options:

-iter $n$
limits the number of iterations to $n$. The default for $n$ is 3. If no fixed point is found after $n$ iterations, then fixpt terminates with an error message.
-base $u$
selects the ``stem'' $u$ (see above). The default is sml.
-light
causes LIGHT to be defined during compilation. (See the discussion of makeml's -rebuildlight option.)

Failure to reach a fixed point after 2 iterations usually indicates some serious problem within the compiler.


next up previous contents
Next: 6.5 The allcross script Up: 6. Scripts Previous: 6.3 The installml script   Contents
Matthias Blume
2001-07-19