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
_______________________________________________ Chicken-users mailing list Chicken-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/chicken-users