[gambit-list] Steps to bootstrap Git master from Gambit 4.9.3

Marc Feeley feeley at iro.umontreal.ca
Mon Mar 30 05:19:20 EDT 2020


I’m not sure I understand the problem you are having.  I just tried to build from a fresh clone (on linux) and everything built with no issues and the “make check” passed.

Things are more complex if you want to build the system at many different commits without going through the whole bootstrap process every time.  There isn’t a failsafe build method other than the bootstrap process.  However, one approach that works most of the time is to build commit C with a gsc-boot that is the gsc/gsc of commit C-1.  You could add an “if that fails then go through the complete bootstrap process”.  This approach can be extended to do a kind of “bisect”:

- Say that there are N commits since the latest release and that these are numbered from 0 to N (e.g. commit 0 is release 4.9.3 and commit N is HEAD).

- Build the system at commit 0 (this can be done without the full bootstrap because it is a “release” where the .c files match the .scm files).

- To build commit C determine what is the most recent commit before C that has been built (call it B) and in C do “cp B/gsc/gsc gsc-boot;./configure;make clean;make”.

- If that fails and B < C-1, then recursively build commit floor((B+C)/2) and then continue at the previous step.

- Otherwise, use the full bootstrap process, i.e. “rm -rf boot gsc-boot;./configure;make clean;make"

Marc



> On Mar 29, 2020, at 1:52 PM, Lassi Kortela <lassi at lassi.io> wrote:
> 
> Gambit's current Git head cannot be directly bootstrapped using the latest release 4.9.3 due to major internal changes.
> 
> Could someone give a rough estimate for how many steps are needed from 4.9.3 to head, and which pre-release versions from Git to use as the stepping stones in between (e.g. from which month last year)? Is it possible to make do with one "stepping stone" commit (i.e. use Gambit 4.9.3 to bootstrap that commit, then use the Gambit built from that commit to bootstrap HEAD) or are two or more needed?
> 
> I'm trying to build a Docker container tracking Gambit's HEAD at <https://hub.docker.com/u/schemers>, hence the question. But if we figure this out, it could also help use `git bisect` to find the commit where the MacOS poll() problem was mysteriously solved.
> 
> _______________________________________________
> Gambit-list mailing list
> Gambit-list at iro.umontreal.ca
> https://mailman.iro.umontreal.ca/cgi-bin/mailman/listinfo/gambit-list
> 





More information about the Gambit-list mailing list