Boostrapping details

Some portions of the rust toolchain are written in rust itself, so a bootloading stage (stage0) is employed. Relevant examples are the rust compiler itself (rustc ) and the runtime (libstd, rt & co.).

The procedure is:

This poses some issues:

Additional details

We are in a situation a bit different from other compilers that need to be bootstrapped. In particular, many of them are not self-hosted (ie. they can use a C/other-lang stage0) or have a stable language that can be bootstrapped from previously installed compilers or build-essential tools.

Rust also doesn't currently support cross-bootstrapping among different arches, due to some confusion between target and host.

Rust is currently an experimental project. We aim at having it in sid/experimental but (probably) not in jessie, and restricted to main arches (i386/amd64). Once language stability is reached, some of the bootstrapping issues may get alleviated and better arch coverage achieved.

Possible solutions

We currently envisions three possible scenarios. We know that some of them are against policy, infeasible or just plainly wrong. However, we are brainstorming here in order to reach a consensus with ftp-masters.