Hi all,
(I'm not sure whether or not this is the right place for questions about the grid system in gsd; apologies if I should be posting elsewhere.)
Has anyone else found a reliable way to force the grid extension to iterate to load?
I have a project that uses some of the various iterate extensions. Naturally its asdf system won't compile properly if the iterate extension is not loaded. There doesn't seem to be any way to ensure that the grid extension is loaded aside from making sure that the asdf-system-connections system has been loaded before I try to load my system. That means I need this ugly piece of work in my asd file, before my system definition:
;; We want to use the iterate extension for grid data (eval-when (:compile-toplevel :load-toplevel :execute) (require '#:asdf-system-connections))
Including :asdf-system-connections in the dependencies of my system is not sufficient, either because I can't control the order in which systems load, or for some deeper reason (I suspect that in fact asdf-system-connections needs to be fully loaded before asdf even starts thinking about my system).
Would it be possible to include an asdf system in the grid project like the following?
(asdf:defsystem grid-iterate-extension :depends-on (#:grid #:iterate #:alexandria) :components ((:module "grid-iterate" :pathname "" :components ((:file "iterate")))))
Then I could just include grid-iterate-extension in the dependencies for my asdf system and not have to go through any contortions to get asdf-system-connections loaded first. It has to go in its own file to be reliably found by asdf, which I recognize adds clutter, but I think it's wrong to have a dependency on asdf-system-connections that I can't express in my system definition.
Thanks! James
It seems a little odd that making asdf-system-connections a dependency doesn't fix everything up. I guess I have just assumed that dependencies were loaded in order, but evidently not. I think however you're ascribing too much intelligence to asdf; there is a feature :asdf-system-connections that, if not present, skips the reading of the asdf:define-system-connection. So, if for some reason a-s-c is not loaded before the file(s) that have #+asdf-system-connections is read, the whole form following those conditions is skipped.
Here are two options that I hope will help.
1) I build my own SBCL image with a few "standard" things, among them asdf-system-connections, and then I save-lisp-and-die. That image is the one I always run by default, so a-s-c is always in my images.
2) I am in the process of phasing out GSD, to be replaced by a system that has the whole contents of GSD, but also includes much more of what I use routinely for scientific computing. For a variety of reasons, iterate is a dependency, so it just gets loaded normally. No ETA for release, however.
Liam
On Sat, Jan 8, 2011 at 8:35 PM, James Wright james@chumsley.org wrote:
Hi all,
(I'm not sure whether or not this is the right place for questions about the grid system in gsd; apologies if I should be posting elsewhere.)
Has anyone else found a reliable way to force the grid extension to iterate to load?
I have a project that uses some of the various iterate extensions. Naturally its asdf system won't compile properly if the iterate extension is not loaded. There doesn't seem to be any way to ensure that the grid extension is loaded aside from making sure that the asdf-system-connections system has been loaded before I try to load my system. That means I need this ugly piece of work in my asd file, before my system definition:
;; We want to use the iterate extension for grid data (eval-when (:compile-toplevel :load-toplevel :execute) (require '#:asdf-system-connections))
Including :asdf-system-connections in the dependencies of my system is not sufficient, either because I can't control the order in which systems load, or for some deeper reason (I suspect that in fact asdf-system-connections needs to be fully loaded before asdf even starts thinking about my system).
Would it be possible to include an asdf system in the grid project like the following?
(asdf:defsystem grid-iterate-extension :depends-on (#:grid #:iterate #:alexandria) :components ((:module "grid-iterate" :pathname "" :components ((:file "iterate")))))
Then I could just include grid-iterate-extension in the dependencies for my asdf system and not have to go through any contortions to get asdf-system-connections loaded first. It has to go in its own file to be reliably found by asdf, which I recognize adds clutter, but I think it's wrong to have a dependency on asdf-system-connections that I can't express in my system definition.
Thanks! James
GSLL-devel mailing list GSLL-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/gsll-devel