guile-devel
[Top][All Lists]
Advanced

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

Re: [PATCH] Add ".guile.sls" and ".sls" to the default %load-extensions


From: Ludovic Courtès
Subject: Re: [PATCH] Add ".guile.sls" and ".sls" to the default %load-extensions
Date: Mon, 05 Nov 2012 22:15:19 +0100
User-agent: Gnus/5.130005 (Ma Gnus v0.5) Emacs/24.2 (gnu/linux)

Hi!

Mark H Weaver <address@hidden> skribis:

> I don't think the command-line switch is a good solution.  The problem
> is that even if the main program is not written in R6RS, and even if the
> main program does not use any R6RS libraries directly, this option might
> still be needed.

Right, good point.

> I see only two sane options:
>
> * Add these load extensions by default, to enable users and Guildhall
>   repository maintainers to easily import R6RS libraries as-is.
>
> * Reject the dominant R6RS library naming convention, and force users
>   and guildhall repository maintainers to rename the files to .scm and
>   move *.guile.sls to *.scm.
>
> I can live with either of these options, but given the existence of
> guildhall, I see no good compromise position.  IMO, we need to make a
> decision to either fully embrace or fully reject the R6RS library naming
> convention.

Yes, makes sense.

Looking at your initial patch, the two extensions were actually searched

My current inclination would be to fully reject it, then.  The problem
is that we’d be adding two stats for each file.

Currently there are two stat(2) for each entry in $GUILE_LOAD_PATH:

stat("/home/ludo/.local/share/guile/site/2.0/ice-9/control.scm", 
0x7fff1f4aec20) = -1 ENOENT (No such file or directory)
stat("/home/ludo/.local/share/guile/site/2.0/ice-9/control", 0x7fff1f4aec20) = 
-1 ENOENT (No such file or directory)
stat("/home/ludo/soft/share/guile/site/2.0/ice-9/control.scm", 0x7fff1f4aec20) 
= -1 ENOENT (No such file or directory)
stat("/home/ludo/soft/share/guile/site/2.0/ice-9/control", 0x7fff1f4aec20) = -1 
ENOENT (No such file or directory)
stat("/home/ludo/soft/share/guile/2.0/ice-9/control.scm", 
{st_mode=S_IFREG|0644, st_size=2961, ...}) = 0

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

That would double that.

This is likely to become noticeable with large $GUILE_LOAD_PATH values
and/or numerous module loads.

WDYT?

Ludo’.



reply via email to

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