Hi, I just installed the package. The funcionality looks great but what really concerns me is the load time. It takes up to 15 sec to load it when I issue (asdf:oos 'asdf:load-op 'cl-ppcre) command. (I use Clisp on Win2K CPU PIII @ 600MHz, not much I know :).
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?)
Thank you, Andrei
__________________________________ Yahoo! Mail - PC Magazine Editors' Choice 2005 http://mail.yahoo.com
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
Sorry, I wasn't paying attention, and was thinking you were on the climacs-devel mailing list. So ignore the reference to climacs.asd and the cl-automaton package. And as Ed said, with a simple package, the loading time is not likely to be taken up by ASDF.
-- Derek
Hi!
On Wed, 5 Oct 2005 19:11:17 -0700 (PDT), Andrew Stebakov astebakov@yahoo.com wrote:
I just installed the package. The funcionality looks great but what really concerns me is the load time. It takes up to 15 sec to load it when I issue (asdf:oos 'asdf:load-op 'cl-ppcre) command. (I use Clisp on Win2K CPU PIII @ 600MHz, not much I know :).
Well, 15 seconds is really long but that might be partly due to your PC being a bit outdated. It is true, though, that loading CL-PPCRE takes some time because at load time some hash tables are created (in util.lisp). This takes longer on CLISP because CHAR-LIMIT is quite high there and because CLISP is sometimes a bit slower than other Lisps. For example, on my laptop CLISP needs about 2.4 seconds to load CL-PPCRE while LispWorks takes less than 0.3 seconds.
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?)
You can save a custom image (this is implementation-specific) that already includes CL-PPCRE. If you do that you won't have any problems with the load time anymore. (Note that creating a "stand-alone" binary usually also involves creating a custom image.)
Does that help?
Cheers, Edi.
cl-ppcre-devel@common-lisp.net