chicken-users
[Top][All Lists]
Advanced

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

[Chicken-users] Some questions about loading libraries


From: Matt Gushee
Subject: [Chicken-users] Some questions about loading libraries
Date: Sun, 13 Jan 2013 20:10:27 -0700

Hi, all--

I am developing a project which I expect will involve a number of extension libraries, or plugins (a large number, many of them provided by third parties, if my project ever becomes popular). For several reasons (which I will explain on request if anyone is curious), I feel it is best *not* to implement these libraries as eggs. So I am trying to work out a reasonable method for deploying the libraries and loading them at runtime.

Required features:
 * users (who might not have admin privileges) can determine
    where the libraries are installed
 * users can select which libraries to use in an application (and this
    potentially entails selecting alternate implementations of the
    same functionality)
 * the main application can find the required libraries at runtime

Desirable features:
 * a user should be able to just install the software and start to
    use it without doing any configuration
 * all library code is in modules

I've spent a good deal of time browsing the documentation and experimenting, and I can see how to achieve the required features but not the desirable ones. But before I start making compromises, I thought I'd check with the list to see if my understandings are correct. So here are my questions ... as implied above, I think the answers are not the ones I want, but I'm hoping I've overlooked something ;-) :

1) Is there a way to set an arbitrary search path, such that REQUIRE (or LOAD, or some such thing) will work when the library is in a non-standard location?

2) Is it possible to load a library selected at runtime (via an environment variable, config file, command-line argument ... the exact method isn't that important) AND have the symbols defined in that library included in a module?

3) Is there a way for a Chicken executable or library to determine its own location in the filesystem?

4) Is LOAD-RELATIVE broken? I wrote some test code to try to use that procedure, but as far as I can tell it behaves just like LOAD, i.e. any relative path I give it is determined relative to the current directory from which the program is invoked. Though I would note that the documentation isn't entirely clear to me: "loads FILE relative to the path of the currently loaded file." ...? What does "the currently loaded file" mean? I will be happy to post my code if this is not a known issue.

Thanks for any & all info!
--
Matt Gushee

reply via email to

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