guile-devel
[Top][All Lists]
Advanced

[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



reply via email to

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