guile-devel
[Top][All Lists]
Advanced

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

Future of ice-9/slib.scm.


From: Rob Browning
Subject: Future of ice-9/slib.scm.
Date: Tue, 15 Nov 2005 21:23:23 -0800
User-agent: Gnus/5.110004 (No Gnus v0.4) Emacs/21.4 (gnu/linux)

As some of you may have noticed from recent posts to guile-user, Guile
doesn't work with the latest SLIB.  The most general cause of the
current problem appears to be that slib.scm has bitrotted to the point
of breakage.

The question then is, how should we fix this, both in 1.6 and in
future releases?  (I've spoken to the SLIB author, and he's interested
in working with us.)

Although I'm not sure of the exact history behind slib.scm, it appears
to be a modified version of an older SLIB guile.init.  The problem is
that upstream's guile.init has changed.  Among other things, new
functions have been added to guile.init.  Some of these functions are
critical to SLIB's startup, and none of them exist in ice-9/slib.scm.
There are other functions that exist in both files, but have differing
definitions.  It's not always clear which of those differences are
intentional and which just indicate stale code.

In the long run, it seems like the best solution may be to try to work
with the SLIB upstream on guile.init and then just load that file from
ice-9/slib.scm.  However, even if we do decide to do that in the long
run, how should we handle 1.6 now?  There's seems to be a definite
tension between providing a minimal fix, and trying to make sure our
diverged slib.scm isn't doing more harm than good.

For example, even if we patch up 1.6's slib.scm, perhaps by copying
the missing functions from the upstream guile.init, what kind of SLIB
environment will that leave you with?  Will critical functions still
be missing or have incorrect/stale definitions, and more generally, is
it more important to be "correct" with respect to SLIB, or to differ
as little as possible from previous 1.6 behaviors?

How important is it that 1.6's behavior with respect to older versions
of SLIB (versions that already worked) remain unchanged?  Certainly
someone already using guile 1.6.7 successfully with some older version
of SLIB might not be happy if 1.6.8 no longer worked with their SLIB
install.

One very strict way to approach this would be to do something like
this in ice-9/slib.scm:

  (if (detect-older-slib?)
    (load-from-path "old-slib.scm")
    (load-from-slib "guile.init"))

or similar.  Though I don't know if there's an official way to
discover the version of slib that's in the path without loading it.

-- 
Rob Browning
rlb @defaultvalue.org and @debian.org; previously @cs.utexas.edu
GPG starting 2002-11-03 = 14DD 432F AE39 534D B592  F9A0 25C8 D377 8C7E 73A4




reply via email to

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