Bootstrapping

Goals
Minimize prerequisites for installation.

Prerequisites
 A usable Perl installation. Windows users need to install a Windows port or Perl. Have to check options for that. An Internet connection. For downloading binaries and sources. 

Installation process
The first-generation backend is llvm.

It is possible that a future revision of Delta will use its own backend, written in Delta. However, such a backend is currently low-priority.


 * 1) Download  ,
 * 2) run

bootstrap.pl does the following:


 * 1) Download and run  ;
 * 2) if   is successful, download and compile , giving an executable named.

does the following:


 * 1) Check if a suitable version of llvm is already installed.
 * 2) If no suitable llvm is installed, download a precompiled version of the llvm suite if available from delta-project.org.
 * 3) If no such suite is available, download the llvm sources and (try to) compile them.

The llvm suite at delta-project.org contains just the tools necessary to make the Delta tools work.

Alternatively, the Delta tools can use an existing llvm installation.

The end result of a Delta installation is a  command that offers various subcommands.

For bootstrapping, the relevant subcommands are:

    Step 1 above.  Step 2 above.  Step 3 above.  <dd>Step 4 above. <dt> <dd>Step 5 above. </dl>
 * 1) Recompiles the Delta toolchain from Delta sources, using the currently-installed toolchain.
 * 2) Repeats, but uses the freshly compiled toolchain.
 * 3) Compares the results of steps 1 and 2. They should be bit-for-bit identical.
 * 4) If the comparison is successful, replaces the installation with the results of step 2.
 * 5) Deletes the result from step 1.

Implementation status
Concept.