bug: sign(max(7,x) - max(6,x)) --> error



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