From: Marco A. <ma...@cs...> - 2004-03-29 14:57:23
|
On Sunday, Mar 28, 2004, at 14:55 America/New_York, Joe Corneli wrote: >> From ~/lisp-systems/clocc/src/port/environment/ > > Load the file named 'load-cl-environment.lisp'. > > (load "load-cl-environment.lisp") > > Be careful about the directory you are in and/or the actual location > of the aforementioned file. The package is actually loaded from the > directory of *LOAD-TRUENAME* as bound by the call to LOAD. > > How can I set this `*LOAD-TRUENAME*' or work around this complexity? > Is there some kind of `save-excursion' I can use to load from the > correct directory in my .clisprc (regardless of what directory I > start CLISP in)? Just do (load "/PATH/to/clocc/whatever/load-cl-environment.lisp") and you are home free. *LOAD-TRUENAME* (and *LOAD-PATHNAME*) is set dynamically by the LOAD function. In the case above, most likely *LOAD-TRUENAME* will be bound to #S(PATHNAME :HOST NIL :DEVICE NIL :DIRECTORY (:ABSOLUTE "PATH" "to" "clocc" "whatever") :NAME "load-cl-environment" :TYPE "lisp" :VERSION :NEWEST) while LOAD is being executed. > > I think it would be *very* helpful if the INSTALL file that ships > with CLOCC would contain full instructions on compiling and loading > files. It saves you a little space to include say "..." here and > there, but for someone who is relatively new to common lisp, it > would be more helpful to list all the details. > > For example, where you say > > ;; * compile some systems > (dolist (l '("clocc:src;port;" "clocc:src;cllib;" > "clocc:src;ext;queues;" > "clocc:src;port;configuration;" > "clocc:src;port;environment;" > "clocc:src;ext;union-find;" "clocc:src;tools;metering;" > "clocc:src;f2cl;" "clocc:src;f2cl;packages;")) > (mk:add-registry-location (translate-logical-pathname l))) > (mk:oos "cllib" :compile) > (mk:oos "f2cl" :compile) > ... > I can't figure out how to generalize from the examples to the "..." > to actually be able to load the things I want to load. The key is the MK:OOS function (which stands for MK:OPERATE-ON-SYSTEM). Essentially, every directory in the CLOCC should contain a dir.system file. Calling (mk:oos "dir" :compile) should just compile the systems (think of a "system" as a collection of files and directories, and think of MK:DEFSYSTEM in the CLOCC as a "make") Cheers -- Marco Antoniotti http://bioinformatics.nyu.edu NYU Courant Bioinformatics Group tel. +1 - 212 - 998 3488 715 Broadway 10th FL fax. +1 - 212 - 998 3484 New York, NY, 10003, U.S.A. |