unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
From: Mark H Weaver <mhw@netris.org>
To: ludo@gnu.org (Ludovic Courtès)
Cc: guile-devel@gnu.org
Subject: Re: [PATCH] Add ".guile.sls" and ".sls" to the default %load-extensions
Date: Tue, 06 Nov 2012 00:18:11 -0500	[thread overview]
Message-ID: <87mwyvcnsc.fsf@tines.lan> (raw)
In-Reply-To: <87liefsqe0.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Mon, 05 Nov 2012 22:15:19 +0100")

ludo@gnu.org (Ludovic Courtès) writes:
> My current inclination would be to fully reject it, then.

Okay.

> Currently there are two stat(2) for each entry in $GUILE_LOAD_PATH:
[...]
> That would double that.
>
> This is likely to become noticeable with large $GUILE_LOAD_PATH values
> and/or numerous module loads.

Yes, I worried about this too.  Even now, the number of stat calls is
unfortunate, especially for people who extend their %load-path.

For Guile 2.2, it might be worthwhile to consider ways to reduce the
expense of loading modules, and if so, maybe we can revisit this
question later.

One option would be to return to Aubrey Jaffer's model (used in SCM),
where a catalog of modules and their locations is maintained and must be
explicitly rebuilt when software is installed.  Optionally, if the user
attempted to load a module not found in the catalog, we could fall back
to an explicit search, and if successful, issue a warning with a
reminder to rebuild the catalog.

Alternatively, on systems that support inotify (or something like it),
we could construct this catalog during initialization and efficiently
keep it up-to-date by receiving notifications when changes are made to
the relevant directories, or when %load-path is changed.

> (I’m not sure if searching for a file name with no extension is
> intentional.  Ideas?)

I looked into this.  Guile has searched for file names with no extension
since its initial import into VCS in 1996 (0f2d19dd).  Initially, names
with no extension were searched _before_ *.scm, and this logic was
hard-coded into the search procedure (try-module-autoload in
boot-9.scm).  Jim Blandy introduced the '%load-extensions' variable with
default value ("" ".scm") later in 1996 (26544b96), and Mikael Djurfeldt
reversed the order to (".scm" "") in 1999 (0a74e31d).  It has been that
way ever since.

     Mark



  parent reply	other threads:[~2012-11-06  5:18 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-04  3:31 [PATCH] Add ".guile.sls" and ".sls" to the default %load-extensions Mark H Weaver
2012-11-04 16:10 ` Noah Lavine
2012-11-04 20:34 ` Ludovic Courtès
2012-11-04 22:27   ` Andreas Rottmann
2012-11-04 23:32     ` Ludovic Courtès
2012-11-05  0:17       ` Andreas Rottmann
2012-11-05 15:16         ` Ludovic Courtès
2012-11-05 20:48           ` Mark H Weaver
2012-11-05 21:15             ` Ludovic Courtès
2012-11-06  2:19               ` nalaginrut
2012-11-06  2:36                 ` Ian Price
2012-11-06  2:56               ` Ian Price
2012-11-06  5:18               ` Mark H Weaver [this message]
2012-11-07 20:28                 ` Ludovic Courtès
2012-11-08  2:37                   ` Alex Shinn
2012-11-08 22:41                   ` Andreas Rottmann

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=87mwyvcnsc.fsf@tines.lan \
    --to=mhw@netris.org \
    --cc=guile-devel@gnu.org \
    --cc=ludo@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).