Subject: Program stack overflow defining infix operator
From: Barton Willis
Date: Fri, 7 Aug 2009 10:06:36 -0500
The file to_poly_solve_extra.lisp has simplifying versions
of and, or, and if (%and, %or, and %if). Some of these functions
include a scheme for simplifying inequalities as well. Maybe
these functions could be a start for standard logical connectives.
Barton
-----maxima-bounces at math.utexas.edu wrote: -----
It turns out the Boolean functions have a nonstandard evaluation
scheme. In general Maxima has a 1-time evaluaton policy,
but functions can evaluate their arguments as much they want.
Re-evaluation triggers the stack overflow here.
At present the Boolean functions MAND, MOR, MNOT are
functions which quote their arguments (DEFMSPEC), then they
explicitly call MEVAL. (This situation has existed since before
I arrived on the scene.) It would be better to do away with the
DEFMSPEC and MEVAL and make them simplifying functions
instead. That would avoid this bug, and make the Boolean
functions more like other, mathematical functions in Maxima.
I'll put it on my to-do list, unless someone wants to talk me
out of it. Someone else could do it too, I won't complain.
best
Robert Dodier
_______________________________________________