[gambit-list] [ANN] Gambit-C v4.2.1 released

Marc Feeley feeley at iro.umontreal.ca
Fri Feb 8 09:32:48 EST 2008


On 7-Feb-08, at 10:19 AM, Bradley Lucier wrote:

> Marc:
>
> How does one update the old sources with mercurial and rebuild  
> gambit instead of just downloading the newest tarball?
>
> Try this:
>
> download 4.2.0
> make bootstrap
> hg pull
> hg update
> make
>
> It fails.  It doesn't seem to be much use to have version control  
> when every 0.0.1 update causes you to have to re-download the tarball.

It fails because Gambit is bootstrapped using Gambit.  So you can't  
update in one operation to a newer release that is different from the  
one in your current working copy, because your working copy has a  
compiler which is not able to generate code for the runtime of the  
newer release.  Often it is just a version number mismatch, but  
sometimes it is a more substantial change.  The compiler has to be  
updated first and built, and then you can update the runtime system  
and build it with the new compiler.  This is why a new release is  
(normally) committed to the public repository in 2 changesets.  The  
first is the change that was done to the compiler, and the second is  
the change to the runtime system.  For example:

changeset 76: Added tag v4.2.0 for changeset 57ffc3d96592
changeset 75: [RUNTIME CHANGES NEEDED FOR v4.2.0] Changed version of  
runtime using misc/changev
changeset 74: [COMPILER CHANGES NEEDED FOR v4.2.0] Changed version in  
compiler

So you first need to update to the compiler changeset (74) with:

   hg update -r 74

then

   make bootstrap

then you need to update to the runtime changeset (75) with:

   hg update -r 75

then

   make

then you are good for subsequent updates, until the next release.

Unfortunately I forgot to create a changeset for the v4.2.1 compiler,  
so these steps won't work with v4.2.1 .  I will add some makefile  
rules to automate all of this so that a "make update" will do the  
right thing.

Marc




More information about the Gambit-list mailing list