On Mon, Jun 16, 2008 at 10:53 PM, Robert Dodier <robert.dodier at gmail.com> wrote:
> Can we rewrite DO-MERGE-ASYM as a function instead of a macro?
Huh? Replace nicely tuned working code simply because the build is incorrect?
Wouldn't it make more sense to correct the build?
> I'm guessing the problem is that nset.lisp (where the macro
> is defined) is compiled after compar.lisp (where it is used).
> Just moving nset.lisp ahead of compar.lisp in maxima.system
> causes other stuff to break, so that's not a solution.
No, agreed, that would be a bad solution. Anyway, it wouldn't solve
the problem of compiling compar or nset *independently* (not as part
of a recompile of the whole system). The usual way of dealing with
this in Lisp systems is to put compile-time definitions in separate
files -- just as in C programs header files (.h) are separate from
code (.c) files. This is not ideal, but ....
-s