[gambit-list] Gambit installer

Adrien Pierard pierarda at iro.umontreal.ca
Tue Sep 30 09:39:12 EDT 2008


On Tue, Sep 30, 2008 at 12:23:17AM +0200, Christian Jaeger wrote :
> But then you can't choose which Gambit binary to use by setting PATH 
> anymore.

Well, actually, I would suggest *not* having several instances of gambit. More
on this below.

> Environment variables are the best way to choose between alternatives; 
> unix environment variables are what |make-parameter| is in Scheme. It 
> allows for parametrization of programs without having to pass data 
> lexically (for which the pendant in unix would be program arguments), 
> and without having to do it by side-effecting globals (which in unix 
> would be changing the symlinks you mention above).

The only program I'm aware of that works this way is the autotools (which I
don't like at all).

> What tradition exactly? You mean using $prefix/{lib,doc,share,info}? For 
> example apache had (maybe still has, dunno) the tradition to do it like 
> Gambit by default, i.e. put all of it's files into one common 
> subdirectory (the advantage being that you can easily uninstall the 
> whole program by just deleting one directory -- a bit like OS X is doing 
> it now I think, btw). If you start creating subdirectories and thus 
> deviate from standard places anyway (i.e. once you feel the need to add 
> library paths to the ld config to avoid having to set LD_LIBRARY_PATH), 
> it doesn't matter anymore?
> 

As far as I know, that's the case for apache 1.3 and apache 2. That's a big
version difference.
In that sense, I would personnally (by default, though configurable) have just
one directory per X.Y version. All X.Y.* would be in the same place, for this is
bugfixes or improvements that happen in a minor version upgrade.
Your approach is much like what Gobolinux does though, but then, it's a layer
above the "standard" one.

> What does it solve for you?

A huge script and makefile can be avoided to make the installation compliant
with what is expected by all BSD users (where files go, only one version at time
of the software), and I do believe it would help us have an up to date version
of gambit in software distributions of most OSs (which of your Linux offers
4.2.9 or even 4.2.8 ? Not Debian/Ubuntu)

> What is the conflict there?

gsi and gsc are names already taken for binaries.

> (a) move files to different installation places in the filesystem, i.e. 
> changing the exec and linker paths.
> (b) change the include (sub-)paths

Yes.

> > Then, it's just a matter of a sed one liner to fix all the programs
> Not quite, if you don't know in advance whether your program is going to 
> be used with a Gambit version from before or after your changes.

Minor update: the newer version can just do better than the previous one.
Major update: new path (and since it's a major update, *you* are responsible for
checking the consistency of your code with respect to the update).

> Christian.

Adrian

-- 
"I am not a Church numeral; I am a free variable!"
(The Scheme Underground)
For every complex problem, there is a solution that is simple, neat, and wrong.



More information about the Gambit-list mailing list