Subject: bug#56584: vala build uses bundled bootstrap binaries

From: Liliana Marie Prikler <[email-masked]>
Date: Wed, 01 Mar 2023 21:59:38 +0100

Am Mittwoch, dem 01.03.2023 um 05:00 +0000 schrieb Adam Faiz:
> > Looking at the vala source code, we can bootstrap the current
> > version from 0.39.5.8, which appears to be between release cycles –
> > 0.39.6 already requires it, whereas 0.39.5 bootstraps from 0.25.1. 
> > I'm not sure how to get 0.25.1 to build from source, though.  The
> > code in vala-bootstrap does not appear helpful, it in fact reads
> > exactly like Vala-compiled Vala.
> > 
> > Cheers
> 
> > I've now hosted my own vala-bootstrap [1], which has valacompiler.c
> > and gee translated to more readable C already.  I'd be happy to
> > take in patches or transfer it to the bootstrappable project.
> > 
> > Cheers
> > 
> > [1] https://gitlab.gnome.org/lilyp/vala-bootstrap
> 
> An easier route to bootstrap Vala could be the archeological
> approach:
> 
> Oldest commit(SVN import): 68f95ffe3aef82aac0fb7bbc65d1faab19902e3c
> Last commit with only C code(except for tests written in Vala): 
> c300d9c3d0af08f628b6c260bdd32f431a47e0f2
> 
> Became self-hosting(it still bootstraps with written C code under
> valac/): 
> 29a1dec53a4661779cc819ede69732c6c1118088
> 
> Removed bootstrappability(removed valac/ directory and uses Vala-
> generated C code under ccode/):
> 35bd6909ba2b8467ba95dfe6360e7a7e227115c8
> 
> Oldest release: VALA_0_0_1
> 
> This information should make it possible to bootstrap Vala.
Provided that we find a version of yacc that doesn't choke on the
grammar files.  Also, we got an uncertain road ahead for Valas before
0.35.1, and then vala 0.39.6 did a dirty bump in which they rely on a
practically unreleased version.

So yes, the archeological approach could work, but I wouldn't
necessarily count on it being "easy".

Cheers