From: Barry Margolin
Subject: Re: circular dependencies: what is "The Right Thing"?
Date: 
Message-ID: <hIkH.11$I%1.86013@cam-news-reader1.bbnplanet.com>
In article <··············@mute.eaglets.com>,
Sam Steingold  <···@usa.net> wrote:
>I have file str.lsp, which defines a structure STR and works with it,
>and a file plot.lsp, which defines some plotting functions, including
>the function plot-str which plots instances of STR. I want to use
>plot-str in str.lsp. Now clearly str.lsp has to be loaded when plot.lsp
>is being compiled. OTOH, when I compile str.lsp, the compiler complains
>that plot-str is undefined. I understand that it is safe to ignore the
>warning, but I wonder if there is a way to tell the compiler in advance
>that plot-str will be defined soon. In Emacs Lisp I use autoload for
>this purpose (it allows me to weed out mistyped function names). Is
>there a good way to deal with this (non)problem?

The macro WITH-COMPILATION-UNIT is intended to resolve this problem.  You
would do:

(with-compilation-unit ()
  (compile-file "str.lsp")
  (load "str")
  (compile-file "plot.lsp"))

-- 
Barry Margolin, ······@bbnplanet.com
GTE Internetworking, Powered by BBN, Cambridge, MA
Support the anti-spam movement; see <http://www.cauce.org/>
Please don't send technical questions directly to me, post them to newsgroups.