unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
From: Rob Browning <rlb@defaultvalue.org>
Cc: guile-devel <guile-devel@gnu.org>
Subject: Re: The load path
Date: Fri, 05 Nov 2004 16:05:40 -0600	[thread overview]
Message-ID: <87lldgt0i3.fsf@trouble.defaultvalue.org> (raw)
In-Reply-To: <m3hdo4xfqr.fsf@multivac.cwru.edu> (Paul Jarc's message of "Fri, 05 Nov 2004 14:22:30 -0500")

prj@po.cwru.edu (Paul Jarc) writes:

> Hmm.  ISTM modules are already good enough for everything except
> tweaking %load-path, since that has to be done before the modules
> can be found.  But if that's the only problem that needs to be
> solved, then there's a very simple solution: have a directory full
> of subdirectories that all get added to %load-path.  For a module
> installed somewhere else, you can just drop a symlink in the central
> directory, pointing to the module's directory.

I'm still a little concerned that use-modules might be practically
correct here, but semantically wrong, but I'm not sure yet.  I'm also
not sure that the init-require/provide approach is better.  The
question that troubles me is whether or not the "init-file" namespace
should be separate from the normal module namespace.

Overall, what I wanted was a way to specify a set of actions that will
be taken at init time, where the ordering can be easily specified,
where actions can be added and removed easily (i.e. by adding/removing
files), and where the local admin has a well defined way to make at
least some adjustments if necessary.

All of these actions (the files) should be editable by the local
admin, so they need to be placed in /etc according to the FHS
(i.e. automake's sysconfdir).  Further, at least for Debian, if
they're in /etc, they must be conffiles, and so they may need to stick
around and still function correctly (i.e. not break things) even if
the underlying package has been removed.  That's why in the
emacs/site-start.d/* files, you will see conditional code like this:

  (if (not (file-exists-p "/usr/share/emacs/site-lisp/autoconf"))
      (message "Package autoconf removed but not purged.  Skipping setup.")
    ... do the normal setup here which the admin might edit...
    )

Strictly speaking, the init files won't necessarily be modules,
although we could perhaps use that mechanism, but the questions are,
is it appropriate to use the module system for this, and should these
files still be visible to other use-modules calls, even after startup
is finished?  If not, then we shouldn't use the module system
directly, though we could probably share code.

In any case, having some dependency mechanism, as you've suggested,
wether it is use-modules or init-require/provide seems like a pretty
good solution, allowing ordering without relying on the sorting of
file names, and the local admin can still take some control by
creating an /etc/guile-X.Y/init.scm file, or perhaps adding their own
*-site-local.scm init.d files.

I do think that init.scm should be explictly reserved for the local
sysadmin (*not* for distributions).  The sysadmin should be able to
easily ignore (or filter) the distribution's init.d files if they so
choose, and init.scm would be the place to do that.

-- 
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


_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel


  reply	other threads:[~2004-11-05 22:05 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-10-16 17:52 The load path Andy Wingo
2004-10-17 19:40 ` Rob Browning
2004-10-17 23:13 ` Greg Troxel
2004-11-05 15:05 ` Marius Vollmer
2004-11-05 15:25   ` Paul Jarc
2004-11-05 16:43     ` Rob Browning
2004-11-05 17:43       ` Paul Jarc
2004-11-05 18:59         ` Rob Browning
2004-11-05 19:22           ` Paul Jarc
2004-11-05 22:05             ` Rob Browning [this message]
2004-11-06  7:25               ` Paul Jarc
2004-11-06 16:19                 ` Rob Browning
2004-11-06 22:58                   ` Rob Browning
2004-11-05 16:15   ` Rob Browning
2004-11-05 17:31   ` Andreas Rottmann
2004-11-05 18:57     ` Greg Troxel
2004-11-05 19:07     ` Rob Browning
2004-11-05 19:19   ` Greg Troxel
2004-11-05 23:53     ` Neil Jerram
2004-11-06  4:54       ` Rob Browning
2004-11-06 14:38         ` Andreas Vögele
2004-11-06 17:49         ` Neil Jerram
2004-11-06 21:21           ` Rob Browning
2004-11-07 18:46             ` Neil Jerram
2004-11-07 21:16               ` Rob Browning
2004-11-09 15:22               ` Paul Jarc
2004-11-10 18:43           ` Andy Wingo
2004-11-11 13:23             ` Greg Troxel
2004-11-12 21:31             ` Neil Jerram
2004-11-13  0:22               ` Greg Troxel
2004-11-13  1:08                 ` Rob Browning
2004-11-13 16:12                   ` Greg Troxel
2004-11-14 11:02                     ` Neil Jerram
2004-11-14 14:05                       ` Greg Troxel
2004-11-18 19:44                         ` Neil Jerram
2004-11-19 14:46                           ` Greg Troxel
2004-11-14 10:48                   ` Neil Jerram
2004-11-15 16:43                     ` Andy Wingo
2004-11-18 19:54                       ` Neil Jerram

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87lldgt0i3.fsf@trouble.defaultvalue.org \
    --to=rlb@defaultvalue.org \
    --cc=guile-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).