[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