[cl-ppcre-devel] Loading of the package takes a long time...

Derek Peschel dpeschel at eskimo.com
Thu Oct 6 06:50:37 UTC 2005


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



More information about the Cl-ppcre-devel mailing list