[EMAIL PROTECTED] (Ludovic Courtès) writes: > Neil Jerram <[EMAIL PROTECTED]> writes: > >> How so? Given that you're about to do a (use-modules (whatnot)), I >> can't see that also doing (initialize-packages "whatnot") will make a >> significant difference. > > Because people haven't been doing so for years. Some of us certainly > don't want to iterate over each and every Guile module to add this line. > It's quite a big change and it's very interpreter-centric (okay, this > last point is maybe not the strongest argument I could come up with > ;-)).
Fair point. It would be better to avoid this if we could. > It would be different if the `initialize-packages' line could be added > automatically --- in fact, `use-modules' could do it and this would be > completely transparent to the module user (more below). [...] > Additionally, I'd be quite happy if the `initialize-packages' phase > could be made automatic. This could be done like this: > > 1. Packages install their module hierarchy wherever they want; > > 2. In addition, packages may install a start-up file in, say, > /usr/share/guile/packages/ (installing these files into the right > Guile directory could be done by a wrapper script, say > `guile-install-module-init'). > > For instance, if I am to install the complete `foo' module > hierarchy, then I can install /usr/share/guile/packages/foo.init > that will be read, if available, the first time a `(foo SOMETHING)' > module is loaded. If that file was available, its content (a > string) are added to `%load-path'. > > > More generally, when module `(foo bar)' is loaded for the first time, > Guile could: > > 1. Look for /../packages/foo/bar.init and use its content to > augment `%load-path' if available; > > 2. If the previous file wasn't available, look for > /../packages/foo.init and use its content to augment > `%load-path' if available; > > 3. If no `init' file was found, just leave `%load-path' unchanged. > > > This way, `init' files are loaded on demand, like in your > `initialize-packages' approach. However, it is less intrusive. > > This is based on the observation that (i) we want modules to be > installable in *any* directory, but (ii) at some point, there must be a > *fixed* directory to look for files to bootstrap further file loading. This is all possible, but it feels to me quite complex and not very elegant; it doesn't feel right to have a shadow tree of potentially all installed modules under $sysconfdir. It seems to me that neither of these ideas (yours and mine) quite fly yet. I have yet another idea, though, that I'll post in a separate thread shortly. Regards, Neil _______________________________________________ Guile-user mailing list Guile-user@gnu.org http://lists.gnu.org/mailman/listinfo/guile-user