Re: defsystem optionally loaded subsystem

Marco Antoniotti <[email protected]>
Newsgroups gmane.lisp.clocc.devel
Message-ID <[email protected]>
> From: "Liam M. Healy" <[email protected]>
> Reply-to: Liam Healy <[email protected]>
> Sender: [email protected]
> X-Original-Date: Mon, 25 Nov 2002 09:33:12 -0500
> Date: Mon, 25 Nov 2002 09:33:12 -0500
> X-UIDL: -0P!!`4%"!,4T"!0,&#!
> 
> In one of my systems, I have a few files whose definitions are
> infrequently used and that are time-consuming to load.  I would like
> to make them optionally load under defsystem-3.x:  they would compile
> with the rest of the system, but would only be loaded with an explicit
> command.  I do not want to make them a separate system because I want
> to keep them associated with this system.  Is there a way to do this
> easily in the defsystem structure?

The way I do it is the group these files into a separate :module with
no (or only few) dependencies.

This way you get compilation and loading of these files only at
specific times.  E.g.

	 (mk:defsystem "FOO"
              :components ("base"
                           (:module "load-sparingly"
                                    :source-pathname "where/they/are/"
                                    :components ("f1" "f2"))
                           (:file "x"
                                  :depends-on ("base" "load-sparingly"))))

... I think you get the idea.

MK4 has extended dependencies (following the ideas of KMP's paper and
ASDF) with a somewhat clumsy syntax.  You will be able to say


	 (mk4:defsystem "FOO"
              :components ("base"
                           (:module "load-sparingly"
                                    :source-pathname "where/they/are/"
                                    :components ("f1" "f2"))
                           (:file "x"
                                  :depends-on ("base"
                                               (:load "load-sparingly"))
					       )))

Meaning that file "x" will depend on "load-sparingly" only for the
:load operation.

Check out module `defsystem-4.x' to play around with it.  It is not
ready for prime time yet, but it is getting there.

> As a side point, I think the documentation is out of date
> src/defsystem-3.x/docs/defsystem.html refers to Mark Kantrowitz for
> bugs etc.

Thanks.  I will fix that.

Cheers


-- 
Marco Antoniotti ========================================================
NYU Courant Bioinformatics Group        tel. +1 - 212 - 998 3488
715 Broadway 10th Floor                 fax  +1 - 212 - 995 4122
New York, NY 10003, USA                 http://bioinformatics.cat.nyu.edu
                    "Hello New York! We'll do what we can!"
                           Bill Murray in `Ghostbusters'.


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.