[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Versioning scheme-only modules.
From: |
Rob Browning |
Subject: |
Versioning scheme-only modules. |
Date: |
Tue, 04 Dec 2001 11:20:37 -0600 |
User-agent: |
Gnus/5.090004 (Oort Gnus v0.04) Emacs/21.1 |
If possible, I'd like to try to decide upon an plan for our initial
versioned module system. I'm asking in part because whether or not
we're likely to do anything soon within guile may have an effect on
what I do next wrt guile and gnucash.
For example, if we knew what we wanted, I could probably spend some
work-time writing the code which I could then deploy both within
gnucash (for systems with older guiles) and within guile itself.
My current thoughts say that for scheme-only modules we probably need:
1) some scheme side interface for asking for a versioned module:
(use-modules (foo bar 1))
(use-modules (foo bar #:interface 1))
or whatever.
(I propose we just borrow the libtool versioning conventions
i.e. having CURRENT, REVISION, and AGE. This approach is
already well documented and common, and I can't see that we need
anything more than it provides.)
2) some standard for how the versioned scm files are installed so
that they can be found (I know these examples are ugly -- better
suggestions are certainly welcome :>):
<path>/foo/bar.scm.1.4.2 ;; the most like shared libs.
<path>/foo/bar.1.4.2.scm
<path>/foo/bar/1.4.2.scm
4) hopefully some way to make it easier to generate the right files
at build/install time. i.e. how does a module .scm file
advertize its INTERFACE, AGE, etc., and how does that translate
into the resulting file name at build/install time? Should the
Makefile.am drive this process, or should the .scm file(s)
themselves?
The simplest thing would probably be for the Makefile.am, as for
shared libs, to use the version info to decide about install file
names, etc., but then the .scm file(s) aren't fully
self-describing, or the've got duplicated information.
Thoughts?
--
Rob Browning
rlb @defaultvalue.org, @linuxdevel.com, and @debian.org
Previously @cs.utexas.edu
GPG=1C58 8B2C FB5E 3F64 EA5C 64AE 78FE E5FE F0CB A0AD
- Versioning scheme-only modules.,
Rob Browning <=