On Wed, Oct 05, 2005 at 07:11:17PM -0700, Andrew Stebakov wrote:
I am wondering if I create a stand-alone binary or use it as a shell script will it load that long every time the script will be executed? Is there a way to shorten the loading time (maybe select not all files? May be there is some "light" version of the package?)
Hi Andrei,
If your LISP prints output during the loading process, analyzing that might tell you what exactly is going on.
I'm running SBCL, and for me the loading process is a combination of:
- SBCL trying to (require...) a file using the built-in method and failing and giving control to ASDF
- ASDF reading the .asd file, resolving dependencies, reading more .asd files, and deciding what systems to load
- loading the files that make up the systems
- which may be compiled (.fasl format)
- or may need compilation -- hopefully the results are saved in .fasl format for the next load -- if you determine that yours aren't being saved, you might want to fix the problem
SBCL lets people create LISP images, which should speed up the loading process greatly, but I haven't tried it yet. You should definitely look into it on your LISP. ASDF can load changed source files, but I don't know how that works if you are starting with an image that already contains the systems you are trying to load. That's the only drawback I can think of right now.
If you look in the climacs.asd file you will see the parts Climacs is divided into. It's certainly possible to create separate (defsystem...) forms for each part and put them in separate .asd files. But you still have to make sure the configuration runs. The cl-automaton package is the only component I know can be loaded separately. I'm not familiar enough with Climacs to know more.
Getting LISP to give you more output is also possible, but I don't know how to do that in the case of ASDF. There's a (time) function but it would make the most sense timing small units of work, which I also don't know how to get ASDF to do. I've only timed the loading of the entire Climacs system.
To help you more I would need to see what your system prints. Unfortunately I'm flying across the US on Friday to have eye surgery next week, which will probably cut me off from e-mail for weeks. So I can't spend any more time dealing with your question, but I hope I've helped a little.
-- Derek