Hi Lars,
On Wed, 2012-07-25 at 18:43 +0100, Lars Wirzenius wrote:
Many programming language implementations are written in that same
language. This creates a bootstrapping problem: how do we
build the compiler or interpreter so we can run it to build itself.
Usually, each language implementation provides a way to do the
bootstrap. For example, the Vala implementation compiles to C (rather
than executable code), and provides the generated C files, which can
then be built into a native executable. Often this is only done for
releases: the generated files are included in the release tar file,
but not in the version control system.
Since Baserock builds from the version control system, this creates
an extra step for us. The general principle for us to solve this is
as follows:
* we create a `baserock/bootstrap` branch in our git repository,
which has all the generated source code, and can be built with
just the usual devel stratum
Colin Walters created a vala-bootstrap¹ module at
git.gnome.org, which
contains Vala with generated C code. This would probably be useful for
baserock as well (instead of maintaining your own repository). You will
need to pass --disable-build-from-vala, though, as generated files in a
git repository cause problems with timestamp-based make.
Jürg
¹
http://git.gnome.org/browse/vala-bootstrap