guile-user
[Top][All Lists]
Advanced

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

Re: Modified load-path proposal


From: Neil Jerram
Subject: Re: Modified load-path proposal
Date: Sat, 15 Oct 2005 12:55:05 +0100
User-agent: Gnus/5.1007 (Gnus v5.10.7) Emacs/21.4 (gnu/linux)

address@hidden (Ludovic Courtès) writes:

> Neil, I also fully support your proposal.

Thanks.

>> ((load-path
>>   local
>     ^^^^^
>
> I'd make this `local-1.6' by default, assuming that modules that may
> flawlessly run on any Guile version are an exception rather than the
> rule

Yes, agreed ...

> (well, in fact, pure Scheme modules may be quite portable across
> versions).

... but that's a good point too!

Perhaps this means that Greg's cross-product idea is right after all.

(In other words, that %load-path is constructed from all possible
combinations of a set of roots, e.g. '("/usr/share/guile"
"/usr/local/share/guile") and a set of suffix directories,
e.g. '("site" "1.6" "").)

A package could declare whether (it thinks) it is portable or
version-dependent by a argument to the GUILE_SCHEME_DIR macro, and
GUILE_SCHEME_DIR would then return the appropriate install location.

> As for the tag tuples, I'd prefer either an alist, the use of keywords,
> or maybe a vector---it just feels more ``natural'' when representing
> such ``records'', IMO.  But I guess that's just a matter of taste.

Taste and simplicity, yes.  I'm wondering if my currently proposed
format is too fussy.  Do we really need the descriptions and the tags?
The descriptions don't really add much that can't be inferred from the
directories themselves.  The only benefit of the tags is that a
distributor can write --with-guile-scheme-dir=tag instead of
--with-guile-scheme-dir=/some/install/path when running ./configure,
which is probably not enough to justify the cost of having to think up
a tag when running guile-config add-load-path.

If we get rid of the descriptions and tags, the format could be
simplified to something like this:

((load-path
  "/usr/share/guile/1.6"
  "/usr/share/guile/site"
  "/opt/gnome/guile"
  ("/usr/local/share/guile" #:package-default)
  "/usr/local/share/guile/1.6"))

(And with Greg's cross-product idea, it would simplify even further.)

What do you think?

     Neil





reply via email to

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