On Fri, Mar 16, 2018, 11:25 Robert Dodier <robert.dod...@gmail.com> wrote:
> Hi, > I am resuming my tinkering on the Maxima interface to ASDF. I have > bumped into a kind of minor problem for which I don't see a solution. > > Maxima can read .info files for documentation items. An index file > (Lisp) which is created ahead of time (not run time) tells where the > items are in the .info. The .asd, index, and .info are all in the same > directory. Some code in the index file tells Maxima to read the .info > from the same place from which the index is loaded (via > *LOAD-PATHNAME*). > > That works great when the asd is loaded via LOAD-SOURCE-OP since > *LOAD-PATHNAME* points to the directory where the .info file is. But > when the asd is loaded via LOAD-OP, it doesn't work, since > *LOAD-PATHNAME* points into the place that ASDF puts fasls. > > I gather from the ASDF reference manual that there isn't any way to > load, without compiling, only the index file (I'm looking at "How do I > mark a source file to be loaded only and not compiled?"). So I'm > thinking about some other way to locate the .info file. Is there a > special variable or something which tells the path from which the .asd > is being loaded? I looked at the documentation and the list of > external symbols but couldn't puzzle out anything. > > The more general idea is that the system contains a non-Lisp data > file. Is there a general approach to work with that? > > Thanks for any light you can shed on this problem. > > Robert Dodier > The way I've been doing this is with a :STATIC-FILE component (you must include file extensions). ASDF will put your static file into the FASL location without touching it then you can find it to load using ASDF:FIND-COMPONENT. One of the component's slots will have the pathname of the "compiled" file in it, you don't have to use *LOAD-TRUENAME*. >