guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Release now?


From: Greg Troxel
Subject: Re: Release now?
Date: 25 Feb 2003 11:08:44 -0500
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2

For NetBSD pkgsrc, a normal case is for people to build everything
from source.  So it is necessary to have multiple versions installed
such that someone could compile against either, since some programs
(e.g Gnucash 1.6.8) require the old version of guile.  NetBSD pkgsrc
has solved this by putting one in a special prefix.

  Would pkg-config address this issue?  I.e. could one say `guile-config
  --use-version 1.6 link` (or something similar) with the effect that
  the right '-L' and '-R' options are spit out?

pkg-config might well be nice, and arguably guile should provide a
pkg-config file, even if we continue to have guile-config.  I am not
clear whether pkg-config is a 'gnome thing', and whether it is ok to
require people who want to link against gruile to install pkg-config.
I find it to be a solution to a general problem and not huge (gzipped
binary package < 50 KB on NetBSD/i386).

But, running 'pkg-config --use-version 1.6' should be no different
than guile16-config, except that it's easier to write configure.in
fragments.  It does mean we get to sidestep the issue about which
guile-config is 'primary' and which has a version number.  But I'm not
sure that's a huge issue - the latest can be primary and the others
have the number.

  However, a more serious problem exists for external modules of Scheme
  code that want to use a specific version of Guile.  For this, I think
  we should add versions to our module system.

The NetBSD pkgsrc approach means that when one compiles guile-gtk, for
instance, one could put the 1.4-linked version in /usr/pkg/guile/1.4
and the 1.6 version in /usr/pkg.  Do you really mean pure Scheme code,
or stuff with dynlibs?  I would think that pure Scheme code could
feature-test and cope - is this really an issue?  (I have not heard of
gnucash having problems with this.)

But, this all points out the really serious extended consequences of
not maintaining _compile-time_ backwards compatibility.  I'm not
(personally) at all worried about running old binaries with newer
guile libraries.  The issue is whether programs that compile against
guile can just work when the system's base guile version is upgraded.
We've seen a lot of pain (and non-upgrading of guile in major
distributions) recently.

So, ensuring that 1.8 is a drop-in replacement for 1.6 would be good,
and there probably needs to be some schedule for removing deprecated
features.  Something like 1-2 years after 75% of some set of
distributions have 1.6 in their base pkg/ports/rpm/deb system, perhaps
with some survey of the guile-using packages.

        Greg Troxel <address@hidden>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]